蓝牙学习之通过OP CODE解析输入输出数据

cpp 复制代码
<0000>17:16:57:072 [INFO]:(cmd_name)cfg_cmd_sub_set
<0001>17:16:57:072 [INFO]:(common)VC send to gateway is: e8 ff 00 00 00 00 02 01 04 00 80 1d 04 00 00 10 
<0002>17:16:57:104 [INFO]:(GATEWAY) gateway mesh cmd sendback src:0001 dst:0004,opcode is 1d80: 04 00 00 10
<0003>17:16:57:169 [INFO]:(cmd_rsp)Status Rsp______________: 04 00 01 00 80 1f 00 04 00 00 00 00 10 

在telink的tool上操作cfg_cmd_sub_set后,开发板输出以上信息。下面介绍如何通过op code:1d80来查找标准的输入与输出。

1.在SDK的 app_mesh.h 文件中定义为:#define CFG_MODEL_SUB_DEL_ALL 0x1D80,在Mesh Profile v1.0.1.pdf 的 4.3.4 Messages summary 中 定义为Config Model Subscription Delete All 0x80 0x1D,两者符合。

2.定位文档

字段 大小(字节) 说明
ElementAddress 2 元素的单播地址(其他地址类型如组地址、虚拟地址不允许使用)
ModelIdentifier 2 或 4 模型标识符,分为两种: - 2字节:SIG Model ID(蓝牙技术联盟定义的标准模型) - 4字节:Vendor Model ID(厂商自定义模型)

对<0002>解析如下

字段 含义
src 0001 源地址:发送这条消息的节点地址是 0x0001(通常是网关或配网器)。
dst 0004 目的地址:接收这条消息的节点地址是 0x0004(目标设备)。
opcode 1d80 操作码:0x801D(注意:蓝牙Mesh通常使用小端序 Little Endian,日志显示 1d80 实际代表 Opcode 0x801D)。
payload 04 00 00 10 因为小端序,实际为 00 04 10 00,单播地址:0x0004,SIG Model ID:0x1000 在蓝牙Mesh协议中,SIG Model ID 为 1000(十六进制 0x1000 表示一个由蓝牙技术联盟(SIG)定义的标准模型。具体来说,0x1000 对应的是 Generic OnOff Server 模型。

总结:网关(0x0001)向目标设备(0x0004)发送了一条标准指令 ,目的是清空该设备上"Generic OnOff Server "模型的订阅列表,使其不再响应相关的组播或虚拟地址消息。

3.设备答复<0003>

SDK中的定义为:#define CFG_MODEL_SUB_STATUS 0x1F80,在蓝牙标准文档里:Config Model Subscription Status 0x80 0x1F,两者符合。

字段 (Field) 长度 数据值 (Hex) 解析说明
Status 1字节 00 成功 (Success) 表示刚才的配置操作(如添加或删除订阅)已在设备端成功执行。
ElementAddress 2字节 04 00 0x0004 (小端序) 这是目标设备的单播地址。表示该状态是针对地址为 0x0004 的设备的。
Address 2字节 00 00 0x0000 (小端序) 这是被操作的地址。值为 0x0000 通常出现在"删除所有"操作中,或者表示未分配地址。
ModelIdentifier 2字节 00 00 10 0x1000 (小端序) 这是模型 ID。对应 Generic OnOff Server 模型。
相关推荐
~黄夫人~14 小时前
Kubernetes 入门到实战:概念详解 + kubeadm 安装 + 节点克隆全流程
linux·运维·学习·k8s·集群
_李小白14 小时前
【android opencv学习笔记】Day 12: HSV 色彩空间
android·opencv·学习
南斯拉夫的铁托14 小时前
YOLO学习笔记
笔记·学习·yolo
Bechamz15 小时前
大数据开发学习Day27
java·大数据·学习
van久15 小时前
Day21 第三周总结 + 用户模块收官复盘(可直接当学习笔记)
学习
Slow菜鸟15 小时前
Docker 学习篇(五)| Docker 常用命令
学习·docker·容器
byte轻骑兵15 小时前
【HID】规范精讲[10]: 蓝牙HID设备的连接基石——GAP协议如何掌控发现、连接与安全
人工智能·人机交互·蓝牙·键盘·鼠标·hid
YJlio15 小时前
8.2Windows 11 如何用 Xbox Game Bar 实时监测电脑性能?CPU、内存、GPU、显存与 FPS 瓶颈判断教程
windows·笔记·学习·chatgpt·架构·电脑·xbox
say_fall15 小时前
装软件慢到崩溃?用户创建总出错?Linux 工具避坑指南
linux·运维·服务器·c++·学习
Komorebi_999915 小时前
大模型学习day6
学习·大模型