' schrieb:Hi!
In der Hilfe zum Terminationchar steht:
Abschlusszeichen führt zur Beendigung des Lesevorgangs. Der Lesevorgang wird beendet, wenn das Abschlusszeichen vom seriellen Gerät empfangen wird. 0xA ist das hexadezimale Äquivalent eines Zeilenvorschubzeichens (n). Ändern Sie das Abschlusszeichen in 0xD bei Nachrichten, die mit einem Wagenrücklauf ® enden.
Wenn ich also einen Befehl abschicke und eine Stringkette mit mehreren Bytes erwarte, die am Schluss ein <CR> beinhaltet, setze ich den Termination Char auf 0xD (für Carriage Return).
Was mir nicht ganz klar ist: Ich weiss nicht, wann das Abschlusszeichen kommt. Wenn ich nun die serielle Schnittstelle so konfiguriere, dass sie auf den Termination Char wartet, muss ich dann nach dem Sendevorgang eine bestimmte Zeit lang warten oder kann ich gleich dahinter ohne Verzögerung (ohne Wait) den Lesevorgang setzen, der aber wirklich erst dann liest, wenn dieser Char da is oder der Timeout erreicht ist?
Is das also wie im angehängten Bild möglich?
Was passiert hier, wenn nach 12ms "HalloIchBin" und nach 24ms "DieAntwort<CR>" zurückkommt. Lese ich dann nur "HalloIchBin" aus oder "HalloIchBinDieAntwort<CR>"?
Danke euch!
Lg,
Tommy!
Wenn Du ein Instrument hast das Termination Character sendet und VISA darauf eingestellt hast kannst Du grundsätzlich gleich nach dem Senden des Kommandos zu lesen versuchen. Du musst nur darauf achten, dass das Timeout bei der Read Node grösser ist als die Zeit die das Instrument benötigt um die komplette Antwort zu senden. VISA Read kehrt nämlich zurück nachdem entweder:
1) Die verlangten Anzahl Character empfangen sind (kein Fehler)
2) Der Termination Character empfangen ist (kein Fehler)
3) Das Timeout abgelaufen ist (entsprechender Fehler erscheint im Error Cluster)
4) Ein Fehler aufgetreten ist (entsprechender Fehler erscheint im Error Cluster)
Ob Du gleich nach dem Senden Lesen sollst hängt ganz davon ab wie schnell Dein Gerät ist und ob Du noch andere Dinge zu tun hast die quasi gleichzeitig erledigt werden sollten. Bei schnellen geräten ist ein direktes Lesen sicher iO und wenn Du eh nichts anderes sinnvolles zu tun hast dann bleibt Dir auch nicht viel mehr übrig.
Rolf Kalbermatter