Files
Wx_BLWConfigTools_V02_Prod/Document/W13无卡取电设备 - 蓝牙通讯协议.md
2026-01-13 15:37:51 +08:00

7.8 KiB
Raw Blame History

W13无卡取电设备 - 蓝牙通讯协议

版本同步记录:

  • 同步来源Document/W13无卡取电设备 - 蓝牙通讯协议(1).pdf
  • 同步日期2026-01-12
  • 说明依据PDF抽取与差异比对更新命令与参数细节使Markdown与PDF一致。

1. 通讯方式

使用蓝牙BLE通讯

2. 帧结构定义

2.1 帧字段说明

字节范围 功能 长度Bytes 取值范围(&H 备注
B0~B1 Head 2 0xCC 0xC0 固定包头
B2~B3 Len 2 00~548 数据的总长度包括包头和CRC校验低地址在前
B4~B5 CRC 2 00~FF 整包CRC16校验
B6~B7 Frame 2 00~FF 帧号
B8~B9 FramNum 2 00~FF 帧总数
B10 Frame_Type 1 00~FF 帧类型,命令字
B11~B1023 PARA_0~1012 Max 1013 00~FF 参数,不同类型有不同的参数字(不定长)

2.2 帧结构示意图

sequenceDiagram
    participant PC as 上位机
    participant Device as 无卡取电设备
    
    PC->>Device: 发送命令帧
    Note over PC,Device: 帧结构Head + Len + CRC + Frame + FramNum + Frame_Type + Parameters
    Device->>PC: 返回响应帧
    Note over Device,PC: 帧结构Head + Len + CRC + Frame + FramNum + Frame_Type + Response

3. 详细命令列表

命令总览表(快速索引):

序号 功能 方向 命令字 备注
1 读版本号 PC→MCU / MCU→PC 0x01 P0=0x00请求返回软件/硬件版本
2 设置无卡取电条件信息 PC→MCU / MCU→PC 0x08 条件参数设置返回P0=0x01/0x02
3 设置无卡取电端口信息 PC→MCU / MCU→PC 0x09 端口配置返回P0=0x01/0x02
4 OTA升级开始 PC→MCU 0x0B P0=0x01进入bootloader等待OTA
5 开启蓝牙打印 PC→MCU / MCU→PC 0x0C 打印开关bit0..bit4返回P0=0x01/0x02
6 雷达状态获得 PC→MCU / MCU→PC 0x11 开/关读取;返回端口状态位与有人/无人
7 测试按键功能 PC→MCU / MCU→PC 0x13 点按控制与状态返回
8 事件设置(门磁/卫浴灯) PC→MCU / MCU→PC 0x16 控制位bit0/bit1事件时序参数与单位

3.1 读版本号

方向 命令字 参数 备注
PC→MCU 0x01 P0: 0x00 读取版本号命令
MCU→PC 0x01 P0: 软件版本号
P1: 硬件版本号
返回版本信息

3.2 设置无卡取电条件信息命令1

方向 命令字 参数 备注
PC→MCU 0x08 P0: 有无逻辑标记
P1: 条件组
P2: 条件序号
P3P4: 条件判定时间
P5: 条件判定时间单位
P6
P9: 端口110状态
P10: 触发阈值
P11
P12: 条件超时时间
P13: 条件超时时间单位
设置无卡取电条件
MCU→PC 0x08 P0: 0x01(参数正确) / 0x02(参数错误) 返回设置结果

3.3 设置无卡取电条件信息命令2

方向 命令字 参数 备注
PC→MCU 0x09 P0: 端口设备类型
P1: 端口设备地址
P2P3: 端口设备回路
P4: 有人->无人阈值
P5: 虚拟端口号
P6: 回路是否启用检测统计
P7
P8: 回路检测统计时间
P9: 回路检测统计时间单位
P10: 无人->有人阈值
设置无卡取电条件
MCU→PC 0x09 P0: 0x01(参数正确) / 0x02(参数错误) 返回设置结果

3.4 OTA升级开始

方向 命令字 参数 备注
PC→MCU 0x0B P0: 0x01(开始升级) 启动OTA升级设备进入 bootloader等待 OTA 升级 APP 连接

3.5 开启蓝牙打印

方向 命令字 参数 备注
PC→MCU 0x0C P0: bit0(系统调试信息打印开关)
bit1(设备驱动层打印调试信息打印开关)
bit2(蓝牙信息打印开关)
bit3(PC通讯打印开关)
bit4(临时调试信息打印开关)
设置打印开关
MCU→PC 0x0C P0: 0x01(参数正确) / 0x02(参数错误) 返回设置结果

3.6 雷达状态获得

方向 命令字 参数 备注
PC→MCU 0x11 P0: 0x01(开启读取端口状态) / 0x02(关闭读取) 请求雷达状态端口状态值0=释放1=触发
MCU→PC 0x11 P0: 有效端口数量
P1: 有无人状态0x01=有人0x02=无人)
P2: bit0(端口1状态), bit1(端口2状态), bit2(端口3状态), bit3(端口4状态)...0=释放1=触发)
返回雷达状态

