急!请教下关于RS485串口通信的问题。
本帖最后由 happyDSQ 于 2013-01-31 09:33:54 编辑
            简单描述一下手头的任务吧,这个项目需要的是通过一个485串口接收来自几个不同设备(PLC等)的数据信息,已知这些设备的通信协议不相同,数据包长度也不同,如何完整的识别出所收到的这些信息并且判断出数据包是否完整?请指教
              
                  任务
                  linux
                  串口
                  通信协议
                  plc设备
              
------解决方案--------------------有多种协议,每个协议都有协议头,协议头中包含后续长度(如modbus)
while(接收一个字节,保存到一个数组){
  if(这个数组内容是一个/其中某个完整的协议头){
    取出长度部分,备用.
    跳出.
  }else{
    if(数组满了){
      FIFO
    }else{
      继续
    }
  }
}
找个地方放接下来接收到的已知长度的字节.
小心相互干扰.如果几种设备的数据相互有交织,那可能就.....