我无法理解OSX如何格式化BLE广告数据包数据。在下面的屏幕截图中,locals窗口(左侧)中的kCBAdvDataServiceUUIDs具有某种我不理解的格式(例如,... 376A0)。在日志窗口(右侧)中,它们以可识别的格式打印(例如,180D)。翻译是如何完成的?
更重要的是,我不理解kCBAdvSDataServiceData格式< 3a636401 01>。我的外设中的服务数据长度为1个字节,服务长度为+ 2个字节,数据为5个字节。如何将服务数据转换为我理解的内容?在我的外设中,服务数据使用0x180D。
答案 0 :(得分:0)
广告数据是AD结构列表。
AD结构包含:
- length (1 byte) = total length of Type + Data
- AD Type (1 byte)
- AD Data (length-1 bytes)
连接AD结构以形成广告数据。 扫描响应数据也是如此。
AD类型由SIG定义,具有许多可能的值。据我所知,iOS / OSX只允许用户定义3种类型:本地名称,服务UUID列表,不知道第三种类型。但还有更多,请查看完整列表:https://www.bluetooth.org/en-us/specification/assigned-numbers/generic-access-profile
AD数据和长度特定于每种AD类型。