补充说明:

  • 端口状态值0=释放1=触发。
  • 典型端口位含义bit0=端口1门磁bit1=端口2洗手间bit2=端口3卧室bit3=端口4门口后续端口依次类推。

3.7 测试按键功能

方向 命令字 参数 备注
PC→MCU 0x13 P0: 0x01(按键点按控制)
P1: bit0(按键1触发), bit1(按键2触发), bit2(按键3触发), bit3(按键4触发), bit4(按键5触发), bit5(按键6触发)
测试按键功能(对应按键仅支持点按,不具备开关状态)
MCU→PC 0x13 P0: 0x01(参数正确) / 0x02(参数错误) 返回设置结果

3.8 设置门磁开关走廊灯、卫浴雷达开关卫浴灯事件

方向 命令字 参数 备注
PC→MCU 0x16 P0: 控制位bit0=门磁开关走廊灯事件bit1=卫浴灯开关事件)
门磁开关走廊灯事件:
P1: 事件触发延迟时间数值
P2: 时间单位1=秒2=分3=时)
P3: 事件持续时间数值
P4: 时间单位1=秒2=分3=时)
P5: 事件释放延迟时间数值
P6: 时间单位1=秒2=分3=时)
卫浴灯开关事件:
P7: 事件触发延迟时间数值
P8: 时间单位1=秒2=分3=时)
P9: 事件持续时间数值
P10: 时间单位1=秒2=分3=时)
P11: 事件释放延迟时间数值
P12: 时间单位1=秒2=分3=时)
设置事件参数(用于控制门磁亮走廊灯、卫浴雷达亮卫浴灯等)
MCU→PC 0x16 P0: 0x01(参数正确) / 0x02(参数错误) 返回设置结果

4. 命令交互流程图

4.1 读版本号流程

flowchart TD
    A[上位机发送读版本号命令<br>Frame_Type=0x01, P0=0x00] --> B[设备接收命令]
    B --> C{命令解析正确?}
    C -->|是| D[设备准备版本信息]
    C -->|否| E[设备返回错误响应]
    D --> F[设备发送响应帧<br>Frame_Type=0x01, 包含软硬件版本号]
    E --> G[设备发送错误响应帧<br>Frame_Type=0x01, P0=0x02]
    F --> H[上位机接收版本信息]
    G --> I[上位机处理错误]

4.2 设置无卡取电条件流程

flowchart TD
    A[上位机发送设置条件命令<br>Frame_Type=0x08/0x09] --> B[设备接收命令]
    B --> C{参数验证通过?}
    C -->|是| D[设备保存条件设置]
    C -->|否| E[设备标记参数错误]
    D --> F[设备发送成功响应<br>P0=0x01]
    E --> G[设备发送失败响应<br>P0=0x02]
    F --> H[上位机确认设置成功]
    G --> I[上位机重新发送或处理错误]

5. 数据传输流程

sequenceDiagram
    participant PC as 上位机
    participant BLE as 蓝牙模块
    participant Device as 设备主控
    
    PC->>BLE: 发送BLE数据
    BLE->>Device: 转发数据帧
    Device->>BLE: 处理并返回响应
    BLE->>PC: 转发响应帧

6. 异常处理

错误类型 错误码 处理方式
参数错误 0x02 重新发送正确参数
命令不支持 - 检查命令字是否正确
通讯超时 - 重新发送命令