Entwickler-Ecke

Sonstiges (.NET) - RS232 Parityfehler erkennen


DummyScript - Do 15.07.10 11:07
Titel: RS232 Parityfehler erkennen
Hi!

Ich muss für ein Schulprojekt über die Serielle Schnittstelle einen Mikrocontroller ansprechen. Dabei wird ein eigen entwickeltes "Protokoll" verwendet. Ich verwende die Serial Port Class in C# (http://msdn.microsoft.com/en-us/library/30swa673.aspx). Es ist beim Mikrocontroller sehr einfach einen Parity Fehler zu erkennen, da ich Zugriff auf das 9. Bit (also das Parity) habe. Anders ist das bei C#, wo auf das Parity scheinbar nicht zugegriffen werden kann da alles automatisch gehandhabt wird. Tritt nun ein Parityfehler auf (bei C#) gibt es 2 Möglichkeiten:
1) Wenn ParityReplace > 0 ist: Das fehlerhafte Byte wird durch den Wert der durch ParityReplace eingestellt wurde ersetzt.
2) ParityReplace == 0: Das fehlerhafte Byte wird ohne weitere Fehlerbehandlung übergeben.

Beide Methoden kommen für mich nicht in Frage. Ein Paket ist in meinem Protokoll so aufgebaut [Startbyte][ID][Data][Endbyte]. Tritt nun ein Parityfehler im z.B. Data Feld auf, und es wird durch einen eingestellten Wert (ParityReplace) ersetzt, kann ich trotzdem nicht erkennen ob ein Fehler aufgetreten ist oder der Wert so übertragen werden hätte sollen. Bei Methode 2 würde ich überhaupt keinen Fehler bemerken.

Also gibt es irgend ein Event oder ein Flag das bei einem Parityfehler gesetzt wird? Oder wie soll ich dieses Problem sonst lösen?


Danke für eure Hilfe!


DummyScript - Mo 19.07.10 10:49

Hat niemand eine Idee?


c#surfer - Mo 19.07.10 15:47

Müsstest du über das SerialPort.ErrorReceived-Ereignis erkennen können


DummyScript - Di 03.08.10 12:03

Funktioniert :)

Danke für deine Hilfe!