首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android“轮询”蓝牙vs低能耗

Android“轮询”蓝牙vs低能耗
EN

Stack Overflow用户
提问于 2014-08-14 17:17:57
回答 1查看 1.8K关注 0票数 1

我的客户正在使用蓝牙低能耗加密狗构建一个应用程序。此单元进行连续测量。它们最初与BLE一起使用是为了节能。由于此设备在记录数据时将一次运行约8小时,因此他们将需要它来运行完整的8小时。

他们想让我设置他们的android应用程序,让我在4个不同的频道上以高达250/秒的频率轮询设备。对我来说,这击败了低能量方面。我非常肯定,BLE的设计考虑到了通知,应该将数据发送到应用程序onChange,而不是应用程序以给定的频率向设备请求数据。

目前,我已经设置了设备通知的应用程序。这意味着GattServer正在发送数据,然后应用程序只接收数据更改的通知。这样做的问题是,传感器有2个通道,需要250/秒的数据量。即使没有变化。

服务器可能以该速率发送,也可能不以该速率发送。对于一个通道,我得到了大约25个读数,而对于另一个通道,我得到了大约每秒4个读数。由于这一切都是通过通知来设置的,只通知onChange,我怀疑这个应用程序正在做它所设计的事情。因此,由于没有足够的数据点,我们正在考虑将这两个通道切换为轮询。

这对你有意义吗?这不会破坏低能耗甚至整个低能耗芯片设计的设计吗?

EN

回答 1

Stack Overflow用户

发布于 2014-08-21 09:36:15

250/sec = 1 packet per 4ms

BLE的最小连接间隔是7.5ms。主机和从机之间的所有数据交换必须在连接间隔内完成。即使可以在单个连接间隔内来回发送多个数据包,我也不知道如何让Android将多个消息压缩到一个连接间隔中。这样,您就无法确保250个投票在时间上均匀分布。

我认为Android根本不会让你以这种频率发送消息。发送网络数据包通常是阻塞操作。因此,当tx繁忙时,您的应用程序将被操作系统阻止。最后,你可能得到的仅仅是每秒几十条消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25304441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档