客户只提供了如下通信协议
是串口通信方式
===============================================
一:数据发送格式:  <起始字节><数据包><结束字节>
起始字节=<0x00>    
结束字节=<0xFF>
===============================================
<数据包>定义:
打开指定的列  
[区号][0x01][列号][层号][节号]
-----------------------------------------------
关闭指定的列  
[区号][0x02][列号][层号][节号]
-----------------------------------------------
停止         
[区号][0x03][列号][层号][节号]
-----------------------------------------------
禁止/解禁     
[区号][0x04][NULL][0/禁止;1/解禁][NULL]
-----------------------------------------------
通风:        
[区号][0x05][NULL][NULL][NULL]
-----------------------------------------------
红外报警:    
[区号][0x0B][NULL][1][NULL]
-----------------------------------------------
电源开关:    
[区号][0x0D][NULL][0/开,1/关][NULL]
===============================================
二:数据包应答格式: <起始字节><返回字节><结束字节>
===============================================
起始字节=<0xAA>      
结束字节=<0xFF>
-----------------------------------------------
<返回字节>定义:    
0x01-正确接收, 0x02-重发
-----------------------------------------------
注:NULL 表示当前的字节没有实际意义。
小弟以前没做过这方面的程序,没什么方向,也不知道找什么相关资料,希望有这方面经验的高手朋友们给予指点和帮助,谢谢!

解决方案 »

  1.   

    串口通信问题,既然有了通信协议,那就好办了。你需要的是否是事实监控这些节点的状态?如果是那就把串口通信代码放置到Timer中,定时读取状态即可。当然这是大方向。就具体的实现方式就是你根据通信协议编写自己的串口通信命令,发送出去,等待响应,读取返回值,分析之。
      

  2.   

    http://download.csdn.net/source/1498637
    http://download.csdn.net/source/1498644
    http://download.csdn.net/source/1262066
      

  3.   

    Output 属性可以传输文本数据或二进制数据。
    用 Output 属性传输文本数据,必须定义一个包含一个字符串的 Variant。
    发送二进制数据,必须传递一个包含字节数组的 Variant 到 Output 属性。 
    正常情况下,如果发送一个 ANSI 字符串到应用程序,可以以文本数据的形式发送。如果发送包含嵌入控制字符、Null 字符等等的数据,要以二进制形式发送。像我上面那种协议,应该选文本数据还是二进制数据?
    我不是要建一个字节数组把[XXXX]写到数组中来发送呀?
      

  4.   

    InputMode属性
    • 语法-MSComm1.InputMode[=Value]。
    • 作用-设置或返回接收数据的数据类型。
    InputMode 属性的Value值可以设置为如下 VB常数。
    “0”通过Input 属性以文本方式取回传入的数据。
    “1”通过Input 属性以二进制方式取回传入的数据。
    例如,MSComm1.InputMode=1表示以二进制方式读取数据。我这种协议应该设置那一种方式?