Hallo Beam,
Zitat:Da zeigt der Fehler-Cluster beim Fehler ein rotes Kreuz und bei "no error" ein grünes Häkchen. Ich weiß aber nicht, ob das eine Eigenart der mitgeliefeten LabView-Treiber ist oder ob es bei USB-Geräten generell anders ist.
Es gibt/gab Gründe, warum ich nach einem konkreten VI von dir gefragt habe.
Jetzt lieferst du genau diesen Grund in deiner Frage - aber immer noch keine Antwort…
Zitat:Diese Warnung läßt sich ja auch nicht auswerten (z.B. mit "Error-Code ungleich 0")
Na klar lässt sich das auswerten - aber eben nicht mit einem einfachen Vergleich mit Null.
Zum Glück kann man ja die Fehlernummer auswerten und entsprechend reagieren!
Schau dir doch mal an, was die Fehlerbehandler intern so alles mit dem Errorcluster anstellen…
Zitat:Also ist der Wert, den dieses "Bytes at Port" liefert, korrekt. Woher dieser Wert allerdings stammt, ist mir unklar. Ich kann nur erkennen, daß dieser je nach zuvor gesendeten Befehl dynamisch angepaßt wird.
BytesAtPort gibt an, wieviele Bytes im Empfangsbuffer der seriellen Schnittstelle angekommen sind.
Und das auf jeden Befehl eine andere Anzahl Bytes zurückkommt, ist nicht ungewöhnlich…
Meist benötigt man BytesAtPort aber überhaupt nicht, da man i.A. zwischen zwei Übertragungsarten unterscheiden kann:
1. Die Messages verwenden TermChars, die man dann beim SerialPortInit angeben und aktivieren sollte. Beim VISARead dann einfach mehr Zeichen anfordern als man maximal erwartet.
2. Die Messages verwenden kein TermChar: dann sollte das Protokoll mit festen Messagelängen arbeiten oder die Messagelänge ist in den ersten Bytes der Message hinterlegt. Dann kann man wiederum mit festen zu lesenden Byteanzahlen arbeiten und benötigt auch kein BytesAtPort…
Zitat:Ok, also ist die Fehlerleitung hier völlig witzlos
Nein! Sie garantiert den DATAFLOW!
Zitat:Also könnte ich nach "*IDN?" fragen und wenn dann nicht der für das Gerät korrekte Antwortstring kommt, lasse ich eine individuelle Fehlermeldung ausgeben ohne die Fehlerleitung und einen Fehler-Cluster zu nutzen?
Dass du dein Gerät abfragen kannst, wurde weiter oben schon vorgeschlagen.
Du kannst aber danach in diesem Errorcluster deine eigene Errormeldung hinterlegen, man kann den Cluster ja selbst mit Werten befüllen…