INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Problem mit NUL characters



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

06.03.2009, 08:55
Beitrag #1

eckilein Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 129
Registriert seit: Jan 2008

2010 FDS
2008
de

59929
Deutschland
Problem mit NUL characters
Hallo

Ich habe mir ein VI gebastelt welches einen Datenstrom am Seriellen Port einließt:
Der Datenstrom beinhaltet immer Nachrichten die dadurch gekennzeichnet sind, das sie mit ESC NUL als SYN-Flags beginnen (hex 1b 00 - dezimal 27 00).
Wenn ich diese Nachrichten einlese werden die NUL characters nicht eingelesen.

Ich habe gestern abend noch mit NI telefoniert und habe dort nachgefragt ob es sein kann, dass ein ReadExisting durch ein NUL terminiert wird, wie man es z.B. aus C kennt. Standartmäßig meinte er wäre es nicht so ich solle "DsicardNull" jedoch einfach auf false setzen um das als Fehlerquelle auszuschließen.
Nun gemacht getan gleiches Problem.

hat jemand da eine Idee?

Thomas
Lv86_img

Sonstige .vi  SerialNET2.vi (Größe: 12,48 KB / Downloads: 185)

There are 10 types of people in this world. Those who understand binary and those who don't.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.03.2009, 09:47
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Problem mit NUL characters
Ändere Deinen String mal in HEX-Display.
Hier in der ASCII-Tabelle kannst Du sehen, dass NUL kein Zeichen hat. Im HEX-Display müsstest Du aber "00" sehen.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.03.2009, 11:25
Beitrag #3

eckilein Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 129
Registriert seit: Jan 2008

2010 FDS
2008
de

59929
Deutschland
Problem mit NUL characters
So grad noch Probleme mit Upgrade auf 8.6.1 gehabt .. Aber NI ist ja kompetent^^

Also
Danke Markus, aber leider hat das nicht den gewünschten Effekt. Ich bekomm weiterhin nurdie ESC Bytes.
Dieses Mal werden sie halt als 1B angezeigt.

Thomas

There are 10 types of people in this world. Those who understand binary and those who don't.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.03.2009, 13:51
Beitrag #4

eckilein Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 129
Registriert seit: Jan 2008

2010 FDS
2008
de

59929
Deutschland
Problem mit NUL characters
Ok Problem gelöst.

Das Problem hier bei ist, dass ein Byte-Stream der an der Seriellen Schnittstelle ankommt und mit ReadExisting() ausgelesen wird mit einer ASCII NUL terminiert.
Abhilfe: durch ReadChar() oder ReadByte() ersetzen.
Dadurch wird das VI zwar etwas langsamer aber die NUL Statements fallen nicht weg.

Thomas

There are 10 types of people in this world. Those who understand binary and those who don't.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2009, 10:06
Beitrag #5

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Problem mit NUL characters
' schrieb:Ok Problem gelöst.

Das Problem hier bei ist, dass ein Byte-Stream der an der Seriellen Schnittstelle ankommt und mit ReadExisting() ausgelesen wird mit einer ASCII NUL terminiert.
Abhilfe: durch ReadChar() oder ReadByte() ersetzen.
Dadurch wird das VI zwar etwas langsamer aber die NUL Statements fallen nicht weg.

Thomas

Alternativ könntest Du in LabVIEW auch einfach VISA verwenden, die hat diese dumme C Eigenschaft nicht :-). Ein VISA Read endet nur wenn es die verlangte Anzahl Character gelesen hat, oder das Timeout abgelaufen ist, oder ein Fehler aufgetreten ist, oder der eingestellten End Char erkennt wurde und diese Option auch eingeschaltet ist.

Für den seriellen Port is End Char default eingeschaltet und auf CR eingestellt aber mit ein oder zwei Proeprties ist das einfach geändert.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2009, 16:28
Beitrag #6

eckilein Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 129
Registriert seit: Jan 2008

2010 FDS
2008
de

59929
Deutschland
Problem mit NUL characters
Hallo Rolf

Da hast du recht. ich könnt Visa nehmen.. ich find es aber mit .Net etwas felxibeler weil du da halt genau sagen kannst wie du es auslesen möchtest oder auch Schreiben möchtest, in der Hinsicht bist du bei VISA etwas eingeengt.
Ok das ist vlielleicht etwas falsch ausgedrückt^^
Aber es ist bequemer weil man sonst alles hin und herformatieren muss.

Und ich muss meine Anwendung auch so offen halten, das ich im Fall auch diese Serielle Lösung durch TCP/IP ersetzen kann.
Aber naja^^ egal. Mit VISA ging es auchSmile

There are 10 types of people in this world. Those who understand binary and those who don't.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.03.2009, 16:47
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Problem mit NUL characters
' schrieb:Hallo Rolf

Da hast du recht. ich könnt Visa nehmen.. ich find es aber mit .Net etwas felxibeler weil du da halt genau sagen kannst wie du es auslesen möchtest oder auch Schreiben möchtest, in der Hinsicht bist du bei VISA etwas eingeengt.
Ok das ist vlielleicht etwas falsch ausgedrückt^^
Aber es ist bequemer weil man sonst alles hin und herformatieren muss.

Und ich muss meine Anwendung auch so offen halten, das ich im Fall auch diese Serielle Lösung durch TCP/IP ersetzen kann.
Aber naja^^ egal. Mit VISA ging es auchSmile

Das letzte Argument ist lustig! ;-) VISA unterstützt nämlich auch TCP/IP und dazu musst Du nur den Resourcennamen änderen und allenfalls bei der Initialisation einige Properties anders setzen. Der Rest ist vollkommen transparent so den die Geräte auf der seriellen und TCP/IP Schnittstelle mit den gleichen Kommandos arbeiten.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2009, 17:12
Beitrag #8

eckilein Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 129
Registriert seit: Jan 2008

2010 FDS
2008
de

59929
Deutschland
Problem mit NUL characters
' schrieb:Das letzte Argument ist lustig! ;-) VISA unterstützt nämlich auch TCP/IP und dazu musst Du nur den Resourcennamen änderen und allenfalls bei der Initialisation einige Properties anders setzen. Der Rest ist vollkommen transparent so den die Geräte auf der seriellen und TCP/IP Schnittstelle mit den gleichen Kommandos arbeiten.

Rolf Kalbermatter

Und wieder was gelernt^^ danke

There are 10 types of people in this world. Those who understand binary and those who don't.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: