我现在做一个实现主从设备数据交换的通信软件,其中主设备为pc,从设备为蓄电池监测仪。目的是通过工作人员对pc上的通信软件进行操作,接收来自监测仪的监测数据。
它们之间的通信必须遵循既定的数据帧格式
即:设备地址,功能代码,数据,数据大小 crc校验位     
(设备默认地址为 01H)
功能代码有:遥信02H,遥测03H等等
其中遥信量有总电压代码01F8H 温度代码01FBH、单电压代码0200H、内阻代码0400H
发送遥信查询命令,看监测仪是否有以上量的报警,有1,无0
例如:发送查询总电压命令为:01 02 01 F8 00 01 crc校验位 (H代表十六进制)
查询命令必须是实时发送,也就是每隔几秒或者几分就得发送一次
还有一个问题,就是从设备回复的数据格式里没有指明查询参量,也就是如上例
回复的格式为01 02 00 01 数据 crc校验位。这是否必须在程序中没发送一个查询命令就必须紧接着receivebuf接收,才不至于混淆。
请各位指教!

解决方案 »

  1.   

    http://www.362343.com/dispbbs.asp?boardID=19&ID=359
    http://www.362343.com/dispbbs.asp?boardID=19&ID=284
      

  2.   

    对呀,你使用停/等的方式不就可以实现了,否则就要加标志
    同意king_dragon
      

  3.   

    谢谢King_Dragon和eorchid的指教,另外再问一个问题,如何实现实时不断的监控,也就是在连接上以后不断的给检测仪发送查询命令直至断开连接为止。是不是必须用到timer控件,小弟刚学,请指教!