我的数据帧格式如下:帧头(1byte),控制字(1byte),数据区长度(2byte),数据区crc校验(2byte),数据区(最大64byte),帧尾(1byte)。
其中,数据区的长度不是固定的,最大不超过64字节,根据需要填入。在收到数据帧后,根据数据区长度(比如,数据区长度指示,数据区有32字节),来判断究竟哪些是数据。
现在问题是,如果数据帧中的数据区长度这两个字节发生错误,本来应该是32字节,变成了40字节,该怎么处理?
谢谢

解决方案 »

  1.   

    我做的时候没有管什么数据区的长度,先把一个帧全部Move到字节数组byteData里去,
    然后可轻松计算出数据区的首地址byteData[6],再一直往下读,读到帧尾为止.顺便说
    一下我用的是spcomm
      

  2.   

    你不是有CRC校验吗,如果数据区长度发生错误,你按照40字节计算出的CRC应该和发来的CRC不同,那就通知发送方重发好了。也顺便说一句,我也是用SPComm.
      

  3.   

    哪只能重发了,因为此时的crc也错的