LabVIEWForum.de - Serielle Schnittstelle auslesen bis Stringende

LabVIEWForum.de

Normale Version: Serielle Schnittstelle auslesen bis Stringende
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich habe ein Problem mit einem Messgerät das ich über die RS232 abfrage.

Mir wird als Messwert ein String geliefert der unterschiedlich lang sein kann.

Wenn ich jetzt das Visa Read nicht genau einstelle ( wieviele Bytes will ich lesen ) dann bricht mir das Programm ab mit Timeout.

Gibt es eine Möglichkeit die Serielle Schnittestelle abzufragen und auf End of Text zu reagieren?
Hallo bull,

stell doch beim SerialPortInit einfach das passende TermChar (bei dir EOT) ein...
Danke das wusste ich garnicht das das geht.

Mein String sieht so aus.

dP2000,100,500,200;#dS;#dD;1,#

Auf was frage ich jetzt ab???

\r\n kann ich ja nicht eintragen da ein Integer Wert erwartet wird
Hallo bull,

du kannst aber \n eintragen (bzw. sollte das schon der Standardwert sein)!

Zitat:\r\n kann ich ja nicht eintragen da ein Integer Wert erwartet wird
Es wird kein "Integer", sondern ein U8 erwartet! U8 = Char = ASCII-Wert...

Zitat:Mein String sieht so aus. dP2000,100,500,200;#dS;#dD;1,#
Und wo soll da das genannte \r\n sein? Hat dein String nun TermChars oder nicht?
Über TermChars weis ich nichts. Steht nichts in der Doku.
Ich habe den Hersteller angeschrieben mit \n gehts nicht.
Ich lade wohl mal das VI hoch

\n\r ist End of Line
Hallo bull,

Zitat:\r\n kann ich ja nicht eintragen ... \n\r ist End of Line
Was denn nun? "\r\n" oder \n\r"? Sind diese Zeichen in deinem String oder nicht? Wenn ja, in welcher Reihenfolge?

\n\r ist übrigens nicht EOL! Das ist ein LF, gefolgt von CR... (ASCII)

Zitat:Über TermChars weis ich nichts. Steht nichts in der Doku.
TermChar nennt sich der Eingang am SerialPortInit.

Zitat:Ich habe den Hersteller angeschrieben mit \n gehts nicht.
Manchmal soll es helfen, Hersteller und Gerätetyp zu nennen - und wenn der OP ganz gut ist, postet er einen Link auf das Manual zur Hardware...
Dazu gibt es keinen Link da es eine Sonderentwicklung einer kleinen Messtechnikbude ist

http://digital.ni.com/public.nsf/allkb/8...BE005AB500

es ist \r\n
Hallo bull,

Zitat:es ist \r\n
Dann stelle \n als TermChar beim SerialPortInit ein und stelle die zu lesende Bytezahl höher als nötig beim VISARead - und gut ist...

Geht es dir jetzt um den Empfang von Daten oder um das Senden von Befehlen? Dein verlinktes Dokument bezieht sich auf das Senden von Daten, du redest bisher über den Empfang von Daten...
Es geht mir ums empfangen.

Mit \n geht es nicht.

Wenn ich auf # abfragen könnte wäre ideal. Das ist immer das letzte Zeichen. Allerdings kommt das halt nicht nur einmal vor.
Hallo bull,

Zitat:Mit \n geht es nicht.
Warum nicht, wenn dein String, wie du schreibst, mit \r\n abgeschlossen wird?

Zitat:Wenn ich auf # abfragen könnte wäre ideal. Das ist immer das letzte Zeichen. Allerdings kommt das halt nicht nur einmal vor.
Genau. Deshalb nimmt man auch ein eineindeutiges TermChar wie \n...
Seiten: 1 2
Referenz-URLs