开发规范
1.基础说明
蓝牙通讯报文包含常规报文和特殊报文两部分:
常规报文:与Modbus RTU报文格式完全相同,基于设备的寄存器进行常规读写操作;
特殊报文:部分功能的读写不方便设计寄存器,按照固定格式设计特殊报文进行读写,例如:Wi-Fi模块的SSID、密码等设置功能。
UUID
UUID统一以FFF0开头,否则不会连接。
特征值
读特征值以FFF1开头,通信属性为Notify。
写特征值以FFF2开头,通信属性为Write。
2.广播包
蓝牙广播包 0x09 名称为 Acr + 设备序列号 ,用来区分是我司设备。例如: Acr25101301540002。
3.特殊报文
报文格式如下:
表地址 | 功能码 | 子功能码 | 数据长度 | 操作码 | 数据域 | CRC校验码 |
|---|
说明:
含义 | 示例 | 长度 | 说明 |
|---|---|---|---|
表地址 | 0xff | 1 | 地址0x00是广播地址,0xff是万能地址,广播地址不回复; |
功能码 | 0x55 | 1 | 表示功能分类 |
子功能码 | 0x01 | 1 | 功能分类下的具体功能 |
数据域长度 | 0x0100 | 2 | “操作码+数据“的长度,低位在前 |
操作码 | 0x03 | 1 | 命令报文:0x03-读取,0x10-写入 |
数据 | 0xXXX | n | 命令内容,长度不固定 |
校验码 | 0x0825 | 2 | CRC16校验从表地址开始计算,到前一个字节结束 |
4.特殊报文功能码
模块说明 | 功能码 | 功能说明 | 子功能码 | 子功能说明 | 操作码 |
|---|---|---|---|---|---|
通用模块 | 0x55 | 通用功能 | 0x01 | 读取设备基本信息&出厂配置信息 | 0x03 |
0xF0 | 重启设备 | 0x01 | |||
OTA升级 | 0x02 | 向设备发送固件升级请求 | 0x10 | ||
0xAA | 写入升级固件数据 | 0x10 | |||
0x03 | 向设备发送模块升级请求 | 0x10 | |||
0xAB | 写入模块升级包数据 | 0x10 | |||
0xFF | 查看升级是否成功 | 0x01 | |||
通讯模块设置 | 0x60 | 4G模块 | 0x01 | 读取联网状态信息 | 0x03 |
0x02 | 读取APN信息 | 0x03 | |||
0x03 | 写入APN信息 | 0x10 | |||
0x04 | 读取sim卡信息 | 0x03 | |||
0x61 | WiFi模块 | 0x01 | 读取联网状态信息 | 0x03 | |
0x02 | 读取WiFi参数 | 0x03 | |||
0x03 | 写入WiFi参数 | 0x10 | |||
0x04 | 读取DHCP参数 | 0x03 | |||
0x05 | 写入DHCP参数 | 0x10 | |||
0x62 | 蓝牙模块 | 预留 | |||
0x63 | LoRaWAN模块 | 0x01 | 读取联网状态信息 | 0x03 | |
0x02 | 读取LoRaWAN参数 | 0x03 | |||
0x03 | 写入LoRaWAN参数 | 0x10 | |||
协议设置 | 0x70 | 通用功能 | 0x01 | 读取当前通讯协议 | 0x03 |
0x02 | 设置当前通讯协议 | 0x10 | |||
0x03 | 请求写入TLS证书 | 0x10 | |||
0x04 | 传输TLS证书内容 | 0x10 | |||
0x05 | TLS证书写入是否成功 | 0x10 | |||
0x71 | 中台协议 | 0x01 | 读取平台IP端口 | 0x03 | |
0x02 | 设置平台IP端口 | 0x10 | |||
0x72 | 运维协议 | 0x01 | 读取平台IP端口 | 0x03 | |
0x02 | 设置平台IP端口 | 0x10 | |||
0x73 | 安全用电协议 | 0x01 | 读取平台IP端口 | 0x03 | |
0x02 | 设置平台IP端口 | 0x10 | |||
设备功能 | 0x80 | 仪表设置 | 0x01 | 相序校正方案-读 | 0x03 |
0x02 | 相序校正方案-写 | 0x10 | |||
0x03 | 相序自查方案-读基本信息 | 0x03 | |||
0x04 | 相序自查方案-读方案 | 0x03 |