假设我们有一个BLE GATT服务器,可以触发它执行搜索。搜索会产生一个列表(例如设备名称)。该列表可以(大于)512个字节,因此结果无法存储在
单一特征。
通过GATT公开此类清单的预期方法是什么?我找不到与此相关的文档。 BLE规范或相关讨论文档中是否有任何文档被我忽略了?
我找不到的(标准)示例或规范(例如,在https://www.bluetooth.com/specifications/gatt/上)都没有列表。
我可以考虑以下策略:
- 公开一个服务,其中包含具有n个特征的结果(动态,每个列表项一个)。搜索操作将动态创建并公开服务。客户端后该服务将被删除
确认正在读取数据或在一定时间后。
- 静态地公开一个服务,该服务包含具有n个特征的结果(静态,例如100)。该服务还包含一个特征,其中包含列表条目的数量。
- 静态地公开包含“值”特征的服务,该特征提供列表的 current 值。该服务还包含一个“下一个”特征,该特征将在写入时使用下一个值更新“值”特征。
- 静态地公开包含“值”特征的服务。客户必须订阅此特征以获取通知/指示。将一个列表值写入另一个特性。客户必须合并通知
到列表。
一种或多种策略是预期的发展方式吗?还是应该采用其他策略?