我正在实现一个BLE设备,该设备基于传感器数据存储一些日志数据,并实现一个iOS应用,该应用充当中央访问数据。
我知道如何读取GATT特征数据,但我想知道如何从设备中读取大量数据。 有标准化的方法可以做到这一点吗?
我的幼稚方法是:
要获取日志数据,我必须读取记录数(A),然后执行循环并向(B)写入索引并读取数据(C)。
这是要走的路还是有更好的方法?
我的日志数据记录将包含时间戳和带有传感器数据的8位值。
答案 0 :(得分:2)
这是一个很好的方法,它可以工作,但是如果您总是读取所有记录,那么从中央(循环)进行多次写入效率很低。取而代之的是,您可以只从中央执行一次写入操作,然后外围设备上的代码将进入循环并将所有数据发送到中央。在这种情况下,您的解决方案将在GATT服务器上具有以下内容:-
就是这样,这就是您所需要的。当您想读取日志数据时,可以使用以下顺序:-
最后,您可以将特征设置为可指示的而不是可通知的。唯一的区别是,在可指示时会收到确认,因此传输更加可靠。但是,由于额外的确认数据包,传输也将变慢。
我希望这会有所帮助。