Ionic BLE中央启动通知未启动自定义回调



我正在尝试构建一个电容器应用程序,它可以与Bluno Beetle BLE微控制器通信。我正在使用Ionic/Codova BLE Central插件。甲壳虫每秒都会写一条(不同的(信息,我可以通过";侦听通知";LightBlue应用程序(蓝牙测试应用程序(中。在我的应用程序中,我试图通过使用以下代码来复制这一点(在成功连接并能够读取数据之后(:

this.ble.startNotification(beetle, beetle_service_UUID, beetle_characteristics_UUID)
.subscribe(
data => console.log("on data"),
error => console.log("on error")
);

当我通过XCode运行iOS应用程序时;订阅";按钮我在控制台上收到通知说

2021-06-22 10:38:54.223765+0200应用程序[66723:4263573]didUpdateValueForCharacteristic

但是我自己的回调(console.log("on data"((没有显示。

据我所知,这表明接收通知是有效的,并引发了一个事件,但我的自定义回调在某种程度上被忽略了。有人看到这里犯的错误吗?或者知道它可能来自哪里?我开始有点绝望了,因为没有错误触发,也没有调试的可能性。

我也遇到了同样的问题,因为我找错了地方,所以花了很多时间才解决。对我来说,问题的来源是BLE服务器,而不是ionic应用程序(尽管我认为ionic/Angular/Cordova BLE缺少错误消息(。为了解决这个问题,我在我的ESP32服务器中为特性添加了一个2902描述符。这是对特征设置通知标志的补充:

#include <BLE2902.h>
pService->addCharacteristic(&statusCharacteristic);
BLE2902* p2902Descriptor = new BLE2902();
p2902Descriptor->setNotifications(true);
statusCharacteristic.addDescriptor(p2902Descriptor);

最新更新