![]() |
Serielle Zeichenübertragung - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA) +---- Thema: Serielle Zeichenübertragung (/Thread-Serielle-Zeichenuebertragung) |
Serielle Zeichenübertragung - wohl - 26.05.2009 10:43 Für Testzwecke sollen einige Random-hex-Werte über die serielle Schnittstelle an ein zu testendes Gerät geschickt werden, und von diesem wieder zurück. Diese werden in eine Datei gespeichert. Jetzt habe ich festgestellt, daß, wenn der Hex-Wert 0Dist, steht in der Datei anschlißend 0D0A (Carriage-return - Linefeed). Das VISA: Lesen will offensichtlich 0D nicht alleine stehen lassen. Wie kann ich das unterdrücken? ![]() Serielle Zeichenübertragung - jg - 26.05.2009 11:05 Schließ mal beim "Configure Serial Port" am Eingang "Enable Termination Char" ein FALSE an. Gruß, Jens Serielle Zeichenübertragung - ImExPorty - 26.05.2009 11:15 ' schrieb:...das VISA: Lesen will offensichtlich 0D nicht alleine stehen lassen. ...ist das so? oder kommt 0A von dem (Write To Spreadsheet File.vi)PS: es würde auch das Anhängen von Zeilen an eine vorhandene Daten funktionieren und nicht immer ganz neu schreiben Serielle Zeichenübertragung - wohl - 26.05.2009 11:45 Abschlußzeichen (Termination Char.) auf false setzen hatte ich schon vor dem Posten probiert. Das unerwünschte 0A kommt auch mitten in der Datenübertragung. Für Tests habe ich am RS232-Stecker die Sende- und Empfangsleitung einfach verbunden. Aber ich denke, das dürfte keinen Unterschied machen. Serielle Zeichenübertragung - IchSelbst - 26.05.2009 14:33 ' schrieb:Das unerwünschte 0A kommt auch mitten in der Datenübertragung.Die beiden /r im String sind aber keine Hexwerte, oder? Serielle Zeichenübertragung - wohl - 26.05.2009 14:46 Doch, hier ist die "" - Code-Darstellung gewählt. Hex 0D ist identisch mit r Mit Rechtsklich in die Textzeile kannst Du verschiedene Darstellungsarten wählen Zum Selberprobieren hier das vi: ![]() Serielle Zeichenübertragung - wohl - 03.07.2009 11:32 Hallo, ich habe das Problem wieder aufgegriffen. möglicherweise spielt das Format für ds vi "in Tabellenkalkulation schreiben" eine Rolle. Ich habe eine ganze Weile rumgespielt, aber mit konstanter Boshaftigkeit wir hinter "0D" auch ein "0A" angefügt. Genauso, wenn ein "0A" kommt, wird ein "0D" voran gesetzt. Ich habe das Programm zwecks Übersichtlichkeit auf das Nötigste reduziert. Weiß jemand einen Rat? Gruß Wolfgang ![]() Serielle Zeichenübertragung - IchSelbst - 03.07.2009 14:12 ' schrieb:aber mit konstanter Boshaftigkeit wir hinter "0D" auch ein "0A" angefügt. Genauso, wenn ein "0A" kommt, wird ein "0D" voran gesetzt.Ich sehe das so: Das Element "Tabelle schreiben" ist text-orientiert. D.h. Alle Zeilen hören nunmal mit CRLF auf. Da kann man nix machen. Außer: Zitat:Weiß jemand einen Rat?Selber machen. Und so schwer ist das auch nicht. ![]() Serielle Zeichenübertragung - wohl - 03.07.2009 15:09 Thema verfehlt! Am Zeilenende steht "0D0A", damit kann ich leben, aber wenn ein zufällig erzeugtes Datum irgendwo mittendrin ein "0D" oder ein "0A" hat, wird dieses jeweils als "0D0A" geschrieben! Und das nicht am Zeilenende. Es handelt sich um ein Byte, das eben auch mal "0D" sein darf, und unverändert in der Reihe an Bytes in die Datei geschrieben werden soll! Ich habe es mit anderen Datei-Schreib-Modulen probiert, und da passiert ähnliches. Ich schätze, das ist ein Bug. Ich würde ja ein solches Modul selber schreiben, wenn ich wüßte, wie. Gruß Wolfgang Serielle Zeichenübertragung - RoLe - 03.07.2009 15:51 ' schrieb:Ich würde ja ein solches Modul selber schreiben, wenn ich wüßte, wie.Du hast mehrere Möglichkeiten. - Die Hex Werte in Strings umwandel und in Textdatei schreiben. (beim einlesen wieder zurück) - Die Werte in ein Binary File schreiben. Dazu öffnest du das "Write To Spreadsheet File.vi" und dort das "Write To Spreadsheet String.vi". Nun siehst du wie das geht. Kannst du nachbauen, anstelle des "Write to TextFile" nimmst du das "write to BinaryFile". |