蓝牙连接获取数据插件的使用心得

连接蓝牙获取数据,具体的使用场景是用该插件连接蓝牙秤,然后获取蓝牙秤上面的重量值,在使用该插件的过程中遇到问题以及解决方法总结如下:

1. 插件的标准使用方法参考这里
2. 我的逻辑过程:
3. 着重说明一下黑色字体部分

一开始不知道哪个方法可以正确的获取到数据,于是把看起来可以获取到数据的方法都放在程序里单独执行了一遍

  • readsubscribeRawData方法拿不到返回值
    -subscribe(".")可以拿到返回值,但是每次数值都是第一次的数值,并不会刷新变更,看方法的注释,说是从缓存里面读取的数据
  • 尝试在每次调用subscribe(".")方法之前调用clear方法清除缓存,非常棒,又啥也读不到了

最后查看资料,发现是在subscribeRawData方法中嵌套调用read方法,贴代码

this.bluetoothSerial.subscribeRawData().subscribe((res) => {
    this.bluetoothSerial.read().then((data) => {
        console.log("data:"+data);
       }
    });
});

缓存中收到数据时会执行subscribeRawData的回调方法(订阅的通知),然后调用read方法读取缓存中的值即可
我之前都是单独调用各个方法,而各个方法都是异步方法,所以不能在准确的时间点读取数据。

参考: (蓝牙串口)Bluetooth Serial
Ionic Bluetooth serial SubscribeRawData update UI

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容