我正在开发一个蓝牙低能量应用程序来连接一个设备,该设备将以通知模式以每隔6毫秒或更长的时间发送20字节长的传输。
到目前为止,应用程序运行良好。它可以扫描、发现并订阅特征以接收数据通知。问题是,在前2-4秒内,数据将按顺序很好地读取,但在此之后,通知数据开始以突发形式或以块数据的形式出现,但在每一次传输之间的间隔并不一致。
当我用德州仪器BLE评估工具包检查数据传输时,这不会发生,在那里,我的读者展示了一个完美的传输,没有突然出现。只有在android上,它才会变得可见。这是否是一个可以配置为在android端修复的问题呢?这会是高传输速率(~毫秒间隔)的问题吗?
谢谢。。
因此,通过对连接连接参数的适当配置,可以得到最优的吞吐量。这通常是在外围设备端完成的,对于连接到的平台(例如,Android可能有不同的连接要求),可能需要不同的连接。
P.S.:由于我正在看安卓,我在这里发现了这个方法,这里记录了https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html#requestConnectionPriority(int),它调用连接优先级( CONNECTION_PRIORITY_BALANCED、CONNECTION_PRIORITY_HIGH或),但我没有测试它。
发布于 2015-06-10 11:03:22
您可以尝试启用蓝牙选项,然后在WireShark中查看日志文件。查找连接更新命令,这些命令可以由通信双方发出。此命令更改传输设置并减慢传输速度。还可以在您的TI BLE应用程序中查找GAPROLE_PARAM_UPDATE_ENABLE。
发布于 2015-06-24 05:02:54
是的,Michael,我们使用CC2650,对于我们的需求,BLE是足够的,但是我不确定它是否真的支持蓝牙经典(http://www.ti.com/product/CC2650/description)。
您可以尝试使用BLE连接参数来优化设置,这是我们所做的,而不是试图构建这个应用程序,让BLE operations.Take获得更多有关连接参数的信息。https://devzone.nordicsemi.com/question/60/what-is-connection-parameters/
您不能在电话上配置连接参数,但是外围设备(即SensorTag)即使这样也不能保证给定的参数实际上将被中央设备接受,以防中心设备接受一组参数。(Android和IOS在这方面有不同的政策。)
在我们的例子中,我们的传输间隔为15毫秒,并且看起来相当稳定。但是,所有这些高频率的传输都是以BLE的低功耗能力为代价的,而这正是它的初衷。我们甚至可以达到接近7.5ms的水平,这是Android支持的最小连接间隔。我们最初的测试是稳定的,但是这种低延迟的可靠性是值得怀疑的。
https://stackoverflow.com/questions/30748030
复制相似问题