首页 > 解决方案 > ReactNative:解码从 BLE 接收到的特征值不起作用

问题描述

我正在构建一个 ReactNative 应用程序,它将通过 BLE 从另一台机器/设备接收数据。我正在使用这个包https://www.npmjs.com/package/react-native-ble-plx来实现 BLE 逻辑。现在,我在解码从监视器功能收到的特征值时遇到问题。

这是我的代码

char.monitor((err, cha) => {
            if (err) {
                console.log("Monitoring error");
                console.log(err);
                return
            }

            console.log("char data received")
            console.log(base64.decode(cha.value))
            console.log(cha.value)
        })

收到数据后,如您所见,我正在对其进行 base64 解码以获取其原始值。但似乎数据未解码为正确的格式。

例如,

这是原始值

/hkABQAAMgAA//9kIwAAAACqAAEAAAAAigMAAA==

但它被解码为以下值。

 þ↓♣2ÿÿd#ª☺Š♥

如您所见,它根本不可读。解码后的值甚至包含奇怪的字符。我正在使用这个 ReactNative base64 包,https: //www.npmjs.com/package/react-native-base64 。我的代码中缺少什么以及如何修复它?

这是服务 UUID,00001826-0000-1000-8000-00805F9B34FB,这是特征 UUID,00002AD1-0000-1000-8000-00805F9B34FB。

此外,此文档可能很有用,因为我正在尝试从 WaterRower 机器接收数据,https://github.com/WaterRower-UK/WaterRowerData-iOS/blob/master/Sources/WaterRowerData-BLE/FTMS_v1.0.pdf

标签: react-nativebluetooth-lowenergyreact-native-ble-plx

解决方案


推荐阅读