Flutter 从 BLE 获取数据

Flutter acquire data from BLE

您好,我正在尝试从一个 ble decice 获取一些测量数据并将其显示在我的 flutter 应用程序中。我也在使用 flutter_reactive_ble

我有两个特点,一是阅读,一是写作。我为 readCharacteristic 订阅了一个事件侦听器,然后像下面这样写了一个请求

_ble!.writeCharacteristicWithoutResponse(characteristicWrite, value: [0x99, 0x00, 0x19]);

作为值参数,我发送了一个十六进制值列表。每个值都有它的作用,正如 ble 的手册定义如下:

我使用的是手册示例的十六进制值,设备向我发送了 10 个第一个测量值,这是正确的,因为每个请求响应最多有 10 个测量值。问题是,在有 20 个测量值的情况下,我无法获得最后 10 个。我尝试执行以下操作

await _ble!.writeCharacteristicWithoutResponse(characteristicWrite, value: [0x99, 0x00, 0x01, 0x99]);

我在值列表中添加了0x01,因为手册说

value 1: continue with next group

但是没有发送数据。

如何获得所有测量值,以及更多,例如获得最后的 5 个?有人可以帮助我或给我提示吗?谢谢你的时间

您发送的数据必须始终为 3 个字节长。即

[0x<header>, 0x<command>, 0x<checksum>]

在您的第二个示例中,您的字节数过多。看起来你有一个额外的命令。即

[0x<header>, 0x<command>, 0x<command>, 0x<checksum>]

第二次写入取出0x00并确保校验和正确。即:

[0x99, 0x01, 0x1A] 

您在收到前 10 次测量后发送第二次写入