したがって、基本的には、指定されたシリアル ポート (デバイス: USB 経由で接続され、シリアル ポートとしてマップされたバーコード スキャナー) をリッスンするバックグラウンドで実行されているコンソール アプリケーションがあります。添付された SerialDataReceivedEventHandler は想定どおりに機能します。ただし、コンピューターがスタンバイ/休止状態になり、再アクティブ化されるとすぐに、明らかにデータが送信されなくなります (SerialDataReceivedEventHandler はトリガーされません)。SerialPort オブジェクトを確認すると、すべて問題ないようです (同じ属性、同じイベント ハンドラー、接続がまだ開いている)。とにかく、接続が(数時間後に)タイムアウトしているように見えることにも気付きました。
繋がり
...
{
SerialPort serialPort = new SerialPort(port);
serialPort.BaudRate = 9600;
serialPort.Parity = Parity.None;
serialPort.StopBits = StopBits.One;
serialPort.DataBits = 8;
serialPort.Handshake = Handshake.None; // tried RequestToSend as well, no difference
serialPort.DataReceived += new SerialDataReceivedEventHandler(MySerialPortHandler);
serialPort.Open();
...
}
static void MySerialPortHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort serialPort = (SerialPort)sender;
string inData = serialPort.ReadExisting();
...
}