LabVIEWForum.de
VISA auf Startbyte reagieren - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: VISA auf Startbyte reagieren (/Thread-VISA-auf-Startbyte-reagieren)



VISA auf Startbyte reagieren - jak888 - 21.11.2010 00:09

Moin,

ich versuche gerade einen Sensor auszulesen, der mir Datenframes über Bluetooth zuschickt. Ein Datenframe beginnt immer mit 3 Startbytes: 0x000000
Gibt es eine Möglichkeit darauf zu warten, dass der Sensor mir die 3 Startbytes schickt und anschließend 17 weitere Bytes zu lesen?
Wie kann ich auf das Startbyte reagieren?

Bin wie immer für jede Hilfe dankbar.


VISA auf Startbyte reagieren - eg - 21.11.2010 00:21

3 verschachtelte Case-Strukturen.
1 Byte lesen mit 00 vergleichen, wenn ok
1 Byte lesen mit 00 vergleichen, wenn ok
1 Byte lesen mit 00 vergleichen, wenn ok
17 Byte lesen.


VISA auf Startbyte reagieren - jak888 - 21.11.2010 00:29

Lol...
Den gleichen Workaround hatte ich auch schon gefunden. Das hat auch einmal ganz gut funktioniert, leider hat mein Bluetooth sender Momentan ein Problem mit LabVIEW... so'n shiet...
Ich hab das sogar dann so gemacht, dass ich nur ein einziges Mal einen ganzen Frame kontrolliere, dann die While Schleife beende, und künftig nurnoch 20 bytes abfrage.

Aber wie gesagt momentan hat der Sender Probleme.

Danke übrigens für die Mitternächtliche Antwort.


VISA auf Startbyte reagieren - jak888 - 21.11.2010 01:23

So, ich hab das Teil jetzt wieder hinbekommen. Der Fehler war folgender: Die Wait on Event Funktionen sind standardmäßig mit einem Timeout von 0 ausgestattet, den sollte man wohl hochsetzen. Kann mir jemand den Sinn davon erklären?


VISA auf Startbyte reagieren - Lucki - 21.11.2010 08:59

Noch ein Vorschlag:
[attachment=30765]
(Die beiden Eingänge des Shift-Registers müssen noch mit Char ungleich 0 initialisiert werden. Evtl. ist auch eine Timeout-Behandlung erforderlich, wenn das Warten sehr lange dauern kann)


VISA auf Startbyte reagieren - eg - 22.11.2010 12:28

' schrieb:Noch ein Vorschlag:
[attachment=59821:1.png]
(Die beiden Eingänge des Shift-Registers müssen noch mit Char ungleich 0 initialisiert werden. Evtl. ist auch eine Timeout-Behandlung erforderlich, wenn das Warten sehr lange dauern kann)

Schön, aber für mich sieht es ein bischen gefährlich aus. Erstens würde ich vor der While-Schleife noch ein Flush Buffer hinmachen und zweitens irgendeine andere Möglichkeit die Schleife zu beenden. Was passiert wenn da ein einziges falsches Zeichen empfangen wird? Endlosschleife?

Gruß, eg