问题描述
要构建BLE应用,您需要
- 服务UUID
- 服务的特征性UUID
- 特征的权限(读/写/通知...)
- 如果要发送任何数据,则需要知道值类型(uint8_t,uint16_t ...)
例如,如果它是环境感知服务,我可以从this PDF中读取this page,然后在Environmental Sensing
下找到GATT Service
,并且UUID是{{1} }。然后,我可以继续阅读相同的PDF,并在0x181A
下找到Temperature
(尽管由于某些原因它是文本中的T emperature
,并且Temperature
无法对其进行搜索) ,并且UUID为GATT Characteristic and Object Type
。
好的,到目前为止一切顺利。然后我撞墙了。
要通知的数据大小(例如uint16_t或其他什么)或允许的权限(例如读/写...)如何?经过数小时的搜索,我终于找到了this github和this github。但这不是官方的,有人抄袭并撤离了他们。
当您没有要查找的官方XML文件时,如何有效地对BLE应用程序进行编程?
解决方法
在GATT Specification page中有一个GATT Specification Supplement文档,其中包含有关温度特性结构的信息:
Environmental Sensing Service文档还在GATT Specification page上详细说明了特征是否可以具有通知:
我还发现XML文档以一种更为紧凑的方式呈现了该信息,并且我已经购买了此信息,以引起Bluetooth SIG的注意,但是链接似乎没有固定。如果您可以锻炼URL,数据仍将保留在网站上。我不知道这些数据是否得到维护。
,所有 GATT xml 规范都可以在这里找到: https://creativedata.stream/multi-threading-api-requests-in-python/