私のSerialPort.DataReceived
イベントハンドラーでは、次をチェックしていSerialData.Eof
ます:
void DataReceived(object sender, SerialDataReceivedEventArgs e) {
if (e.EventType == SerialData.Eof)
throw new NotImplementedException("SerialData.Eof");
// ... Read
}
これまでの開発全体で、この例外に遭遇したことはありません。しかし、今日、プロトコルの別の部分に取り組んでいるときにヒットしました。
私の質問は、正確にはSerialData.Eof
どういう意味ですか? MSDN は次のように述べています。
ファイルの終わりの文字が受信され、入力バッファーに配置されました。
バイナリデータを扱っています。「ファイル終了文字」とは何ですか?
このMSDNフォーラムの投稿は、次のように述べています
メンバーは
DCB.EofChar
常に 0x1A (Ctrl+Z) に初期化されます
クラスの参照ソースのSerialStream
1343 行目で、実際に次のことがわかります。
dcb.EofChar = NativeMethods.EOFCHAR;
そしてでMicrosoft.Win32.NativeMethods
:
internal const byte EOFCHAR = (byte) 26;
これは、デバイスが 0x1A バイトを送信するたびに、SerialData.Eof
イベントが発生するということですか? その場合、テストを完全に停止する必要がありますか?