自定义 GATT 服务中可变数量的特征

Varibale Number Of Characteristics in Custom GATT Service

我正在定义一个自定义的 GATT 配置文件并且有一些问题我无法在蓝牙规范中找到明确的答案。

  1. 是否可以在单个服务中定义多个相同类型(UUID)的特征?

  2. 服务中是否可以有不同数量的相同类型 (UUID) 的特征? 例如,根据系统操作,外设可以累积可变数量的某些数据副本。 这些副本是否可以在要求时作为特征发送给中央?

  3. 假设我们有一个 table 数据,我们想以两种形式提供对它的访问——按行和按列。 这样的需求可以用特性来处理吗? 我想像如果您请求使用 UUID A 读取特征,它将按行读取,而 UUID B 将按列读取;这样做是否可行且正确?

我刚刚发现了这个悬而未决的问题。不确定是否仍然需要,但这是我的答案:

  1. 是的。 Core_v4.2.pdf 的第 2224 页(第 3 卷,G 部分:通用属性配置文件:3.3.1.Characteristic 声明)说:"A service may have multiple characteristic definitions with the same Characteristic UUID".

  2. 是的,这是可能的。但在这种情况下,您必须实施 ServiceChanged 特性。请参见第 3 卷,G 部分:通用属性配置文件:2.5.2.Attribute 缓存和 7.1.Service 已更改。

  3. 是的。由您的实施来定义隐藏在自定义特征后面的数据。