Hallo zusammen,
ich habe ein kleines Programm geschrieben, dass Daten über die serielle Schnittstelle empfängt (Datenrate 57600 Baud, 16 Byte alle 10ms; 8bit, keine Parität 1 Stoppbit). Die Daten schreibe ich byteweise über FileStream in eine Datei. Die Daten sollen auch byteweise interpretiert werden (sollen also tatsächlich einen Wert zwischen 0 und 255 repräsentieren). Encoding habe ich auf default gestellt, damit werden auch die Zeichen über 127 dargestellt.
Funktioniert bis hierhin auch tadellos, solange ich nicht den Wert des Byte (also 0…255) heraushaben möchte, d.h. wenn ich das File nachher öffne, stehen halt die ASCII-Zeichen drin, grundsätzlich werden aber nachweislich alle Bytes empfangen (mit der Klasse SerialPort, …Datareceived).
Wenn ich nun beispielsweise schreibe:
.Write = Val(serialport.ReadExisting)
weil ich gelesen habe, dass ich mit Val den Wert des Zeichens bekomme, dann bekomme ich plötzlich nicht mehr alle Zeichen mit. Es werden die meisten Zeichen einfach verschluckt.
Was könnte ich hier falsch gemacht haben, dass die Übertragung (oder warscheinlich der Datenempfang) so stark beeinträchtigt wird? Wie kann ich die Bytes umwandeln, dass dies nicht passiert?
Vielen Dank für eure Mühe
Gruß
Michael