DSD Ext 附件通信协议规范 v1

适用固件起始版本:v2.0.1(version_code 201)


1. 概述

DSD 瞄具通过 Wireless → Ext 菜单管理外接蓝牙附件。附件包括火控(CDU)、测距(RDR)、扩展按钮(ETD)三类,每类最多绑定 1 台,合计最多 3 台。

Ext 子系统与现有 组队 BLE(Host/Slave)互斥:启用 Ext 时关闭组队 BLE,反之亦然。


2. 设备命名与发现

2.1 广播设备名(Local Name)

类型前缀格式示例
火控cducdu-xxxxcdu-a1b2
测距rdrrdr-xxxxrdr-c3d4
扩展按钮etdetd-xxxxetd-9f0e
  • xxxx = 附件 BLE MAC 地址 后 4 位十六进制,小写
  • 正则:^(cdu|rdr|etd)-[0-9a-f]{4}$

2.2 辅助过滤(防误识别)

  1. 广播携带 16-bit Service UUID 0xD5E0
  2. Manufacturer Data 魔数 0xD5E1(与组队 BLE 魔数 0xD5 区分),载荷含:

    • [0] 魔数 0xD5E1
    • [1] 类型:0x01=CDU,0x02=RDR,0x03=ETD
    • `[2..3] MAC 后 4 位(ASCII 或原始 nibble,实现时二选一并在附件模板中固定)
  3. 扫描列表 不显示 DSD- 开头设备(组队瞄具)

3. 连接模型

角色设备
Central(主机)DSD 瞄具
Peripheral(从机)CDU / RDR / ETD 附件
  • 发现:扫描过滤设备名前缀
  • 绑定:用户在列表 点选即绑定,无密码、无二次确认
  • 配对:BLE Just Works(无 PIN)
  • 数据:绑定后建立 GATT 连接,通过 Notify 接收遥测

3.1 GATT 服务(128-bit UUID 草案)

对象UUID
Ext 主服务D5E00001-0000-1000-8000-00805F9B34FB
遥测 Notify(附件→瞄具)D5E00002-0000-1000-8000-00805F9B34FB
控制 Write(瞄具→附件,可选)D5E00003-0000-1000-8000-00805F9B34FB
身份 Read(类型+MAC 校验)D5E00004-0000-1000-8000-00805F9B34FB

连接成功后读取 Identity 特征,与扫描名二次校验。


4. 数据格式(ASCII 键值)

每条 Notify 为一行文本,键值以 - 分隔;多字段可用 ; 合并:

vot-3.70;tri-128;fps-650
sdr-125.5
up-1
down-0

4.1 字段定义

类型含义格式
CDUvot电池电压伏特,1 位小数,如 vot-3.7
CDUtri击发累计计数整数,每次击发 +1
CDUfps射速发/分,整数
RDRsdr距离米,1 位小数
ETDup / down / left / right / sel按键状态1=按下,0=松开

4.2 上报频率

类型字段策略
CDUvot仅变化上报,阈值 ≥ 0.1 V
CDUtri事件驱动,每次击发立即推送
CDUfps最近 10 发平均,以 1 Hz 周期推送当前平均值
RDRsdr2 Hz 固定周期
ETD五键边沿事件:按下 x-1,松开 x-0

fps 计算说明:附件或瞄具侧维护击发时间戳环形缓冲(容量 10),每次新击发更新缓冲,每秒推送 sum/count 换算为发/分。


5. 绑定

键名类型说明
extEnabledboolExt 总开关
extCduMac6 bytesCDU MAC,全 0 = 未绑定
extRdrMac6 bytesRDR MAC
extEtdMac6 bytesETD MAC
extRdrSourceuint80=内置 / 1=RDR / 2=自动
extTriAmmoSyncbooltri 增量是否联动减少弹药

绑定规则:每类型槽位 1 台;绑定新设备时 替换 同类型旧绑定。