通过慢广告的连接响应非常慢

6个帖子/ 0新
最后一篇
MAX44
离线
最后一次露面:10个月1日前
加入:2016-02-08 15:58
通过慢广告的连接响应非常慢

DA14580
基本开发套件添加了模拟传感器和EEPROM
SDK 5.0.3.

你好,对话,

我正在继续基于BLE_APP_PERITIVELAL示例的应用程序工作。我一直在使用延长的睡眠模式,通过外部事件(即按钮按钮),事情已经运行良好。我想改变睡眠配置,以允许广告以慢速速度运行(1秒),广告间隔之间的延长睡眠没有唤醒按钮。初始设置要完成此操作似乎正在工作,但连接的时间非常慢...... 10,20,30秒或根本没有连接而没有重新扫描。我假设这是因为DA 14580正在睡眠并缺少来自我的Android平板电脑的连接请求。你知道是否有一些我可以在da14580方面做些什么来改善连接时间吗?我希望在1秒的广告间隔期间BLE无线电通电时,我会拿起连接请求,但显然在合理的时间内显然不会发生。

谢谢,最大

设备:
mt_dialog.
离线
最后一次露面:3个月1日前
职员
加入:2015-06-08 11:34
嗨max44,

嗨max44,

为了连接实际上,您需要两个广告evens,一个用于中央的广告活动,以便了解并报告某人在用户或设备开始连接过程和第二次广告时的广告对于外围设备,以查看中央的连接请求。因此,当您有大广告间隔时,您还将有缓慢的连接时间。

谢谢mt_dialog.

MAX44
离线
最后一次露面:10个月1日前
加入:2016-02-08 15:58
是的,但是你

是的,但是,你期望几秒钟连接超过10秒。我开始在Android方面寻找别的东西,发现那里有一些设置会有所帮助。对于任何感兴趣的其他人来说,简要说明。

Android Connectgatt方法:

BluetoothGatt Connectgatt(上下文上下文,
布尔自动连接,
BluetoothGattCallback回调)

默认为在我的应用程序中自动连接为true。从在线研究中,我读到自动连接参数调用后台进程,同时将此设置为false提供更快的直接连接。它使我的连接时间明显更快地使用假设置。通过在断开连接时重新启动广告,如果应用程序仍在运行,我也不希望自动连接重新启动连接。

问候,最大

mt_dialog.
离线
最后一次露面:3个月1日前
职员
加入:2015-06-08 11:34
嗨max44,

嗨max44,

既然你有1秒的间隔这意味着,在最坏的情况下,你将有2秒计算连接时间,假设你刚刚失去了当扫描第一发布时间间隔。获得额外时间的原因我认为是由于空中流量,我想外设不要从中央疫苗或中央的连接请求,或者中央没有从外围获得广告事件的顺序发送连接请求。

谢谢mt_dialog.

Joacimwe.
离线
最后一次露面:6个月前1年
格鲁鲁
加入:2014-01-14 06:45
当您设置自动连接到

将AutoConnect设置为True时,设备地址将放在控制器的白色列表上,并启动与非常低的职责的连接,如2-5%,这意味着它与它将捕获一个广告数据包的概率相同。常见值为30 ms扫描窗口,扫描间隔为1280 ms,用于连接尝试。因此,预期连接时间约为30秒的结果。

将AutoConnect设置为False时,它会暂时中止所有尚未建立的自动连接,并开始专门连接到此设备,该设备具有约50%的占空比,这应该意味着您的设备将平均连接两秒钟。此模式具有超时但为30秒。它不应重复使用更长的时间,不仅是因为它限制了手机上所有应用的待处理到1的待定数量,还因为它因无线电只能收听蓝牙或WiFi而降低了WiFi性能给定的时间时刻。

这两种模式都只需要一个广告数据包来连接,而不是两个,假设应用程序已经知道它想要连接到哪个设备。

MAX44
离线
最后一次露面:10个月1日前
加入:2016-02-08 15:58
Joacimwe,

Joacimwe,

谢谢(你的)信息。很有意思!并且比我在Android开发人员页面上看到的更有用细节。我所拥有的应用只是为了工程和发展,因此您上面提到的限制并不重要。

很高兴再次收到你的来信。正如您可能会记得的那样,您可以帮助我追溯到一些数据传输。我最近一直在查看将连接间隔切换到快速间隔,只需为数据传输,通常会使电池漏极减少速度速度速度。几年前,我看到你也在看这一点。你觉得这一切了吗?我在SDK中找到了以下例程,我尝试过,它似乎很好地(在UM-B-051中简要介绍)。如果你有任何其他指针,请告诉我。

/ **
****************************************************************************************
* @brief更新参数操作。
* @param [in] connection_idx连接的ID。
* @param [in]延迟在连接事件期间测量的从等待时间。
* @param [in] intv_min新的首选最小连接间隔在1.25 ms插槽中测量。
* @param [in] intv_max新的首选最大连接间隔在1.25毫秒插槽中测量。
* @param [in] connection_event_len_min新的首选最小连接事件长度
*在1.25毫秒的插槽中测量。
* @param [in] connection_event_len_max新的首选最大连接事件长度
*在1.25毫秒的插槽中测量。
* @return void.
****************************************************************************************
* /
__inline void app_param_update_op(uint8_t connection_idx,uint16_tintv_min,uint16_tintv_max,uint16_t延迟,\
UINT16_T SUPPITION_TIME_OUT,UINT16_T CONNECTION_EVENT_LEN_MIN,\
uint16_t connection_event_len_max)

谢谢,最大