更新时间:2024-06-20 05:47:50下载pdf
涂鸦可视对讲门锁串口通用协议,主要用于可视对讲 Wi-Fi 模组与其它门锁 MCU 串口直连做串口通信,其架构框图如下图所示。
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 固定为 0x55aa |
版本 | 1 | 升级扩展用 |
命令字 | 1 | 具体帧类型 |
数据长度 | 2 | 大端 |
数据 | N | - |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
说明:
所有大于 1 个字节的数据均采用大端模式传输。
协议中所有举例说明数据都是十六进制数据。
Wi-Fi 模组主动发起的通信发送包超时时间为 500ms,重传次数为 2 次。
一般情况下,采用同命令字一发一收同步机制,即一方发出命令,另一方应答,若发送方超时未收到正确的响应包,则超时传输,如下图所示:
说明:具体通信方式以 协议详述 章节中为准。
MCU 状态上报则采用同步模式,MCU 状态上报“命令字”为 y,如下所示:
MCU 统计数据上报:
字段 | 长度 | 说明 |
---|---|---|
dp_id | 1 | DP 的指令码 |
dp_type | 1 | DP 的数据类型 |
dp_data_len | 2 | DP 的数据长度 |
dp_data_value | dp_data_len | DP 的数据(具体请看 DP 详解) |
dp_type | 取值 | 长度(byte) | 说明 |
---|---|---|---|
raw | 0 | 1~255 | 原始类型,详见 DP 详解 |
bool | 1 | 1 | 布尔值 |
value | 2 | 4 | 值类型(int) |
string | 3 | 0~255 | 字符串(可能为空) |
enum | 4 | 1 | 枚举值 |
表格色块说明:通用接口、拓展接口。
帧名称 | 命令字 | 门锁基础版 | 可视对讲门锁 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
查询产品信息 | 0X01 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
报告设备联网状态 | 0X02 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
重置 Wi-Fi | 0X03 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
重置 Wi-Fi-选择配置模式 | 0X04 | 支持 | 不支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
实时状态上报 | 0X05 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
记录型状态上报 | 0X08 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
模组命令下发 | 0X09 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
获取本地时间 | 0X06 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
模组功能性测试 | 0X07 | 支持 (但不推荐,可用 0XF0) |
不支持 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
请求 Wi-Fi 模组固件升级 | 0X0A | 支持 (WBR1 和 WBR3 暂不支持) |
支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
请求 MCU 固件升级 | 0X0C | 支持 (WBR1 和 WBR3 暂不支持) |
支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
升级启动 | 0X0D | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
升级包传输 | 0X0E | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
查询当前连接路由信号强度 | 0X0B | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
请求云端临时密码(只支持单组) | 0X11 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
动态密码校验 | 0X12 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
请求云端临时密码(支持多组) | 0X13 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
请求云端临时密码(带 schedule 列表) | 0X14 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
获取 dp 缓存命令 | 0X15 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
离线动态密码 | 0X16 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
上报 MCU 的 SN 号 | 0X17 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
模组重置状态通知 | 0X25 | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
密码进制服务 | 0X1C | 支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
模组功能性测试 | 0XF0 | 支持 | 不支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
自动升级 | 0X21 | 支持 | 不支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
触发抓拍命令 | 0X64 | 不支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
触发结果通知 | 0X62 | 不支持 | 支持 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x01 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组发送:
55 aa 00 01 00 00 00
MCU 返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x01 |
数据长度 | 2 | N |
数据 | N | {“p”:”vHXEcqntLpkAlOsy”, “v”:”1.0.0”, ”n”:0, ”cap”:0} |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
p 表示产品 ID。
参数为用户在涂鸦官网创建的产品 PID:vHXEcqntLpkAIOsy
v 表示 MCU 版本
此处表示 MCU 版本为 1.0.0
n 字段(可选):表示模式的配网模式:
smartconfig、AP 切换配网模式(默认为该模式)
两种传统配网模式互相切换,每次复位会切换到另一种配网模式。
仅仅只有 AP 配网模式(仅 IPC 方案支持)
这种模式下产品只能通过 AP 连接的方式进行设备配网。
cap 字段表示设备能力:
注意:预留未使用位必须按照 0 填充。
例:{“p”:”vHXEcqntLpkAlOsy”,“v”:”1.0.0”,”n”:0,”cap”:11}
MCU 返回例子信息:
55 AA 00 01 00 2D 7B 22 70 22 3A 22 66 66 78 70 67 6A 71 64 6E 71 61 6C 6D 6B 64 6B 22 2C 22 76 22 3A 22 31 2E 30 2E 30 22 2C 22 63 61 70 22 3A 31 31 7D 95
设备联网状态 | 描述 | 状态值 |
---|---|---|
状态 1 | smartconfig 配置状态 | 0x00 |
状态 2 | AP 配置状态 | 0x01 |
状态 3 | Wi-Fi 已配置但未连上路由器 | 0x02 |
状态 4 | Wi-Fi 已配置且连上路由器 | 0x03 |
状态 5 | 已连上路由器且连接到云端 | 0x04 |
状态 6 | Wi-Fi 设备处于低功耗模式 | 0x05 |
注意:MCU 在收到已连接路由器且连接到云端的状态之后,禁止立即给模组断电!需延时至少 3s 后断电,否则可能导致模组无法正常工作。
模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x02 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 指示 Wi-Fi 工作状态:0x00:状态 1 0x01:状态 2 0x02:状态 3 0x03:状态 4 0x04:状态 5 0x05:状态 6 … |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组发送:
55 aa 00 02 00 01 04 06
(已连上路由器且连接到云端)
MCU 返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x02 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 返回:
55 aa 00 02 00 00 01
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x03 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 发送:
55 aa 00 03 00 00 02
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x03 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组返回:
55 aa 00 03 00 00 02
使用场景:对于类似报警器要求实时推送的设备,我们就可以通过本条命令上报相关状态数据。
说明:当 MCU 需要上报实时状态的数据时,可通过该协议上报数据
状态数据会直接上报到云端,故设备联网状态必须为已连接到云端,否则数据上报失败。
该条指令为同步指令,MCU 数据上报后需等待模组返回上报结果,等待超时时间 5 秒。
需要等待模组发送连接上服务器的网络状态包,再发送需要发送的统计数据包,这里的数据上传没有储存功能,这强制等待 8s 还没收到连接上服务器的网络状态包,也强制给设备断电。
可以支持多个数据单元上报,和单个数据单元上报,用户根据自己的需要来选择发送组包的方式。具体数据包可以下面的例子。
大致操作的流程图:
MCU 发送 :
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x05 |
数据长度 | 2 | 取决于 状态数据单元 类型以及个数 |
数据 | N | 一个或多个 状态数据单元 组 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x05 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00 成功 0x01 失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
“单个状态数据单元”上报例子:
DP 109 bool 型变量,数值为 1
55 aa 00 05 00 05 6d 01 00 01 01 79
“多个状态数据单元”上报例子:
DP 109 bool 型变量,数值为 1
DP 102 string 型变量,“201804121507”(具体传输对应 ASCII 值)
55 aa 00 05 00 15 6d 01 00 01 01 66 03 00 0c 32 30 31 38 30 34 31 32 31 35 30 37 5d
使用场景:对于类似门锁等记录型的设备,包含多个 DP 点数据需要服务端作为整条记录处理,在短暂断网的情况下本条命令会保存下无法上报成功的数据,本条命令可以满足记录型设备的上报需求。这里的上报需要带上时间为本地时间。
说明:当 MC 需要记录型数据是由多个 DP 点组合的整条数据,需要整体上报,可通过该命令往 Wi-Fi 模组发送,并且当有数据上报时设备断网的情况下,该数据会储存在本地,下次连云成功后模组会将这条数据再次上传,并把之前储存的数据上报。
当有滞留记录每次上报成功一条,模组就会主动发送一条 09 命令字数据为 01 的回复包。MCU 可以根据这个回复做超时断电处理。
网络正常下模组上电后正常需要 4S 左右连接上服务器,每当有记录产生给设备上电后,可以等 Wi-Fi 模组发送协议文档中设备联网状态包所描述的的设备联网状态包,当强制等待 6S 以上还没收到模组连接上服务器的包,也将该条指令 MCU 数据上报后需等待模组返回上报结果。
单次记录上报的数据区域(多个状态数据单元)最大长度为 80,根据实际的 DP 点的数据最后组合实际储存的长度会有所变化,当没有网络的状态下,超过限制长度 Wi-Fi 模组会返回记录发送失败。
可以储存历史记录的条数最长限制到 20 条,当超过 20 条从最早储存的记录开始覆盖,如此循环覆盖。
当 Wi-Fi 模组接受到一条数据成功推送,或者当没有网络状态下,记录成功存储进 flash 中也会当做推送成功(00)。当有网络推送成功一条,还有滞留记录的话会返回 01 ,其他的情况均返回推送失败 02 。
时间数据的应用是为了保证记录数据在设备没有网络的情况下和实际发生的事件一致。如果以记录到达服务端的时间为准,当设备暂时处于没有网络的状态下产生的记录数据,当下次使用网络恢复正常时,这个时候上传的记录时间便和实际发生的事件不符合。所以当设备第一次和 Wi-Fi 模组配网的时候,网络环境可以保证的情况下,可以通过协议获取到想要的时间数据。每次上传记录的时候带上当前设备的时间数据,服务端的记录时间便会以设备给的时间为准。。
由于设备在全世界各地涉及到时区和夏令时等事件因素,记录的时间的处理也给与两个时间的协议区分。当设备没有显示屏的需求,设备通过协议获取格林时间在设备中运行,当有相关上报数据产生的时候便按照协议给与当前设备运行的格林时间的数据。有些设备,比如门锁需要显示当地的时间,门锁可以通过协议获取本地时间,这个时间模组有加上时区包括夏令时的因素,确保时间和当地的时间可以对上。当有相关上报数据产生的时候便按照协议给与当前设备运行的本地时间的数据。
上报大致操作流程如下图所示。
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x08 |
数据长度 | 2 | 取决于 状态数据单元 类型以及个数 |
数据 | 7 | (1) 数据长度为 7 字节: (2)Data[0] 为这条数据传输是否带本地时间标志位: 0 表示这条数据不带门锁给的时间,后面的时间数据,模组认为数据无效不处理 1 表示后面的时间数据有效,时间数据为设备所在的当地时间。 2 表示后面的时间数据有效,时间数据为格林时间。(3)Data[1] 为年份, 0x00 表示 2000 年。(4)Data[2] 为月份,从 1 开始到 12 结束。(5)Data[3] 为日期,从 1 开始到 31 结束。(6)Data[4] 为时钟,从 0 开始到 23 结束。(7)Data[5] 为分钟,从 0 开始到 59 结束。(8)Data[6] 为秒钟,从 0 开始到 59 结束 |
- | N | 一个或多个组合 参考本文 状态数据单元 组 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x08 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00 上报成功 0x01 当前记录上报成功,并且还有滞留记录需要上报 0x02 上报失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
具体上报数据包举例:
单个状态数据单元上报例子:
DP 109 bool 型变量,数值为 1
服务端当前时间为准:
55 aa 00 08 00 0c 00 12 04 13 0d 04 14 6d 01 00 01 01 d1
设备本地时间(2018/04/19/ 13 点 3 分 29 秒)为准
55 aa 00 08 00 0c 01 12 04 13 0d 03 1d 6d 01 00 01 01 da
设备当前格林时间(2018/04/19/ 5 点 3 分 29 秒)为准
55 aa 00 08 00 0c 02 12 04 13 05 03 1d 6d 01 00 01 01 d3
“多个状态数据单元”上报例子:
DP 109 bool 型变量,数值为 1
DP 102 string 型变量,“201804121507”(具体传输对应 ASCII 值)
服务端时间为准
55 aa 00 08 00 1c 00 12 04 13 0d 06 04 *6d 01 00 01 01* *66 03 00 0c 32 30 31 38 30 34 31 32 31 35 30 37* a7
设备本地时间(2018/04/19/ 13 点 3 分 29 秒)为准
55 aa 00 08 00 1c 01 12 04 13 0d 08 2e 6d 01 00 01 01 66 03 00 0c 32 30 31 38 30 34 31 32 31 35 30 37 d4
设备格林时间(2018/04/19/ 5 点 3 分 29 秒)为准
55 aa 00 08 00 1c 02 12 04 13 05 08 2e 6d 01 00 01 01 66 03 00 0c 32 30 31 38 30 34 31 32 31 35 30 37 cd
组合开门方式上报说明:
组合开门方式根据相关的开门方式的 DP,一个完整包上传相关组合 DP 的数据,完成组合开门方式的数据上报。
密码+指纹开锁数据上报:
55 aa 00 08 00 17 00 13 02 0D 06 33 03
(密码开锁)02 02 00 04 00 00 00 01
(指纹开锁)01 02 00 04 00 00 00 05 91
“命令下发”为异步处理协议,MCU 收到相关控制包,确认接收到回复下发包后,完成相关控制动作,MCU 状态反馈通过 MCU 的状态上报来实现。
模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x09 |
数据长度 | 2 | 取决于“命令数据单元”类型以及个数 |
数据 | N | 状态数据单元 组 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组下发控制命令:(系统开关对应 3 号 DP,使用 bool 型变量,开机数值为 1 )
55 aa 00 09 0005 *03 01 00* *01 01* 13
MCU 回复:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x09 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 确认回复:
55 aa 03 09 00 00 08
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x06 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 获取本地时间:
55 aa 00 06 00 00 05
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x06 |
数据长度 | 2 | 0x0008 |
数据 | Data | 数据长度为 8 字节:Data[0] 为是否获取时间成功标志,为 0 表示失败,为 1 表示成功Data[1] 为年份, 0x00 表示 2000 年Data[2] 为月份,从 1 开始到 12 结束Data[3] 为日期,从 1 开始到 31 结束Data[4] 为时钟,从 0 开始到 23 结束Data[5] 为分钟,从 0 开始到 59 结束Data[6] 为秒钟,从 0 开始到 59 结束Data[7] 为星期,从 1 开始到 7 结束,1 代表星期一 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组返回本地时间数据:
55 aa 00 06 00 08 01 12 09 11 10 09 05 01 59
本地时间:18 年 9 月 17 日 16 时 9 分 5 秒星期一
格林时间不带有时区和夏令时相关因素,如果设备具有动态密码功能(门锁等)但是不需要显示设备所在的当地时间,本地只需要实现格林时间,记录上传走带记录型上报的通道,上报的时间也需要是格林时间。
带动态密码功能的设备,并且门锁也要显示设备所在当地的当前时间,本地在跑跑格林时间的同时,需要在定时获取本地时间,本地储存格林时间和当地时间的时间差,每次显示本地时间的时候在格林时间的基础上加上时间差。记录上传走带记录型上报的通道给的时间也需要是格林时间。
模组每次上电在未为联网成功之前无法获取时间,待模组入网校时完成后,可随时获取时间。
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x10 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 获取格林时间:
55 aa 00 10 00 00 0F
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x10 |
数据长度 | 2 | 0x0008 |
数据 | 8 | 数据长度为 8 字节: Data[0] 为是否获取时间成功标志,为 0 表示失败,为 1 表示成功 Data[1] 为年份, 0x00 表示 2000 年 Data[2] 为月份,从 1 开始到 12 结束Data[3] 为日期,从 1 开始到 31 结束 Data[4] 为时钟,从 0 开始到 23 结束 Data[5] 为分钟,从 0 开始到 59 结束 Data[6] 为秒钟,从 0 开始到 59 结束 Data[7] 为星期,从 1 开始到 7 结束,1 代表星期一 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组返回设备格林时间:
55 aa 00 10 00 08 01 12 09 11 08 15 03 01 65
格林时间:2018 年 9 月 17 日 8 时 21 分 3 秒星期一
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0a |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 请求 Wi-Fi 固件升级:
55 aa 00 0a 00 00 09
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0a |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00 (开始检测固件更新)不可断电 0x01(已经是最新固件) 断电 0x02(正在更新固件)不可断电 0x03(固件更新成功)断电 0x04(固件更新失败)断电 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组升级状态返回:
55 aa 00 0a 00 01 00 0a
(收到升级请求包立马返回)
55 aa 00 0a 00 01 01 0b
(拉取服务端信息返回没有固件需要更新)
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0c |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 请求 MCU 固件升级
55 aa 00 0c 00 00 0b
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0c |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00 (开始检测固件更新)不可断电 0x01(已经是最新固件) 断电 0x02(正在更新固件)不可断电 0x03(固件更新成功)断电 0x04(固件更新失败)断电 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组升级状态返回:
55 aa 00 0c 00 01 00 0c
(收到升级请求包立马返回)
55 aa 00 0c 00 01 01 0d
(拉取服务端信息返回没有固件需要更新)
模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0d |
数据长度 | 2 | 0x0004 |
数据 | 4 | 固件包字节数,unsigned int,大端 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组发送文件包大小:
55 aa 00 0d 00 04 00 00 68 00 78
(固件包长度 26624,即 26KB )
MCU 返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0d |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 确认包回复:
55 aa 00 0d 00 01 00 0d(单包大小 256B )
升级包传输数据格式:包偏移(unsigned short) + 包数据
MCU 若收到该帧数据长度为 4 且包偏移 >= 固件大小,则包传输结束
模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0e |
数据长度 | 2 | 0x0004 + 数据包长度 |
数据 | N | 前四字节,固定为包偏移,后面为数据包内容 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组发送文件数据:
若要升级的文件大小 530Byte,(最后一包数据可不回复)
第一包数据,包偏移为 0x00000000,数据包长度为 256
55aa 00 0e 0104 00000000 xx…xx XX
第二包数据,包偏移为 0x00000100,数据包长度为 256
55aa 00 0e 0104 00000100 xx…xx XX
第三包数据,包偏移为 0x00000200,数据包长度为 18
55aa 00 0e 0016 00000200 xx…xx XX
最后一包,包偏移为 0x00000212,数据包长度为 0
55aa 00 0e 0004 00000212 xx...xx XX
MCU 返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0e |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 每包数据包确认:
55aa 00 0e 0000 0d
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0b |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 获取设备连接的路由器强度:
55 aa 00 0b 00 00 0a
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x0b |
数据长度 | 2 | 0x0002 |
数据 | 2 | 数据长度为 2 字节: Data[0]:0x00 失败, 0x01 成功。当 Data[0] 为 0x01,即成功时 Data[1] 表示信号强度 (0-100, 0 信号最差,100 信号最强)。当 Data[0]为 0x00,即失败时,Data[1] 为 0x00,表示设备未连接上路由 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组返回当前强度值(80):
55 aa 00 0b 00 02 01 50 5D
(暂时不支持)
。MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x12 |
数据长度 | 2 | 0x0006+0x08+0x01+N |
数据 | 6 | 数据长度为 6 字节: 设备当前格林时间:Data[0] 为年份, 0x00 表示 2000 年 Data[1] 为月份,从 1 开始到 12 结束。Data[2] 为日期,从 1 开始到 31 结束。Data[3] 为时钟,从 0 开始到 23 结束。Data[4] 为分钟,从 0 开始到 59 结束。Data[5] 为秒钟,从 0 开始到 59 结束 |
- | 8 | 用户输入的密码数据:Data[6]~Data[13] 数据内容范围为 ‘0’~’9’数据传输使用 ASCII 码 |
- | 1 | 管理员密码组数(0~10)有多少组管理员密码后面带上相应组数数据(暂时不支持)默认填 0 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 发送带两组长度为 6 的管理员密码的数据包:
55 aa 00 12 00 1C 12 09 11 06 22 29 31 35 39 35 30 31 35 38 02 06 *35 32 31 33 31 34* 35 32 31 33 31 33 b3
第一组密码数据:521314
第二组密码数据:521313
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x12 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 0x00 (密码核对通过) 0x01 (密码核对失败)//通信操作错误码 0x02 (设备未激活) 0x03 (数据长度错误) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组返回密码校验失败:
55 aa 00 12 00 01 01 13
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x11 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
门锁获取当前生效临时密码:
55 aa 00 11 00 00 10
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x11 |
数据长度 | 2 | 0x0007+N(临时密码) |
数据 | 7+N | 数据长度为 7+N 字节: Data[0] 为是否获取密码成功标志,为 0 表示失败,后面不会带上相关密码和有效时间数据,数据内容长度为 1,为 1 表示成功密码有效截至日期(格林时间)。Data[1] 为年份, 0x00 表示 2000 年。Data[2] 为月份,从 1 开始到 12 结束。Data[3] 为日期,从 1 开始到 31 结束。Data[4] 为时钟,从 0 开始到 23 结束。Data[5] 为分钟,从 0 开始到 59 结束 Data[6] 为秒钟,从 0 开始到 59 结束临时密码(N)密码数据传输字符的 ASCII 码 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组返回当前密码:
55 aa 00 11 00 0d 01 10 04 13 05 06 07 31 32 33 34 35 36 8c
格林时间 2016 年 4 月 19 日 5 时 6 分 7 秒
密码 “123456”,密码部分传输的字符是 ASCII 码。
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x13 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
门锁获取当前生效临时密码:
55 aa 00 13 00 00 12
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x13 |
数据长度 | 2 | 0x0001+N(临时密码) |
数据 | 1+N | 数据长度为 1+N 字节: Data[0] 为是否获取密码成功标志,为 0 表示失败,后面不会带上相关密码和有效时间数据,数据内容长度为 1,为 1 表示成功 Data[1] 密码组数(0 ~10)当密码组数为 0 的时候表示面板没有创建密码。串口传输不会带上相关密码和有效时间数据 Data[2] 密码长度(后面每组的密码长度保持一致) //第一组密码相关数据 Data[3] 密码编号 (实际编号需要在密码编号的数据上加 900)(1 ~ 50) Data[4] 密码有效次数 为 0:表示不限制次数密码-有效期内可以不限次数开门。为 1:表示一次性密码-有效期内只能开一次门 Data[5] 密码当前状态 0:表示密码有效 1:表示面板已经进行了删除操作此密码无效密码生效日期(格林时间) Data[6] 为年份, 0x00 表示 2000 年 Data[7] 为月份,从 1 开始到 12 结束 Data[8] 为日期,从 1 开始到 31 结束 Data[9] 为时钟,从 0 开始到 23 结束 Data[10] 为分钟,从 0 开始到 59 结束 Data[11] 为秒钟,从 0 开始到 59 结束密码截至日期(格林时间) Data[12] 为年份, 0x00 表示 2000 年 Data[13] 为月份,从 1 开始到 12 结束 Data[14] 为日期,从 1 开始到 31 结束 Data[15] 为时钟,从 0 开始到 23 结束 Data[16] 为分钟,从 0 开始到 59 结束。Data[17] 为秒钟,从 0 开始到 59 结束。临时密码(具体字节数 N=data[2])(密码数据传输字符的 ASCII 码) //第二组密码数据… |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
Wi-Fi 模组返回当前 10 组密码数据密码:
55 AA 00 13 00 DF 01 0A 07 0A 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 09 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 08 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 07 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 06 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 05 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 04 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 03 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 02 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 01 00 00 12 06 1C 08 15 07 14 05 16 13 01 07 31 32 33 34 35 36 37 C6
数据段 | 字节数 | 说明 | |
---|---|---|---|
dpid | 1 | datapoint 序号 | |
type | 1 | 对应开放平台上某 datapoint 具体的数据类型,通过如下“表示值”标识 | |
类型 | 表示值 | 长度(字节) | 说明 |
raw | 0x00 | N | 对应于 raw 型 datapoint(模组透传) |
bool | 0x01 | 1 | value 范围:0x00/0x01 |
value | 0x02 | 4 | 对应 int 类型,大端表示 |
string | 0x03 | N | 对应于具体字符串 |
enum | 0x04 | 1 | 枚举类型,范围 0-255 |
bitmap | 0x05 | 1/2/4 | 长度大于 1 字节时,大端表示 |
len | 2 | 长度对应 value 的字节数 | |
value | 1/2/4/N | hex 表示,大于 1 字节采用大端传输 |
datapoint 命令/状态数据单元除 ”raw” 类型外,其他类型均属于 “obj” 型 datapoint
“状态数据”可含多个 datapoint “命令数据单元”
注意:模组给门锁给的相关时间数据都是基于格林时间,请门锁本地通过获取格林时间的接口同步自己的时钟数据。
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x14 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
门锁获取当前生效临时密码:
55 aa 00 14 00 00 13
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x14 |
数据长度 | 2 | 0x0001+N(临时密码) |
数据 | 1+N | 数据长度为 1+N 字节: Data[0]为是否获取密码成功标志,为 0 表示失败,后面不会带上相关密码和有效时间数据,数据内容长度为 1,为 1 表示成功 Data[1] 密码组数(0 ~10)当密码组数为0的时候表示面板没有创建密码。串口传输不会带上相关密码和有效时间数据*.*此密码组数为本包数据含有的密码数据 Data[2] 密码长度(后面每组的密码长度保持一致) Data[3] bit7: 后续是否还有数据包。Bit6-bit0: 本包序号(从 0 开始) //第一组密码相关数据 Data[4]密码编号 (实际编号需要在密码编号的数据上加 900)(1 ~ 50) Data[5]密码有效次数 0:表示不限制次数密码-有效期内可以不限次数开门 1:表示一次性密码-有效期内只能开一次门 Data[6]密码当前状态 0:表示密码有效 1:表示面板已经进行了删除操作此密码无效密码生效日期(格林时间): Data[7]为年份, 0x00 表示 2000 年 Data[8]为月份,从 1 开始到 12 结束 Data[9]为日期,从 1 开始到 31 结束 Data[10]为时钟,从 0 开始到 23 结束 Data[11]为分钟,从 0 开始到 59 结束 Data[12]为秒钟,从 0 开始到 59 结束密码截至日期(格林时间): Data[13]为年份, 0x00 表示 2000 年 Data[14]为月份,从 1 开始到 12 结束 Data[15]为日期,从 1 开始到 31 结束 Data[16]为时钟,从 0 开始到 23 结束 Data[17]为分钟,从 0 开始到 59 结束 Data[18]为秒钟,从 0 开始到 59 结束临时密码(具体字节数 N=data[2])(密码数据传输字符的 ASCII 码) Data[19+N] 为 schedule 条数/第一条 schedule 数据 Data[20+N] 0:非全天有效,分时间段有效。1:全天有效。后面的起始时间和结束时间为无效数据。 Data[21+N] 开始时间(小时) Data[22+N] 开始时间(分钟) Data[23+N] 结束时间(小时) Data[24+N] 结束时间(分钟) Data[25+N] 周循环 Bit0:周日 Bit1:周一 Bit2:周二 Bit3:周三 Bit4:周四 Bit5:周五 Bit6:周六若此条 schedule 周日,周三循环,则为 0x09/第二条 schedule 数据/…//第二组密码数据… |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
对于某些带设置性或控制功能的传感器,需要新增 DP 下发功能。
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x15 |
数据长度 | 2 | N |
数据 | dp_num(1byte) +dp_1(byte)+…+dp_n(1byte) | 如果 dp_num 是 0,则认为查询所有的 dp |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
门锁获取 dp115, dp114, dp113 的缓存命令:
55 AA 00 15 00 04 03 73 72 71 71
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x15 |
数据长度 | 2 | 取决于“命令数据单元”类型以及个数 |
数据 | result(1byte)+dp_num(1byte) +dp_1(byte)+…+dp_n(1byte) | “命令数据单元”组, 返回有缓存命令的 dp 数据。 result 为获取指令成功标志: 为 0 表示失败,后面不会带上相关 dp 数据,数据内容长度为 1。 result 为 1 表示成功 dp_num:若 dp_num 为 0,则认为当前没有缓存命令。 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组返回 (dp115 自动关门(布尔型,代表是否要执行自动关门)+dp114 延时门锁选择(枚举型,立即锁门或继续计时)+dp113(数值型,单位 s),下列返回数据代表 延时 30s 关门)
55 AA 00 15 00 14 01 03 73 01 00 01 01 72 04 00 01 01 71 02 00 04 00 00 00 1E AF
设备长时间不联网也可使用的动态密码。
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x16 |
数据长度 | 2 | N |
数据 | Year(1)+mon(1)+day(1)+hour(1)+min(1)+sec(1)+code_len(1)+code(n) | 格林时间+密码长度+密码 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
例:离线密码:1849455172 格林时间:2021/01/11 08:18:42
55 AA 00 16 00 11 15 01 0B 08 12 2A 0A 01 08 04 09 04 05 05 01 07 02 C3
模组回复:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x16 |
数据长度 | 2 | N |
数据 | Result(1)+type(1)+decode_len(1)+decode(n) | Result: 0 正确 非 0 错误(无后续数据) Type: 0 限时开门密码 1 单次开门密码 2 清除密码 decode_len:解密后数据长度 decode:解密数据 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
通过这个接口可将 MCU 的 SN 号上报至平台。
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x17 |
数据长度 | 2 | N |
数据 | sn_len(1) + sn(n) | Sn 长度(长度不得超过 32byte)+SN |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组回复:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x17 |
数据长度 | 2 | 1 |
数据 | result | result: 0 上报成功 非 0 上报失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
设备重置状态 | 描述 | 状态值 |
---|---|---|
状态 1 | 模组本地重置 | 0x00 |
状态 2 | App 远程重置 | 0x01 |
状态 3 | App 恢复出厂重置 | 0x02 |
说明:重置状态的发送最多也会重发三次,重发间隔保持 1S。
模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x25 |
数据长度 | 2 | 0x0001 |
数据 | 1 | 重置状态: 0x00:模组本地重置 0x01:App 远程重置 0x02:App 恢复出厂重置 0x03:本地数据清除,但设备不离网 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 回复:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x25 |
数据长度 | 2 | 0 |
数据 | - | |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1C |
数据长度 | 2 | 0x0004 |
数据 | 4 | Data[0]指示设备工作状态: 0x00:在线 0x01:离线 0x02:休眠 Data[1]指示锂电池是否在充电: 0x01:未充电 0x02:正在充电 Data[2]指示锂电池电量状态: 0x00:正常 0x01:低电(停止拉流) 0x02:即将耗尽(切换干电池) Data[3]锂电池电量 : 0-100 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x1C |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
协议中的时间数据用于运算当前的动态密码。动态密码运算时间都为当前的格林时间,设备需要给模组格林时间数据。
App 端可以设置一个设备当前的是否要加入管理员密码用于参与动态密码的混算结果,设备每次再请求校验动态密码的时候,都需要给模组当前门锁所有的管理员密码。
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x12 |
数据长度 | 2 | 0x0006+0x01+N |
数据 | 6 | 设备当前格林时间: Data[0]为年份, 0x00 表示 2000 年 Data[1]为月份,从 1 开始到 12 结束 Data[2]为日期,从 1 开始到 31 结束 Data[3]为时钟,从 0 开始到 23 结束 Data[4]为分钟,从 0 开始到 59 结束 Data[5]为秒钟,从 0 开始到 59 结束 |
- | 1 | 密码长度 n |
- | N | 用户输入的密码数据: Data[7]~Data[7+n]:数据传输使用 ASCLL 码 |
- | 1 | 管理员密码组数(0~10)有多少组管理员密码后面带上相应组数数据 |
- | N | 第一组管理员密码包括长度(1 个字节)+密码(密码部分由数字组成)数据传输使用 ASCLL 码 |
- | N | 第二组管理员密码部分包括长度(1 个字节)+密码( 密码部分由数字组成)数据传输使用 ASCLL 码 |
- | … | … |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 发送 8 位动态密码带两组长度为 6 的管理员密码的数据包:
55 aa 00 12 00 1E 12 09 11 06 22 29 08 31 35 39 35 30 31 35 38 02 06 35 32 31 33 31 34 06 35 32 31 33 31 33 c3
动态密码为 10 位,15950158
第一组密码数据:521314
第二组密码数据:521313
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x12 |
数据长度 | 1 | 0x0001 |
数据 | 1 | 0x00 (密码核对通过) 0x01 (密码核对失败)//通信操作错误码 0x02 (设备未激活) 0x03 (数据长度错误) |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组返回密码校验失败:
55 aa 00 12 00 01 01 13
说明:
门锁主板当检测到用户使用的是多组临时密码才去调用此接口去云端拉取相关数据,更新本地的密码数据和状态,这样可以最大程度节约功耗。
注意:模组给门锁给的相关时间数据都是基于格林时间,请门锁本地通过获取格林时间的接口同步自己的时钟数据。
密码每次服务端都是全量下发,门锁需要每次根据服务端返回的所有密码和状态进行更新。
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x13 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
门锁获取当前生效临时密码:
55 aa 00 13 00 00 12
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x13 |
数据长度 | 2 | 0x0001+N(临时密码) |
数据 | 1+N | 数据长度为 1+N 字节: Data[0]为是否获取密码成功标志, 为 0 表示失败,后面不会带上相关密码和有效时间数据,数据内容长度为 1, 为 1 表示成功 Data[1] 密码组数(0~10)当密码组数为 0 的时候表示面板没有创建密码。串口传输不会带上相关密码和有效时间数据 //第一组密码相关数据 (长度+编号+有效次数+当前状态+生效日期+截至日期+密码内容) Data[2] 密码长度 Data[3]密码编号 (实际编号需要在密码编号的数据上加 900)(1~50) Data[4]密码有效次数 0:表示不限制次数密码-有效期内可以不限次数开门 1:表示一次性密码-有效期内只能开一次门 Data[5]密码当前状态 0:表示密码有效 1:表示面板已经进行了删除操作此密码无效 密码生效日期(格林时间): Data[6]为年份, 0x00 表示 2000 年 Data[7]为月份,从 1 开始到 12 结束 Data[8]为日期,从 1 开始到 31 结束 Data[9]为时钟,从 0 开始到 23 结束 Data[10]为分钟,从 0 开始到 59 结束 Data[11]为秒钟,从 0 开始到 59 结束 密码截至日期(格林时间): Data[12]为年份, 0x00 表示 2000 年 Data[13]为月份,从 1 开始到 12 结束 Data[14]为日期,从 1 开始到 31 结束 Data[15]为时钟,从 0 开始到 23 结束 Data[16]为分钟,从 0 开始到 59 结束 Data[17]为秒钟,从 0 开始到 59 结束 临时密码(具体字节数 N=data[2])(密码数据传输字符的 ASCII 码) //第二组密码数据 … |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
说明:
门锁主板当检测到用户使用的是多组临时密码才去调用此接口去云端拉取相关数据,更新本地的密码数据和状态,这样可以最大程度节约功耗。
注意:模组给门锁给的相关时间数据都是基于格林时间,请门锁本地通过获取格林时间的接口同步自己的时钟数据。
密码每次服务端都是全量下发,门锁需要每次根据服务端返回的所有密码和状态进行更新。
保留原生效周期设置,在生效周期基础上可以按照每周重复的方式添加密码生效的计划;最多可以添加 3 个 schedule
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x14 |
数据长度 | 2 | 0x0000 |
数据 | 0 | 无 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
门锁获取当前生效临时密码:
55 aa 00 14 00 00 13
模组返回:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x14 |
数据长度 | 2 | 0x0001+N(临时密码) |
数据 | 1+N | 数据长度为 1+N 字节: Data[0]为是否获取密码成功标志, 为 0 表示失败,后面不会带上相关密码和有效时间数据,数据内容长度为 1, 为 1 表示成功 Data[1] 密码组数(0~10)当密码组数为 0 的时候表示面板没有创建密码。串口传输不会带上相关密码和有效时间数据.此密码组数为本包数据含有的密码数据 Data[2] bit7: 后续是否还有数据包。Bit6-bit0: 本包序号(从 0 开始) //第一组密码相关数据(长度+编号+有效次数+当前状态+生效日期+截至日期+密码内容+schedule 条数+schedule 数据) Data[3] 密码长度 Data[4]密码编号 (实际编号需要在密码编号的数据上加 900)(1~50) Data[5]密码有效次数 0:表示不限制次数密码-有效期内可以不限次数开门 1:表示一次性密码-有效期内只能开一次门 Data[6]密码当前状态 0:表示密码有效 1:表示面板已经进行了删除操作此密码无效 密码生效日期(格林时间): Data[7]为年份, 0x00 表示 2000 年 Data[8]为月份,从 1 开始到 12 结束 Data[9]为日期,从 1 开始到 31 结束 Data[10]为时钟,从 0 开始到 23 结束 Data[11]为分钟,从 0 开始到 59 结束 Data[12]为秒钟,从 0 开始到 59 结束 密码截至日期(格林时间): Data[13]为年份, 0x00 表示 2000 年 Data[14]为月份,从 1 开始到 12 结束 Data[15]为日期,从 1 开始到 31 结束 Data[16]为时钟,从 0 开始到 23 结束 Data[17]为分钟,从 0 开始到 59 结束 Data[18]为秒钟,从 0 开始到 59 结束 临时密码(具体字节数 N=data[2]) (密码数据传输字符的 ASCII 码)Data[19+N] 为 schedule 条数 (第一条 schedule 数据) Data[20+N] 0:非全天有效,分时间段有效。 1:全天有效。后面的起始时间和结束时间为无效数据。 Data[21+N] 开始时间(小时) Data[22+N] 开始时间(分钟) Data[23+N] 结束时间(小时) Data[24+N] 结束时间(分钟) Data[25+N] 周循环 Bit0:周日 Bit1:周一 Bit2:周二 Bit3:周三 Bit4:周四 Bit5:周五 Bit6:周六若此条 schedule 周日,周三循环,则为 0x09 (第二条 schedule 数据) … //第二组密码数据 … |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
说明:当有事件触发时,通过此指令通知模块,有事件触发抓拍,模块收到此指令后开启抓拍相关功能。
MCU 发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x64 |
数据长度 | 2 | 0x01+0x05+0x07 |
数据 | 1 | 子命令默认:0x00 |
2 | 事件信息编码: 0x0000:防撬告警 0x0001:远程开门请求; 0x0002:指纹开门试错; 0x0003:密码开门试错; 0x0004:人脸开门试错; 0x0005:掌纹开门试错; 0x0006:指静脉开门试错; 0x0007:指纹开门; ………… |
|
1 | 抓拍类型: 0x00:不抓拍; 0x01:抓拍图片; 0x02:短视频; 0x03:门铃呼叫 |
|
1 | 门铃呼叫抓拍类型(抓拍类型为 0x03 时有效): 0x00(默认值):抓拍图片 0x01:短视频 |
|
1 | 预留 | |
7 | 数据长度为 7 字节: Data[0]为这条数据传输是否带本地时间标志位: 0 表示这条数据不带门锁给的时间后面的时间模组认为数据无效不处理;(默认需要时间) 1 表示后面的时间数据有效,时间数据为设备所在的当地时间。 2 表示后面的时间数据有效,时间数据为格林时间。 Data[1]为年份, 0x00 表示 2000 年 Data[2]为月份,从 1 开始到 12 结束 Data[3]为日期,从 1 开始到 31 结束 Data[4]为时钟,从 0 开始到 23 结束 Data[5]为分钟,从 0 开始到 59 结束 Data[6]为秒钟,从 0 开始到 59 结束 |
|
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
模组回复:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x64 |
数据长度 | 2 | 1 |
数据 | 1 | result: 0 信息接收成功 非 0 失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
示例:55 AA 00 64 00 01 00 64
说明:用来反馈触发抓拍或视频的相关结果。
当触发类型为图片时,通知结果为 0 代表图片上传成功;
mcu 上报事件记录的时候需要将模块返回的图片 ID 和时间一起上报。
模组发送:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x62 |
数据长度 | 2 | 9 |
数据 | 2 | 图片 ID 号:图片 ID 号作为一张图片数据的归属标识 |
- | 6 | 当前图片上传的时间: Data[1]为年份, 0x00 表示 2000 年 Data[2]为月份,从 1 开始到 12 结束 Data[3]为日期,从 1 开始到 31 结束 Data[4]为时钟,从 0 开始到 23 结束 Data[5]为分钟,从 0 开始到 59 结束 Data[6]为秒钟,从 0 开始到 59 结束 |
- | 1 | Result:失败时,时间数据无效 0 图片上传成功 1 网络断开无法上传成功; 2 图片太大超出 30k; 3 超时未收到 MCU 的图片信息; 4 其它原因失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
MCU 回复:
字段 | 字节数 | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x62 |
数据长度 | 2 | 1 |
数据 | 1 | result: 0 无后续图片上传 非 0 还有图片上传 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
事件状态 | 描述 | 状态值 |
---|---|---|
状态 1 | 防撬告警 | 0x0000 |
状态 2 | 远程开门请求 | 0x0001 |
状态 3 | 指纹开门试错 | 0x0002 |
状态 4 | 密码开门试错 | 0x0003 |
状态 5 | 卡片开门试错 | 0x0004 |
状态 6 | 人脸开门试错 | 0x0005 |
状态 7 | 掌纹开门试错 | 0x0006 |
状态 8 | 指静脉开门试错 | 0x0007 |
状态 9 | 指纹开门 | 0x0008 |
状态 10 | 密码开门 | 0x0009 |
状态 11 | 卡片开锁 | 0x000A |
状态 12 | 人脸开锁 | 0x000B |
状态 13 | 掌静脉开锁 | 0x000C |
状态 14 | 指静脉开锁 | 0x000D |
状态 15 | 临时密码解锁 | 0x000E |
状态 16 | 动态密码解锁 | 0x000F |
状态 17 | 远程解锁 | 0x0010 |
状态 18 | 离线密码解锁上报 | 0x0011 |
状态 19 | 门铃请求上报 | 0x0012 |
当前默认参数:
参数名称 | 描述 | 状态值 |
---|---|---|
时钟 | 时钟频率 | 6000000 |
时钟模式 | - | SPI_SCLK_Mode0 |
首字节电平 | - | SPI_TCTRL_FBS_MSB |
Cs | 片选信号 | 低电平 |
字节对齐 | - | 8 位 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