LabVIEWForum.de - Carriage Return, Line Feed and End of Line mit cFP2200 Problem

LabVIEWForum.de

Normale Version: Carriage Return, Line Feed and End of Line mit cFP2200 Problem
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen,

ich habe eine Steuerung auf dem cFP2100 entwickelt, dazu noch ein Test Fenster das mit der Steuerung über ein selbst definiertes Protokoll kommuniziert. Als Terminator für meine Pakete dient (0x0D0A, \r\n) Beides in LabVIEW 2011 mit RealTime Modul implementiert.

Letzte Woche habe ich einen neuen FieldPoint cFP2200 bekommen und die Steuerung auf eine kompiliert und übertragen.

Nun hatte ich das Problem, dass die Befehle von dem Test Panel nicht richtig empfangen werden. Es wird nicht nach dem CRLF das Packet an den Parser weitergeleitet sondern erst wenn 512 bytes alles an den Parser übergeben.

Mein Steuerung hängt aber an jedes Packet das versendet wird die von LabVIEW angebotene „End of Line Constante“. Bei den cFP2100 war auch alles in Ordnung.

Nachdem ich Wireshark gestartet und mir die Pakete angesehen habe, musste ich feststellen das die Steuerung wieder erwarten ein Line Feed (LF) (0x0A, \n) statt dem erwarteten (und auch Implementierten End of Line (EOL) (0x0D0A, \r\n) an die Pakete hängt. Gelöst habe ich das indem ich explizit

Meine Vermutung ist das es von National falsch implementiert ist, bevor ich das aber mit Sicherheit behaupten kann, würde ich gerne wissen ob jemand dieses Verhalten bereits beobachtet hat oder bestätigen kann.
Auf dem cFP2100 war das PHAR LAP ETS als Real-Time System drauf, auf dem cFP2200 ist jetzt ein VxWorks OS drauf. Das könnte vielleicht auch ein Hinweis auf den Fehler sein?

Angehängt habe ich die Bildausschnitte von dem Sender und Empfänger.

Würde mich freuen wenn jemand es bestätigen kann oder es jemandem eine Fehlersuche erleichtert. (Ich habe einige Stunden gesucht)
So ganz blicke ich jetzt nicht, welcher Screenshot zu welcher Implementation gehört, ABER soviel kann ich sagen:
Die "End of Line Constant" ist (und war schon immer) betriebssystemabhängig. Und ganz klar, unter VxWorks ist sie halt nur LF. Das ist keine fehlerhafte Implementation von LabVIEW, sondern von dir.
Wenn dein Protokoll unabhängig vom Zielsystem sein soll, dann solltest du es auch so programmieren.

Gruß, Jens
Das Linke Screenshot ist die erste Implementation, mitte das korregierte, rechte screenshot ist der Empfänger (Test Panel).

Du hast recht, ich habe die Hilfe jetzt nochmals genau durchgelesen.

Consists of a constant string containing the platform-dependent end-of-line value.

Durch diese Beschreibung wurde es, für mich, nicht so ganz klar.

http://digital.ni.com/public.nsf/allkb/5...F30061D49B

Nehme alles zurück, sorry.
Referenz-URLs