我正在研究串行端口。我面临一个新问题,即一旦收到数据,我的数据就会不完整。如何检查我的数据是否完整然后处理它们,如果不完整,不处理它们?
这是我的数据接收和发送功能:
 private void Send(byte[] cmd)
        {
            bResponse = new byte[0];
            Write(cmd);        
        }
 void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            int iCount = comPort.BytesToRead;
            byte[] bBuffer = new byte[iCount];
            comPort.Read(bBuffer, 0, iCount)
            if (bBuffer.Length == 1 && bBuffer[0] == ACK)
                Write(new byte[] { ENQ });
            else if (bBuffer.Length == 1 && bBuffer[0] == NAK)
            {
                Debug.WriteLine("Incomplete Message detected!");  
            }
            else
            {
                bResponse = bResponse.Concat(bBuffer).ToArray();
                    rResponse = Decode(bResponse);
                    Write(new byte[] { ACK });
            }
        }
我知道我的数据是在几个包中收到的,我需要等到响应完成,但根据上面的代码我不知道。我应该如何检查数据是否完整,以确定是否等待?(PS:收到的响应大小不同。)