LabVIEWForum.de
Visa Termination - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Visa Termination (/Thread-Visa-Termination)

Seiten: 1 2


RE: Visa Termination - GerdW - 11.03.2021 16:15

Hallo gotti,

Zitat:Die Idee hinter dem EmptyPuffer war immer die ganze Nachricht zu erhalten. versteh ich das richtig, dass es entfällt da nur auf Anfrage gesendet wird und somit der Puffer gar nicht voll sein kann und auch die nachricht selbst terminiert ist mit "\0"?
Wenn das Gerät erst auf Anfrage/Kommando sendet, kann nichts im Buffer sein. Wozu also leeren?
Und selbst wenn etwas drin stehen würde: du liest doch hinterher komplette Botschaften aus dem Buffer - es könnte höchstens die erste gelesene Botschaft unvollständig/fehlerhaft sein…

Zitat:Typdefiniert bedeutet das Design im Frontpanel?
Nein. Lese dir bitte das Thema "Typdefinition" in der LabVIEW-Hilfe durch!
Du legst damit einen Datentyp fest. Im Falle deines Clusters beinhaltet der Datentyp auch die Labels deiner 17 Bytes in der Botschaft/im Cluster.

Zitat:in deinem Programm steht "getData\00" aus anderen Programmiersprachen kenne ich nur "\0" gibts da ein Unterschied oder nur eine Null zu viel gedrückt?
Erstelle doch einfach mal selbst eine solche String-Konstante im \-code-Displaymode und tippe den String ein…
Learning by doing! Big Grin Geht deutlich schneller als hier zu schreiben und auf eine Antwort zu warten!

Zitat:der uC antwortet nur nachdem er aufgefordert wurde mit getData, brauch ich da überhaupt noch die Schleife? Oder ist sie notwendig um alle Byte zu lesen?
Sendet der µC dann genau eine Botschaft, wenn du den Befehl sendest (keine Schleife)? Oder sendet der µC mehrere Botschaften, nachdem er den einen Befehl erhalten hat (mit Schleife)?
Das weißt du doch besser als wir…

Zitat:Also in der Schleife werden dann 18 Byte gelesen und im Cluster ausgegeben, wobei nochmal das 4 und 5 byte selektiert werden und zu einem 16 bit Integer zusammengeführt und Dargestellt werden?
Byte4 und 5 wurden in deinem Original-VI ebenso zu einem U16-Wert zusammengeführt.
Du solltest dein eigenes VI eigentlich besser kennen…


RE: Visa Termination - Gottimp - 11.03.2021 17:58

Hi Gerd,

da hast du recht ich werde es ausprobieren.

Die fragen enstanden allerdings daraus, dass ich zuerst versucht habe mich selbst schlau zu machen und dann nachzufragen.


https://zone.ni.com/reference/en-XX/help/371361R-01/lvhowto/backslash_codes_display/

Hier habe ich gelesen, dass \00 bis \FF von Labview als Hex value eines 8-bit character interpretiert werden. Werde es aber jetzt wie du empfohlen hast selbst testen.

https://zone.ni.com/reference/de-XX/help/371361R-0113/lvhowto/creating_type_defs/

Und aus diesem Text habe ich verstanden, dass eine Typdefinitionen eine benutzerdefinierte Bedien- oder Anzeigeelement ist, welches mit der Datei verbunden ist.
Habs nochmal gelesen und werde auch hier erstmal versuchen es umzusetzen.

Du hast natürlich auch volkommen recht, dass nur ich die Infos zum uC habe. Ich wollte auch eher eine Bestätigung, dass ich es richtig verstanden habe, da sich dein Programm doch deutlich von meinem unterscheidet.

Ich wollte dich nicht verärgern mit meinen Nachfragen2hands

Gruß Gotti


RE: Visa Termination - GerdW - 11.03.2021 19:23

Hallo Gotti,

Zitat:Hier habe ich gelesen, dass \00 bis \FF von Labview als Hex value eines 8-bit character interpretiert werden.
Genau. Und du wolltest doch ein Null-Byte (aka \00) an den String anhängen, oder?

Zitat:Und aus diesem Text habe ich verstanden, dass eine Typdefinitionen eine benutzerdefinierte Bedien- oder Anzeigeelement ist, welches mit der Datei verbunden ist.
Eine Typdefinition wird als extra Datei gespeichert, mit der Endung "ctl". Änderungen an der Typdefinition selbst werden automatisch auf alle Instanzen dieser Typdefinition angewendet.
Typischerweise sollte man Cluster und Enums immer per Typdefinition in einem LabVIEW-Projekt verwenden…