13.04.2008, 19:21
|
Hanz Peter
LVF-Grünschnabel
Beiträge: 11
Registriert seit: Apr 2008
8.5
-
de
10115
Deutschland
|
Problem alle Bytes aus Empfangspuffer auszulesen
' schrieb:Noch viele!
Der eine, der auf den drei fehlenden Zeichen, die jetzt plötzlich beim vierten Lesen rauskommen, basiert, hat sich ja erledigt.
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!
|
|
|
13.04.2008, 19:22
|
Hanz Peter
LVF-Grünschnabel
Beiträge: 11
Registriert seit: Apr 2008
8.5
-
de
10115
Deutschland
|
Problem alle Bytes aus Empfangspuffer auszulesen
' 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)
|
|
|
13.04.2008, 19:31
|
Hanz Peter
LVF-Grünschnabel
Beiträge: 11
Registriert seit: Apr 2008
8.5
-
de
10115
Deutschland
|
Problem alle Bytes aus Empfangspuffer auszulesen
' 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ößt
|
|
|
13.04.2008, 19:38
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Problem alle Bytes aus Empfangspuffer auszulesen
' schrieb:
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
|
|
|
13.04.2008, 20:07
|
IchSelbst
LVF-Guru
Beiträge: 3.689
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Problem alle Bytes aus Empfangspuffer auszulesen
' 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.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
13.04.2008, 20:13
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Problem alle Bytes aus Empfangspuffer auszulesen
' 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
|
|
|
| |