C# SerialPort DataReceived problem, wenn beim angeschlossenen strings
Habe ich ein DataReceived-Methode auslösen, Daten von einem RS232 Gerät. Die Dinge laufen reibungslos mit dem folgenden code
byte[] data = new Byte[serialPort.BytesToRead];
serialPort.Read(data, 0, data.Length);
string read = System.Text.Encoding.ASCII.GetString(data);
aber wenn ich einen string nach einem Daten
string read = System.Text.Encoding.ASCII.GetString(data) + "asdf \n";
Sind die Daten noch empfangen, aber würde gelegentlich falsch angezeigt werden. E. g. wenn ich den Anschluss an eine Waage und Lesen sollten "10.45 kg asdf" es zeigen würde, auf meinem computer als "10. asdf45kg". Was ist hier das problem?
- Könntest du bitte nähere Angaben zu den Geräten, die Sie verwenden.... Da gibt es möglicherweise verschiedene Protokolle für jedes Gerät...und wir müssen uns Anfrage senden, die in bestimmten format.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
DataReceived
Methode wird ausgelöst, wenn die serielle Schnittstelle fühlt sich an wie auslösen, die NICHT unbedingt, wenn Sie erhalten eine vollständige Zeichenfolge von dem Gerät. Sehen diese SO beantworten für eine große Diskussion von den details. Wenn Sie einen bekannten terminator-Zeichen, können Sie dieses problem umgehen, indem festlegen derNewLine
Eigenschaft des SerialPort, und dann mitReadLine()
.