首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

串口通讯协议,关于艾默生DataMate3000空调的

2012-05-20 
串口通讯协议求助,关于艾默生DataMate3000空调的。通讯协议:http://wenku.baidu.com/view/eb122bd176a20029

串口通讯协议求助,关于艾默生DataMate3000空调的。
通讯协议:
http://wenku.baidu.com/view/eb122bd176a20029bd642d93.html

求助各位大侠:
1、协议内容比较晦涩难懂,请高手提点一下,特别是“16进制解释 ASCII码传输”;
2、能否给一个算法,特别是校验码(LENGTH、CHKSUM)的计算;
3、能否给一个或者几个例子:获取VAR(版本号)和获取模拟量量化后数据(温度)的;

谢谢!!!

[解决办法]
最好是自己慢慢调吧,比较耗时间的。
[解决办法]
1.比如发送数据“CS023”,那么将每个字符翻译为十六进制就OK,比如其中"0”对应的十六进制就是0x30,依此类推。
2.这个。。。没去看那个协议了,建议先用串口调试助手试试,看发个什么字符,返回的是什么东东,然后根据协议进行解析就是。
[解决办法]
到网上找个串口使用工具的源码研究下。编程技术很简单。麻烦的是协议。建议和楼上一样串口调试工具 一条一条测试。熟悉其功能。有设备的话是很简单的!
[解决办法]
到网上找个串口使用工具的源码研究下。编程技术很简单。麻烦的是协议。建议和楼上一样串口调试工具 一条一条测试。熟悉其功能。有设备的话是很简单的!
[解决办法]
要源码的话,去pudn找吧!这是个技术坛子
[解决办法]
略微看了一下协议,
好像并不是太复杂,
只是命令多了一些而已,基本格式也很简单
[解决办法]
很简单的一个协议,即使用明ASC码表示16进制而已,而且说了超过500ms空调无应答为通信失败
如设置字符串char sCmd[50];sCmd为要发送的到串口的字符串,简单解析一下协议如下:
sCmd[0] = 0x7e ;//首字符,标志符号,不按照说明处理
sCmd[1] = '2'; sCmd[2] = '1'; // 版本号,用asc字符表示16进制

sCmd[3] = '0'; sCmd[4] = '2'; // 设备地址为0x02 ,用16进制表示1个字符,故地址最大255,0xff

sCmd[5] = '6'; sCmd[6] = '0'; // 控制标志码,后面有注明,为0x60

以下就不一一写了,需要前后对照,仔细点很简单的,需要注意开始说明的每个功能的大小
[解决办法]
http://download.csdn.net/detail/xjdx051/3756635
看看这个,也许会帮到您
[解决办法]

C/C++ code
       DynamicArray<byte> commandByte;    commandByte.Length = 6 ;       //指定命令动态数组的大小    commandByte[0] = 0x02 ;        //开始    commandByte[1] = 0x41 + addr;  //仪表地址    0 和 1    commandByte[2] = 0x44 ;        //命令    commandByte[3] = 0x30 ;        //校验高位 均为0x30    commandByte[4] = 0x30 + commandByte[1]^commandByte[2];     //校验低位    commandByte[5] = 0x03 ;        //结束    Comm1->OutputByte(commandByte)  ;   //发送读取命令 

热点排行