协议格式:(波特率57600) 帧头 设备地址 产品信息 数据帧类型 数据类型 用户ID 通道ID 数据ID 数据长度 接收缓冲区 校验和 帧尾 5a5a5a (1个BYTE) (1个BYTE) (1个BYTE) (1个BYTE) (1个BYTE)(1个BYTE)(1个BYTE)(2个BYTE) (buf[2048]) 00 aa 例如:(通道1 关) 5a5a5a 00 00 b2 00 00 01 00 0100 00 00 aa 数据说明:1).设备地址为机器ID; 2).数据帧类型为所需要控制的功能,以下例子对应的值; 3).数据类型在时间设置时用到,01,02,03,04分别对应日期数据,时钟数据,上电自启和定时,如下第4点; 4).通道ID为机器的通道序号; 5).数据ID是在设置通道参数时,开延时为01,关延时为02; 在时间设置里面的定时,关闭为00,循环为01,非循环为02; 在保护设置里,保护为01,过压为02,欠压为03; 在系统设置里,保存为00,调用为01,语言为02,ID为03; 在锁定里面,固定为01; 在级联里面,固定为01; 在中控模式读取ID里面,固定为03; 6).数据长度占用2个BYTE,是为接收缓冲区的数据长度,1个BYTE时数据为0100,2个BYTE时数据为0200,而返回的数据对应 为0001,0002...(即是第1个BYTE和第二个BYTE位置相反) 7).接收缓冲区与数据长度相对应; 在控制通道开关时,关为00,开为01,返回状态开启为01,关闭为00; 在设置通道延时参数时,占用两个BYTE,内容是需要设置的时间,返回正确为0xFA,返回错误为0xFB; 在时间设置的日期数据里面,数据长度为3个BYTE,内容是年月日,年的范围是(00至79),返回正确为0xFA,返回错误 为0xFB,可参考以下例子; 其它数据的填写可参考例子,接收缓冲区为真实数据的填写; 8).中控模式读取机器ID:这一句命令可以查询任一台机器的通道状态和所有参数(在设备地址处填写所需要查询的机器ID ); 返回的数据在接收缓冲区的数据为: 前8个BYTE是机器通道(依次为1至8)的状态,开启为01,关闭为00; 第9个BYTE开始的数据为机器的参数,第一个参数为通道1的开延时,占用2个BYTE,第二个参数为通道1的关延时,占用2 个byte,依次类推第2、3、4、5、6、7、8个通道的开延时和关延时,都占用2个BYTE; 接着的是过压和欠压的参数,都是占用2个BYTE; 接着的是开机的月日,关机的月日,开机的时分秒,关机的时分秒,保护,机器ID,定时方式,上电自启的参数,占用 一个BYTE; 9).校验和固定为00; 10).帧头和帧尾固定为5a5a5a和aa; 以下是数据例子: 1.单通道的控制(对应b2):设备地址为00,即为机器的ID,可控制对应的机器; 通道ID为机器的第几个(01,02,...)通道; 数据长度这里为1个长度(0100); 接收缓冲区为00或01,关闭或者开启通道; 返回相对应的数据数据长度为0001; 接收缓冲区为00或者01,表示关闭状态或者开启状态 通道1 关: 5a5a5a0000b20000010001000000aa 开: 5a5a5a0000b20000010001000100aa 通道2 关: 5a5a5a0000b20000020001000000aa 开: 5a5a5a0000b20000020001000100aa 通道3 关: 5a5a5a0000b20000030001000000aa 开: 5a5a5a0000b20000030001000100aa 通道4 关: 5a5a5a0000b20000040001000000aa 开: 5a5a5a0000b20000040001000100aa 通道5 关: 5a5a5a0000b20000050001000000aa 开: 5a5a5a0000b20000050001000100aa 通道6 关: 5a5a5a0000b20000060001000000aa 开: 5a5a5a0000b20000060001000100aa 通道7 关: 5a5a5a0000b20000070001000000aa 开: 5a5a5a0000b20000070001000100aa 通道8 关: 5a5a5a0000b20000080001000000aa 开: 5a5a5a0000b20000080001000100aa 2.单机的全部通道(b3): 关: 5a5a5a0000b30000000001000000aa 开: 5a5a5a0000b30000000001000100aa 3.通道设置(a3): 通道数据:5a5a5a0000a30000080201000600aa //通道:08 范围0x01~0x08 //关延时:02 范围0x01~0x02 //数据长度:0100 (即是1个BYTE) //延时参数:06 范围0x00~0x03e8 跟数据长度对应 4.时间设置(a5): 日期数据:5a5a5a0000a50100000003000e0b1700aa //2014年11月23日:14.11.23 (0e 0b 17) 时钟数据:5a5a5a0000a5020000000300120a1900aa //18时10分25秒:18:10:25 (12 0a 19) 上电自启:5a5a5a0000a50300000001000100aa //真实数据填写(倒数第5第6个数字)关:01;开:00 定时: 5a5a5a0000a50400000001000000aa //定时关闭 5a5a5a0000a5040000010a1e000e141e00aa //循环;开:10:30:00 (0a 1e 00) // 关:14:20:30 (0e 14 1e) 5a5a5a0000a5040000020a000b170a1e000c080e141e00aa //非循环;开:11月23日10:30:00 (0b 17 00 0a 1e 00) // 关:12月08日14:20:30 5.保护设置(a7): 保护:5a5a5a0000a70000000101000200aa //真实数据填写(倒数第5第6个数字) 保护自动:02 // 开:01 关:00 过压:5a5a5a0000a7000000020200010e00aa //真实数据填写(倒数第5678个数字)过压 270:010e // 欠压:5a5a5a0000a70000000301009600aa //真实数据填写(倒数第5第6个数字)欠压 150:96 6.系统设置(a9): 保存:5a5a5a0000a90000000001000100aa //真实数据填写(倒数第5第6个数字)保存模式1:01 调用:5a5a5a0000a90000000101000900aa //真实数据填写(倒数第5第6个数字)调用出厂数据:09 语言:5a5a5a0000a90000000201000000aa //真实数据填写(倒数第5第6个数字) 中文:00 英文:01 ID: 5a5a5a0000a90000000301000a00aa //真实数据填写(倒数第5第6个数字) ID:10 7.锁定(af):5a5a5a0000aF0000000101000100aa //真实数据填写(倒数第5第6个数字) 锁定:01 //解锁:00 8.级联(ae):5a5a5a0000aE0000000101000100aa //真实数据填写(倒数第5第6个数字) 设定级联:01 9.单机总按键(b1): 关: 5a5a5a0000b10000000001000000aa 开:5a5a5a0000b10000000001000100aa 10.中控模式读取机器ID(ac): 5a5a5a0000ac0000000301000000aa //addr为机器ID:00,需要返回机器的通道状态