Home Articles

通过BLE传输大数据块的最佳方法

Asked
Viewed 1954 times
0

我是BLE的新手,希望你能指出我正确的实施方法 .

我正在开发一种应用程序,其中外围设备(电池供电)设备连续聚合传感器读数 . 在移动端应用程序中将有一个“同步”按钮,按下按钮后,我想将外围设备中累积的所有传感器读数传输到移动应用程序 . 同步之间的最大持续时间可以是几天,因此,累积的数据可以达到20K字节的大小 .

现在,我想知道从外设到中央应用程序执行数据传输的最佳方法是什么 . 我考虑创建一系列特征,其中每个特征将包含固定数量的样本(例如代表1小时的读数) .

然后,在同步时,我会:

  • 读取特征计数(1小时单元数) .

  • 然后逐个读取特征(1小时单元格) .

但是,我不知道这是否是一种有效的方法?

  • 我不确定这是否是我能使用的最好的方式 .

  • 我不确定特征READ是否可行,或者我可能需要使用指示 .

这里的任何帮助将非常感谢:)

感谢Moti .

1 Answer

  • 3

    我只想使用通知 .

    使用您编写内容的一个特征来触发传输开始 .

    然后有另一个特性,你可以通过一次发送20个字节来简单地传输数据 . BLE片上系统的大多数SDK都有一些控制数据流的方法,因此您不会发送太快的数据 . 通常通过在准备好接收下一个通知时触发回调 .

    为了知道正在发送的数据的大小,您可以让第一个通知包含大小,其余的包含数据 .

    这是最节省时间和功效的方式,因为每个连接间隔可以发送许多通知,相比之下,如果您执行大量读取而通常需要每次往返两次 . 不要使用指示,因为它们每个指示基本上也需要两次往返 . 无论如何,它们也毫无用处 .

    通过交换更大的MTU(这会导致更低的L2CAP / ATT报头开销),您可以将速度提高几个百分点 .

Related