我目前正在评估Maxm集成版AA>。作为我论文的一部分,我想研究一下是否有可能将BLE用于数据流。
MAXREFDES100#功能齐全,可以传输数据。当然,只有较小的数据包在较长的时间内,如温度或预先计算的心率值我知道BLE是不合适的,并且没有被设计成连续传输数据尽管如此,我还是想尝试通过BLE接口传输ECG原始数据为了检查我的数据是否及时、完整、正确地到达(ECG数据的先决条件),我开发了以下测试设置:
目前,我将正弦波数据存储到一个大的FIFO中,并将20字节的正弦波数据包传输到一个特征。到目前为止一切都很好使用Android设备和BLE嗅探器,我捕获数据包并检查sine是否有任何中断。下图来自一个较长的测量:(我已经测试了FIFO,正弦数据完整无误):这是我的Android和BLE嗅探器的捕获:数据包丢失。
正弦程序图像
supplied software
进一步的测量表明,误差不是按顺序发生的,它们总是在不同的时间出现。(Fifo的实现必须正确)
正弦程序图像2
因为我的手机和我的Adafruit-BLE嗅探器在同一个地方有相同的错误,所以板端的数据包一定是损坏的。我怀疑它们在某种程度上丢失了(可能是GAP?)。有趣的是,错误至少影响200个后续字节(256个字节的数据是一个完整的正弦)。这意味着,为了得到这样一个图形,每20字节至少需要10个数据包。
通过BLE接口连续发送数据有哪些选项?
在没有GATT/ATT的情况下,是否可以通过L2CAP直接发送数据?
还有更多的无线低功耗协议允许数据流吗?(因此,对于完整性和时间顺序的正确性,需要像TCP这样的确认)
谨致问候,艾敏
最佳答案
通过BLE接口连续发送数据有哪些选项?
在没有GATT/ATT的情况下,是否可以通过L2CAP直接发送数据?
BLE v4.1引入了LE Connection-Oriented Channels这是一种不用GATT/ATT(考虑网络套接字)直接通过L2CAP发送数据的方法。另请参见蓝牙核心规范第3卷A部分第3.4节。
您使用的主板有一个EM9301 BLE芯片,似乎支持BLEV4.1。但是,您正在使用的mbed库不允许您使用它们。参见here,您有一个用于连接/断开连接回调和GATT特征读/写/通知的接口。没有关于面向连接的通道。
关于c - 如何通过BLE传输数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47272109/