無効なパリティ ビットを受信することがわかっている COM ポートがあり、次のプログラムを使用していますが、ドキュメント126
に記載されている末尾のバイトを取得していないようです。
次のプログラムでは、コンソールに多くの!!!!!
が表示されますが、表示されないの?????
はなぜですか?
また、無効なパリティ ビットを含むバイトがまだストリームに含まれていると想定していますか?
using (var serialPort = new SerialPort())
{
serialPort.PortName = "COM2";
serialPort.BaudRate = 562500;
serialPort.Parity = Parity.Space;
serialPort.DataBits = 8;
serialPort.StopBits = StopBits.One;
serialPort.ErrorReceived += (s, e) => Console.WriteLine("!!!!!");
serialPort.Open();
var thread = new Thread(() =>
{
while (isRunning)
{
var b = serialPort.ReadByte();
if (b == 126)
Console.WriteLine("?????");
}
});
thread.Start();
Console.WriteLine("");
Console.WriteLine("Press any key to exit.");
Console.ReadKey(true);
isRunning = false;
thread.Join();
}