VISA auf Startbyte reagieren
|
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
21.11.2010, 00:09
Beitrag #1
|
jak888
LVF-Gelegenheitsschreiber
Beiträge: 133
Registriert seit: Apr 2010
2010
2010
en
97447
Deutschland
|
VISA auf Startbyte reagieren
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.
"Good judgement comes from experience, experience comes from bad judgement."
|
|
|
21.11.2010, 00:21
Beitrag #2
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
VISA auf Startbyte reagieren
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.
|
|
|
21.11.2010, 00:29
Beitrag #3
|
jak888
LVF-Gelegenheitsschreiber
Beiträge: 133
Registriert seit: Apr 2010
2010
2010
en
97447
Deutschland
|
VISA auf Startbyte reagieren
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.
"Good judgement comes from experience, experience comes from bad judgement."
|
|
|
21.11.2010, 01:23
Beitrag #4
|
jak888
LVF-Gelegenheitsschreiber
Beiträge: 133
Registriert seit: Apr 2010
2010
2010
en
97447
Deutschland
|
VISA auf Startbyte reagieren
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?
"Good judgement comes from experience, experience comes from bad judgement."
|
|
|
21.11.2010, 08:59
(Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2010 09:03 von Lucki.)
Beitrag #5
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
VISA auf Startbyte reagieren
Noch ein Vorschlag:
(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)
|
|
|
22.11.2010, 12:28
Beitrag #6
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
VISA auf Startbyte reagieren
' 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
|
|
|
| |