假如知道了pc与协调器协议呢如何编写
1 协调器与PC机通信协议。
名称 定义 字长
(字节) 说明
包头 uint8 start 1 #
网络组号 uint16 group 2 1
网络中节点地址 uint16 address 2 1—8
模块是否在当前网络 uint8 exist 1 1在 0不在
节点网络类型 uint8 type 1 C协调器 R路由器 E终端设备
传感器类型 uint8 name 1 包括被控对象,编号见下表
数据 float data[4] 16 data[0]为光照数据、data[1]为温度数据、data[2]为湿度数据、data[3]为协调器压力数据和底板各个模块传感数据,以及底板被控对象状态;通过 传感器类型(uint8 name)区别 data[3]为被控对象状态时,1 开启 0关闭
MAC地址 uint8 mac[8] 8
父MAC地址 uint8 pmac[8] 8
继电器 uint8 relay 1 1有 0无
直流电机 uint8 dcmotor 1 1有 0无
步进电机 uint8 stepmotor 1 1有 0无
蜂鸣器 uint8 buzzer 1 1有 0无
LED状态说明 uint8 ledstate[4] 4 ledstate[0]为LED3状态、ledstate[1]为LED4状态、ledstate[2]为LED5状态、ledstate[3]为LED6状态 1开启 0关闭
包尾 uint8 end 1 @
3 PC机向协调器发送控制命令通信协议。
名称 定义 字长
(字节) 说明
包头 uint8 start 1 #
网络组号 uint16 group 2 1
网络中节点地址 uint16 address 2 1—8
节点网络类型 uint8 type 1 C协调器 R路由器 E终端设备
传感器类型 uint8 name 1 包括被控对象,编号见下表
控制命令 uint8 cmd[4] 4 当控制LED时,cmd[0]~cmd[3]依次控制LED3~LED6
当控制底板的被控对象时使用cmd[0] 1 开启 0关闭
包尾 uint8 end 1 @
5 传感器类型(1字节编号定义)
传感器名称 编号(十进制) 表示方法(单位)
说明
暂保留 1 暂保留
光电 2 0~3000lx(勒克斯)
温度 3 +2C~+150C 摄氏度
红外 4 开关量 0,1(默认)
超声波 5 距离 m
酒精 6 4 个等级
红外测温 7 +2C~+150C 摄氏度
湿度 8 %
RESET(重启) 9 为1时重启协调器
烟雾 10 9 个等级
7 被控对象(1字节编号定义)
被控对象 编号(十进制) 控制命令
继电器 11 1—闭合 0—断开
LED 12 1---亮 0---灭
直流电机 13 1---转 0—停止
步进电机 14 1---转 0---停止
蜂鸣器 15 1---叫 0 ---停止
协调器串口工作与否 16 1---开始 0---停止