LabVIEWForum.de
Problem alle Bytes aus Empfangspuffer auszulesen - 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: Problem alle Bytes aus Empfangspuffer auszulesen (/Thread-Problem-alle-Bytes-aus-Empfangspuffer-auszulesen)

Seiten: 1 2


Problem alle Bytes aus Empfangspuffer auszulesen - IchSelbst - 13.04.2008 19:08

' schrieb:Wie kann ich denn das Term Char generell deaktivieren?!
In Visa-Config den entsprechenden Eingang, der standardmäßig auf true steht, auf false setzen.


Problem alle Bytes aus Empfangspuffer auszulesen - Hanz Peter - 13.04.2008 19:21

' schrieb:Noch viele!Cool

Der eine, der auf den drei fehlenden Zeichen, die jetzt plötzlich beim vierten Lesen rauskommen, basiert, hat sich ja erledigt. Tongue

Bevor ich auf ein Handle-Problem tippe, müsste ich folgendes Abfragen: Kann es sein, dass das SubVI parallel aufgerufen wird? Kann es sein, dass parellel zu diesem VI irgendwer irgendwie auf COM4 zugreift bzw. zugreifen will?

Kannst du ein abgespecktes SubVI erstellen, bei dem dieser Fehler immernoch auftritt?
Hab ein abgespecktes VI erstellt was nur diese Funktion ausführt. Also das auf false setzten klappt nicht, was ich jetz gemacht habe ist das "ASRL End in" ein "None" verpasst, jetzt ließt er alles aus, HALLELUJA!Rolleyes


Problem alle Bytes aus Empfangspuffer auszulesen - Hanz Peter - 13.04.2008 19:22

' schrieb:In Visa-Config den entsprechenden Eingang, der standardmäßig auf true steht, auf false setzen.
wie heisst der denn, find wohl nicht den richtigen (siehe mein Screenshot oben)


Problem alle Bytes aus Empfangspuffer auszulesen - IchSelbst - 13.04.2008 19:28

' schrieb:wie heisst der denn, find wohl nicht den richtigen (siehe mein Screenshot oben)
Rechts neben Timeout, das du verdrahtet hast, kommt zuerst ein Eingang "termination char (0xA = 'n' = LF)" und davon rechts einer der "Enable Termination Char (T)" heißt.


Problem alle Bytes aus Empfangspuffer auszulesen - Hanz Peter - 13.04.2008 19:31

' schrieb:Rechts neben Timeout, das du verdrahtet hast, kommt zuerst ein Eingang "termination char (0xA = 'n' = LF)" und davon rechts einer der "Enable Termination Char (T)" heißt.
Achja am Serial Port Konig, okay. Hab im Eigenschaftsknoten gesucht, okay denke mein Problem ist damit gelößtSmile


Problem alle Bytes aus Empfangspuffer auszulesen - eg - 13.04.2008 19:38

' schrieb:Offtopic2

Weil ich immer nur soviele Zeichen auslese, wie auch da sind. Respektive warte ich solange, bis genau die erwartete Anzahl in "Bytes im Puffer" vorhanden sind. Ein Timeout beim Lesen brauche ich also nicht. Beim Schreiben auch nicht: Da die Übertragung zwischen Endgerät und Applikation (oft) als Master/Slave abläuft, kann man den Puffer so groß einstellen, dass der immer groß genug ist - und also das VISA-interne Timeout nicht notwendig wird.

Ob ich jetzt das Timeout-Management selbst mache und vor dem Lese/Schreib-VI abzweige oder ob ich das Timeout-Management nach dem Lese/Schreib-VI mache, bleibt sich prinzipiell gleich. Hauptsache es wird gemacht.


Ja, aber wenn das Lesen des Puffers selbst länger dauert als 0? Vielleicht ein paar ms vielleicht auch weniger 1 ms, dann würdest du theoretisch auch einen Timeout-Error bekommen. Was stört dich genau am Timeout beim Lesen?

Das VISA Read VI hört auf zu lesen und gibt die gelesenen Zeichen zurück wenn:

die Anzahl gelesener Zeichen gleich dem angefordetem Wert entspricht oder
wenn Termination Character im Puffer vorkommt oder auch
wenn Timeout abgelaufen ist

@Hanz Peter, super das es jetzt klappt


Problem alle Bytes aus Empfangspuffer auszulesen - IchSelbst - 13.04.2008 20:07

' schrieb:Ja, aber wenn das Lesen des Puffers selbst länger dauert als 0? Vielleicht ein paar ms vielleicht auch weniger 1 ms, dann würdest du theoretisch auch einen Timeout-Error bekommen.
Das Lesen des Puffers ist durch ein Timeout "abbrechbar"? Das kann nicht sein. Selbst wenn im Puffer 10.000 Zeichen stehen dauert das Auslesen bestimmt doch nicht eine einzige ms. Was dauern mag ist das warten, bis eine bestimmte Anzahl Zeichen im Puffer steht.

Zitat:Was stört dich genau am Timeout beim Lesen?
Stören tut mich daran im Prinzip gar nichts. Ich mach das immer so: Lesen, was da ist und das dann parsen.


Problem alle Bytes aus Empfangspuffer auszulesen - eg - 13.04.2008 20:13

' schrieb:Das Lesen des Puffers ist durch ein Timeout "abbrechbar"? Das kann nicht sein. Selbst wenn im Puffer 10.000 Zeichen stehen dauert das Auslesen bestimmt doch nicht eine einzige ms. Was dauern mag ist das warten, bis eine bestimmte Anzahl Zeichen im Puffer steht.

Stören tut mich daran im Prinzip gar nichts. Ich mach das immer so: Lesen, was da ist und das dann parsen.

Ok, einverstanden Denknach