你好团队! !
关于DA14681的蓝牙4.2我有个疑问。
蓝牙4.2带宽测试:--------------------------------------------*我们正在通过ble向android手机发送更大的数据包(247字节每包)数据率。我们现在得到的是5.3KBytes/sec,请问DA14681支持的最大带宽是多少?我需要更多的输入来增加我的带宽。
嗨Dheeraj,
我们正在调查这个问题,没有估计Android手机,我可以提到我们取得了迄今为止的最大速度大约是80 kb / s但设备68 x开发工具包和不是一个电话,操作与MTU 247和数据长度延伸功能,连接间隔30毫秒,连接事件长度为3.75ms, 68x以96MHz为时钟。在android或iOS不同设备的情况下,预期的吞吐量预计会比这个低得多,因为在实现高吞吐量方面至关重要的参数是无法被连接的主服务器接受的,这一点仍在调查中。
关于在您的系统上提高吞吐量,您可以用PDU长度、MTU大小和当前连接使用的连接间隔(较小的连接肯定有助于数据吞吐量)进行试验的参数。
由于MT_dialog
嗨MT_dialog,
我们目前正在向Android手机发送音频流。UART设置为230kbps。(DA14681, CPU时钟到96MHz)。所以数据来自UART,然后通过BLE4.2转发到Android。
到目前为止,我们能达到的最佳性能是8K字节/秒,这对于我们的应用程序来说仍然很低。我们正在使用以下功能发送32KBytes的数据到android:Ble_error_t ble_gatts_send_event(uint16_t conn_idx, uint16_t handle, gatt_event_t type,Uint16_t length, const void *value);
当在循环中调用该函数时(一串247个字节),BLE在几次调用后断开连接。
1.这个功能是否适合发送32K字节的数据?2.这个函数是异步的吗?如果是,当它准备发送下一串数据时,SDK是否提供一个回调或一些事件来通知?
的问候!
嗨jairo.borba,
是的,为了通过通知或指示通过BLE发送数据,这是一个合适的函数,但在while循环中不断发送通知不是一个好主意。虽然我不确切地得到你的意思与异步,该功能将只是把通知在一个低层缓冲区,并发送的数据下一个连接事件。当通知已经进入事件缓冲区时,ble_gatts_send_event()返回一个事件,你应该在应用层得到一个BLE_EVT_GATTS_EVENT_SENT消息。所以你应该总是完成消息,然后把额外的数据缓冲区,如果不是设备将不进入缓冲区存储消息,最终,当你所分配的内存分配信息不符合你将耗尽堆和f / w将断言。
嗨Dheeraj,
我们正在调查这个问题,没有估计Android手机,我可以提到我们取得了迄今为止的最大速度大约是80 kb / s但设备68 x开发工具包和不是一个电话,操作与MTU 247和数据长度延伸功能,连接间隔30毫秒,连接事件长度为3.75ms, 68x以96MHz为时钟。在android或iOS不同设备的情况下,预期的吞吐量预计会比这个低得多,因为在实现高吞吐量方面至关重要的参数是无法被连接的主服务器接受的,这一点仍在调查中。
关于在您的系统上提高吞吐量,您可以用PDU长度、MTU大小和当前连接使用的连接间隔(较小的连接肯定有助于数据吞吐量)进行试验的参数。
由于MT_dialog
嗨MT_dialog,
我们目前正在向Android手机发送音频流。UART设置为230kbps。(DA14681, CPU时钟到96MHz)。
所以数据来自UART,然后通过BLE4.2转发到Android。
到目前为止,我们能达到的最佳性能是8K字节/秒,这对于我们的应用程序来说仍然很低。
我们正在使用以下功能发送32KBytes的数据到android:
Ble_error_t ble_gatts_send_event(uint16_t conn_idx, uint16_t handle, gatt_event_t type,
Uint16_t length, const void *value);
当在循环中调用该函数时(一串247个字节),BLE在几次调用后断开连接。
1.这个功能是否适合发送32K字节的数据?
2.这个函数是异步的吗?如果是,当它准备发送下一串数据时,SDK是否提供一个回调或一些事件来通知?
的问候!
嗨jairo.borba,
是的,为了通过通知或指示通过BLE发送数据,这是一个合适的函数,但在while循环中不断发送通知不是一个好主意。虽然我不确切地得到你的意思与异步,该功能将只是把通知在一个低层缓冲区,并发送的数据下一个连接事件。当通知已经进入事件缓冲区时,ble_gatts_send_event()返回一个事件,你应该在应用层得到一个BLE_EVT_GATTS_EVENT_SENT消息。所以你应该总是完成消息,然后把额外的数据缓冲区,如果不是设备将不进入缓冲区存储消息,最终,当你所分配的内存分配信息不符合你将耗尽堆和f / w将断言。
由于MT_dialog