繁体   English   中英

如何使用 Flutter [Flutter blue] 从蓝牙 LE 设备获取流式更新?

[英]How can you get streamed updates from a Blutooth LE device using Flutter [Flutter blue]?

我正在为定制的蓝牙硬件开发一个应用程序。 该设备的规范有许多可以通过特定蓝牙特性发送到设备的命令。

我们目前使用的是这个版本的Flutter 蓝色; flutter_blue:^0.7.2

到目前为止,我们已经让它发现了设备、连接并发现了正确的服务和特征。

我们还让它发送命令并接收预期的响应。

这可以通过像这样列出正确的图表来实现;

    await notify.setNotifyValue(true);
    notify.value.listen((event) {
        _handleEvent(event);
    });

然后像这样发送命令;

    await recv.write(command, withoutResponse: true);

(其中命令是表示有效负载字节的列表)。

问题出现在响应包含多个数据包的情况下。 在这种情况下,收到了初始数据包,但后续的预期数据包没有到达。

在 ios 上,它的工作稍好一些,因为初始数据包的大小是 Android 响应的 4 倍,并且包含预期数据,但如果数据太大,则不包括在内。

我试图修改 MTU,但这似乎对这个问题没有任何影响。

任何帮助都会非常受欢迎。

在这种情况下,问题完全与 MTU 设置有关。

我的印象是,如果您要求将其设置得太高,它会自动将 go 设置为可能的最高值。 但看起来情况并非如此。

如果您遇到类似问题,请尝试将 MTU 设置为 251

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM