在运行时更改功能

由于可以通过升级提供程序上的固件来启用新功能(例如动态缓冲区大小调整),因此我们希望提供一种在运行时获取提供程序功能的方法。为避免重复查询功能,首先,提供程序应在连接时通过消息流将固件修订版本发送给 Seeker。因此,我们向现有消息组“设备信息”事件添加了新的消息代码。

消息群组名称 值
设备信息事件 0x03
消息代码名称 值
固件修订版 0x09

获取固件修订版代码后,Seeker 应将其与缓存的代码进行对比。如果固件修订版已更改,Seeker 将更新缓存的固件修订版,并通过消息流查询功能。

我们还允许提供方直接向 Seeker 推送功能,而无需先发出请求,因为我们认为,未来,更复杂的设备(可能是基于 Android 的设备)将根据同一固件修订版本的标志进行动态配置。

因此,我们在下方添加了新的消息组和消息代码。

消息群组名称 值
设备功能同步事件 0x06
消息代码名称 值
请求更新 capability(由 Seeker 发送) 0x01
FHN 跟踪 0x03

收到 0x0601 后,

  • 如果提供商已启用对 FHN 跟踪的支持,则应按如下方式响应:
八位字节 数据类型 说明 值
0 uint8 设备功能同步事件 0x06
1 uint8 FHN 跟踪 0x03
2 - 3 uint16 其他数据长度 0x0007
4 uint8 FHN 配置状态 如果未预配,则为 0x00;如果由任何账号预配,则为 0x01
5 - 10 uint8[] 设备的当前 BLE MAC 地址 不定