首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BLE芯片正在计算时,Android蓝牙低能耗连接超时

BLE芯片正在计算时,Android蓝牙低能耗连接超时
EN

Stack Overflow用户
提问于 2014-05-20 15:49:34
回答 2查看 5.9K关注 0票数 1

我的BLE应用程序需要在服务器端(BLE芯片)进行计算,这需要时间和断开连接的结果。

流程是这样的:

1- Android手机将特征值写入BLE芯片。2-芯片评估该值并开始计算。3-计算开始后不久连接就会丢失。

我可以应用什么解决方案来防止断开连接?我的脑海中有两个解决方案:

1-更改连接间隔:目前Android的连接间隔为7.5毫秒。由于在BLE芯片上的计算很耗时,因此在计算过程中不会发送或接收数据包。增加连接间隔将减少丢失的数据包数量。然而,不能保证Android手机会接受新的连接参数。

2-在单独的线程中运行计算:我不认为BLE芯片的SDK支持多线程,这样当计算过程正在进行时,它将继续接收和发送数据包,并防止断开连接。我使用CSR芯片,我认为它不支持。

如果我说错了,请纠正我。

你有什么其他的建议来解决这个问题吗?

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-05-30 03:04:40

谢谢你的回答。我花了几个小时才发现问题出在哪里。

首先,当Android给出错误133或129时,很可能是因为远程设备。

一开始,我认为问题是由于监督超时而发生的。然后我重新配置了CSR芯片的连接参数,但没有帮助。

在使用xIDE开发企业社会责任应用程序时有一个问题。当由于索引超调或访问一些无效指针而出现运行时错误时,您不会在xIDE中收到任何错误。我终于找到了数组问题并解决了它。现在,它完美地工作了。

非常感谢!

票数 1
EN

Stack Overflow用户

发布于 2014-05-29 02:20:00

我不知道我要解释的东西在安卓系统下是否可行,因为我只在低级应用程序中使用了BLE,无论如何,如果你的问题是连接参数,你可以尝试更改Slave_Latency.

它应该很有用因为使用此参数,您可以更改连接间隔的数量,在此期间中央设备可以等待,直到它认为连接丢失。

下面的方程式可用于导出连接参数:Effective_Connection_Interval = (Connection_Interval)*(1+(Slave_Latency))

请记住,can存在某种可能与您的Effective_Connection_Interval发生冲突的Supervision_Timeout

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

https://stackoverflow.com/questions/23753898

复制
相关文章

相似问题

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