|
Mr-Neutron |
Forum-Newbie
|
|
Beiträge: 1
|
|
|
|
Anmeldedatum: 02.11.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.11.2007, 09:57
Titel: RS232 überwachen
|
|
|
|
|
Erstmal Hallo und ein Lob an das Forum. Habe hier schon viele Tipps und Tricks rund um MatLab erfahren.
Ich habe ein kleines Porblem, bei welchem ich euch um Rat fragen wollte.
Ich bin gerade dabei in MatLab ein Skript zu schreiben, mit welchem ich ein CD-Laufwerk über RS232 steuern will.
Kurz zum Versuchsaufbau: Das laufwerk hängt über I2C-Bus an einer Steuerplatine. Die Platine hat einen RS232 Port der am PC hängt.
Das senden von Befehlen wie (Play, Stop, Next u.s.w) klappt schon. Die Befehle werden in Hex in einen Frame gepackt und über RS232 ans Laufwerk gesendet. Wie gesagt, das funktioniert wunderbar.
Nun zu meinem Problem. Ich muß nicht nur senden, sonder auch lesen. Und zwar so: Mein Skript soll auf ganz bestimmte Antwort-Messages und Timeinformationen vom CD-Laufwerk warten (die kommen über seriell zurück) und dann eine Funktion im Skript starten. Ich muß also im Hintergrund meien RS232 Schnittstelle überwachen und in den ankommenden Hex-Frames nach ganz bestimmten Nachrichen suchen.
Ich hab einfach keine Idee wie ich das realisieren soll.
Vielleicht könnt Ihr mir da weiterhelfen.
Danke schon mal.
|
|
|
|
|
Babel42 |
Forum-Fortgeschrittener
|
|
Beiträge: 51
|
|
|
|
Anmeldedatum: 05.10.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.11.2007, 10:25
Titel:
|
|
|
|
|
Hallo Mr-Neutron,
ich habe etwas ähnliches gemacht, vielleicht hilft es dir. Ich habe ein Messgrerät mit Matlab kommunizieren lassen. Das Meßgerät kann kontinuierlich oder einzeln messwerte schicken. Wenn das Meßgerät kontinuierlich Messwerte schickt, geschieht das so lange,bis der Puffer voll ist. erst wenn der Puffer ausgelesen ist schreibt das Messgerät wieder Werte rein. Ich verwende allerdings die Einzelmesswert-Variante:
In 'out' habe ich dann einen Zeichenstring aus dem ich dann im weiteren Verlauf den Messwert selektiere und in eine Zahl umwandle. B510 ist die Bezeichnung für mein serielles Schnittstellenobjekt. '%c' wirst du sicher auch nicht so stehen lassen können. (%x -> Signed hexadecimal integer)
Mit:
solltest du deine gesuchten hexzahlen selektieren können. Du kannst aber auch mit
prüfen, ob die Hexzahl überhaupt da ist. Wenn nichts gefunden wird, ist X leer.
Was ich allerdings nicht weiß, wie man das im Hintergrund, bzw parallel laufen lassen kann.
Bei der Gelegenheit: Wie kennzeichne ich denn in Matlab Hex-Zahlen? 0xA1 funzt nicht?
Grüße Babel42
|
|
|
outsider |
Forum-Meister
|
|
Beiträge: 806
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: München
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 06.11.2007, 19:32
Titel:
|
|
Zitat: |
Ich muß also im Hintergrund meien RS232 Schnittstelle überwachen und in den ankommenden Hex-Frames nach ganz bestimmten Nachrichen suchen. Ich hab einfach keine Idee wie ich das realisieren soll. |
Schau in der Hilfe nach folgenden Eigenschaften der seriellen Schnittstelle:
BytesAvailableFcn
BytesAvailableFcnCount
BytesAvailableFcnMode
BytesAvailableFcn startet automatisch eine Funktion, wenn die empfangenen Daten entweder eine bestimmte Menge an Bytes beinhalten (BytesAvailableFcnCount und BytesAvailableFcnMode=BYTES) oder bei einer bestimmten Bytesfolge (BytesAvailableFcnMode=TERMINATOR)
Mehr Info in der offline ML Doku...
MfG
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|