在我的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
事件?如果是这种情况,我应该完全停止测试吗?