微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Flutter Blue 从 Gatt 服务器接收指示

如何解决使用 Flutter Blue 从 Gatt 服务器接收指示

我目前正在使用 Flutter Blue 进行一个项目,但在接收指示时遇到了一些问题。

设置如下:

  1. 手机写入特征
  2. 物联网设备接收写入,处理它并使用相同的特性进行指示
  3. 手机接收指示并显示接收到的数据

现在进入一些代码

我正在做的是以下内容

services.forEach((BluetoothService service) {
  service.characteristics.forEach((BluetoothCharacteristic characteristic) {
    if (characteristic.uuid == configurationGuid) {
      _listenOnCharacteristic(characteristic);
    } else if (characteristic.uuid == liveDataGuid) {
      _listenOnCharacteristic(characteristic);
    } else if (characteristic.uuid == firmwareUpdateGuid) {
      configurationCharacteristic = characteristic;
      _writeCharacteristic = characteristic;
      _listenOnCharacteristic(characteristic);
    } else if (characteristic.uuid == dataOutputGuid) {
      _listenOnCharacteristic(characteristic);
    }
  });
});

因此,我为 Peripheral Gatt Server 用于输出其数据的每个特征设置了一个侦听器

监听器是通过characteristic.value.listen()函数创建的,监听器也是延迟设置的,避免I/O繁忙的问题

设置监听器后,我再次延迟以确保监听器已正确启动,然后我只是写入特性并等待响应。

但是,现在问题来了:

无法从 IoT 设备获取数据后,我尝试在第二部手机上设置 GATT 服务器,我将数据发送到该服务器以等待响应,但侦听器未获得任何指示数据

>

但是,他们能够获得通知数据,这很奇怪,因为根据库的文档,两者的处理应该相同。

所以我希望这里有人对我的问题有一些意见。

提前致谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。