当您无法访问官方GATT XML文件时,如何构建BLE应用程序?

问题描述

要构建BLE应用,您需要

  1. 服务UUID
  2. 服务的特征性UUID
  3. 特征的权限(读/写/通知...)
  4. 如果要发送任何数据,则需要知道值类型(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 githubthis github。但这不是官方的,有人抄袭并撤离了他们。

当您没有要查找的官方XML文件时,如何有效地对BLE应用程序进行编程?

解决方法

GATT Specification page中有一个GATT Specification Supplement文档,其中包含有关温度特性结构的信息:

enter image description here

Environmental Sensing Service文档还在GATT Specification page上详细说明了特征是否可以具有通知:

enter image description here

我还发现XML文档以一种更为紧凑的方式呈现了该信息,并且我已经购买了此信息,以引起Bluetooth SIG的注意,但是链接似乎没有固定。如果您可以锻炼URL,数据仍将保留在网站上。我不知道这些数据是否得到维护。

https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Services/org.bluetooth.service.environmental_sensing.xml

https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Characteristics/org.bluetooth.characteristic.temperature.xml

,

所有 GATT xml 规范都可以在这里找到: https://creativedata.stream/multi-threading-api-requests-in-python/

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...