Sor*_*ren 5 performance ios bluetooth-lowenergy
我想更深入地了解BLE和GATT.我感兴趣的是您在GATT配置文件中每秒可以达到的最大可读数量.
我之前知道有关此主题的一些帖子,例如: 蓝牙低功耗 - 反复更新特征值
但是,我试图解释这些结果,看看BLE规范.
连接事件和GATT之间有什么关系?每个ATT读/写是否需要新的连接事件?如果没有,是否可以说出每个连接事件可以进行多少次ATT读/写操作?
假设我想轮询BLE连接的光传感器以获得单字节值,那么我能达到的最大赫兹值是多少?是否最好将最小连接间隔设置为尽可能低?
我是否能够使用"GATT服务器通知获得更好的结果?在BLE规范(Core_v4.0)中它说"主服务器启动每个连接事件的开始".那么如何实现GATT服务器通知?我会认为将要求服务器启动连接事件.
最后,如果有人知道任何特定iOS对吞吐量的限制,我将能够在密集轮询传感器时实现,我很乐意听到它.
我可以回答其中一部分问题......
它们是协议的不同级别.您可以通过HCI处理连接和连接事件.GATT是您连接后使用的东西.
不可以.连接后,您可以执行多个读/写或其他GATT命令.
我认为最好的方法是自己对速度进行基准测试.然而,BLE的重点是以牺牲速度为代价来降低功耗.如果你担心速度,你可能不应该用BLE做这件事.通知/指示的整个要点是,您不必轮询属性,只会在发生特定事件时收到消息.
见上面的2个答案.
一旦实现了GATT连接,主设备和从设备之间就会进行双向通信.任何一个设备都可以向另一个发送事件.为了使用通知,您可以在特定属性上设置一个位,以表示您希望对该信息进行通知.然后,根据通知的工作方式,只要有报告内容,您就会将事件发回给您.我觉得除非BLE连接上有灯泡,否则灯泡不会有任何通知.我的典型应用就像一个温度计,它会在每次温度变化1度时发出通知.
如果您正在轮询属性,那么您做错了.但是,您可能必须做错,因为设备没有以您需要的方式正确实现通知,您无法修改设备.但是,轮询会显着提高电池使用量,并且您将失去使用BLE的好处.
| 归档时间: |
|
| 查看次数: |
1689 次 |
| 最近记录: |