diff --git a/Correlator/DataService/SerialPortServiceImpl.cs b/Correlator/DataService/SerialPortServiceImpl.cs index 423d7d5..aa0b98f 100644 --- a/Correlator/DataService/SerialPortServiceImpl.cs +++ b/Correlator/DataService/SerialPortServiceImpl.cs @@ -28,7 +28,6 @@ _eventAggregator = eventAggregator; _audioService = audioService; Sp.DataReceived += DataReceivedFromSerialPort; - Sp.ErrorReceived += ErrorFromSerialPort; } /// @@ -47,9 +46,17 @@ Sp.Read(headerBuff, 0, 2); //读取数据 if (headerBuff[0] != 0xA3 || headerBuff[1] != 0x20) //符合规范 { - return; + "SerialPortServiceImpl".WriteLog("串口数据头部校验失败"); + Sp.DiscardInBuffer(); } + else + { + ReadFromSerialPort(headerBuff); + } + } + private void ReadFromSerialPort(byte[] header) + { var lengthBuffer = new byte[2]; Sp.Read(lengthBuffer, 0, 2); var length = lengthBuffer.ConvertToInt(); @@ -67,8 +74,8 @@ } var result = new byte[length + 6]; - result[0] = headerBuff[0]; - result[1] = headerBuff[1]; + result[0] = header[0]; + result[1] = header[1]; result[2] = lengthBuffer[0]; result[3] = lengthBuffer[1]; Sp.Read(result, 4, result.Length - 4); @@ -78,16 +85,6 @@ } /// - /// 错误数据 - /// - /// - /// - private void ErrorFromSerialPort(object sender, SerialErrorReceivedEventArgs e) - { - Console.WriteLine(@"ErrorFromSerialPort => 错误数据"); - } - - /// /// 处理串口发过来的数据 /// ///