【问题标题】:Incomplete responses being received from BLE device flutter从 BLE 设备抖动接收到的不完整响应
【发布时间】:2021-04-02 19:20:21
【问题描述】:

我无法从我的 BLE 设备收到完整的响应,我应该收到使用 flutter_blue 写入特性的命令的完整响应。我收到的响应是我发送写的命令本身。收到的响应正在正确解码。

我正在尝试编写的命令是 OBDII 协议,它们是

AT Z
AT H0
AT H0
AT L0
AT S0
01 0C

令人惊讶的是,命令“AT Z”给出了正确的响应“ELM 327v1.5”。这是我收到正确响应的唯一命令。所有其他命令都返回了部分正确的命令本身,因为大多数时候实际响应与命令名称一起收到。

响应读取和解码的实现方式如下

await read_CX.setNotifyValue(true);

read_CX.value.listen((response) {
  print(utf8.decode(response));
}

有没有人遇到过接收不完整数据的类似问题?谁能帮帮我?

谢谢!!

【问题讨论】:

  • 是的。使用它时,它具有相同的响应。
  • 您可以尝试使用 nRF Connect 应用程序并手动执行请求吗?然后你可以在协议层面首先查看数据是否正确。
  • 在发送“AT Z”后,我将收到命令作为响应。我已经尝试过使用多个设备,但响应是相同的。我用过 nRF Connect 应用和 BLE 实验室应用。反应是一样的。通过 iOS 本机代码(即 Swift)发送命令时,我得到了所需的响应。

标签: flutter dart bluetooth-lowenergy flutter-dependencies obd-ii


【解决方案1】:

首先,将ATE0\r 添加到您的初始化序列中,这将阻止适配器回显您发送的内容。

然后,熟悉 ELM327 提供的 AT 命令,例如通过阅读https://www.elmelectronics.com/wp-content/uploads/2016/07/ELM327DS.pdf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 2021-04-09
    • 2018-12-03
    • 2021-05-25
    • 2022-01-25
    相关资源
    最近更新 更多