我遇到这样一个设备,它的通信协议没有帧头、帧尾,长度也不确定。采用问答方式,主设备主动询问,从设备上报信息,由于实时性要求必须连续问答(即主设备正确收到从设备回答,立即下发下一包数据,如果没有收到,则等待1秒钟后下发下一包数据)。这样的情况下我该如何处理?有人说要考虑超时,我以前没有接触过通信协议,现在做起来感觉很吃力。大家能不能帮我想想办法?谢谢了!!

解决方案 »

  1.   

    采取类似于TCP的滑动窗口的方式。
      

  2.   

    如果使用CSDN上一位朋友的cnCOMM类该怎么处理?
      

  3.   

    对于没有:帧头、帧尾,长度也不确定的协议,又要快速的查询,处理办法启动->清空接收区->发送命令->查看接收数据->接收数据是否正确 ?->正确->发送下一次命令
    ->不正确->根据协议速率,最长上传帧字节,分析发送数据可能的时长:是否到最大时长?      ->到最大时长->清接收区,发送下一次命令
          ->未到最大时长->查看接收数据