在运行时更改功能
由于可以通过升级提供程序上的固件来启用新功能(例如动态缓冲区大小调整),因此我们希望提供一种在运行时获取提供程序功能的方法。为避免重复查询功能,首先,提供程序应在连接时通过消息流将固件修订版本发送给 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 地址 | 不定 |