Javascript 将值转换为Int

Javascript 将值转换为Int,javascript,react-native,Javascript,React Native,我正在创建一个Android应用程序,它可以从可移动设备获取数据。 我只有一个问题,我的ble设备提供给我的数据如下: 加速计+陀螺仪:“zLAi/wD/SpwiAOv/VwBnAML/xQE=” 压力:“bgBvAHAAcQByAA=” 电池:“ChYKARoA” 虽然应该有数字,但如何转换这些值 例如,我有这个函数来管理特性 async setupNotifications(device) { for (const id in this.AccGyrMg) { cons

我正在创建一个Android应用程序,它可以从可移动设备获取数据。 我只有一个问题,我的ble设备提供给我的数据如下:

加速计+陀螺仪:“zLAi/wD/SpwiAOv/VwBnAML/xQE=”

压力:“bgBvAHAAcQByAA=”

电池:“ChYKARoA”

虽然应该有数字,但如何转换这些值

例如,我有这个函数来管理特性

async setupNotifications(device) {
    for (const id in this.AccGyrMg) {

      const service = this.serviceUUID(id)
      const characteristicAccGyrMg = this.notifyUUIDAccGyrMg(id)


      device.monitorCharacteristicForService(service, characteristicAccGyrMg, (error, characteristic) => {
        if (error) {
          this.error(error.message)
          return
        }
        this.updateValue(characteristic.uuid, characteristic.value)
      })
    }
这是updateValue:

updateValue(key, value) {
  //        const readebleData = base64.decode(value);
    this.setState({ values: { ...this.state.values, [key]: value } })
  }

我尝试使用base64.decode(value),但我收到的值不是number://

显然,这些值是十六进制编码到base64的。我找不到任何文档,但它基于此Github问题:

我曾经将base64转换为十六进制:

加速计+陀螺仪:“zLAi/wD/SpwiAOv/VwBnAML/xQE=”

cc b0 22 ff 00 ff 4a 9c 22 00 eb ff 57 00 67 00 c2 ff c5 01

压力:“bgbvahacqbyaa=”

6e 00 6f 00 70 00 71 00 72 00

电池:“ChYKARoA”

0a16 0a01 1a00

不幸的是,如果不知道该设备的规格,就不可能将这些十六进制值转换为数字。制造商可以从无数种方法中选择将数字映射为十六进制值。您必须找到协议文档或对其进行反向工程

以下是(搜索“通知组”)。您将看到以下部分:

通知由6个字节组成:

byte 0: 02
byte 1: 01
byte 2: XY (see below)
byte 3: valve open state in % (from 0x00 to 0x64)
byte 4: undefined (battery level?)
byte 5: (temperature * 2)

这看起来像是一种编码形式…@JackBashford你有什么建议吗?很难-这些值来自哪里?它也不是有效的Base64。@JackBashford这些数据来自一个可扩展的设备,我已经完成了扫描连接到设备和监控(使用我发布的功能)但我尝试将十六进制转换为十进制,例如电池值,当实际值为100@MrRobinson:这就是“无法将这些十六进制值转换为数字”的原因。有无数种方法可以将100%电池编码为十六进制。您假设它是一个简单的二进制到十进制的转换,但是还有很多其他的方法。例如:0xFF的分数(255);0x64(100)的分数,如示例中所示;ASCII字符“1”、“0”、“0”;等