使用Javascript

时间:2016-01-10 19:09:30

标签: javascript bluetooth-lowenergy

我似乎无法理解BLE设备电池服务的结果。我正在使用:https://github.com/don/cordova-plugin-ble-central

如果我将响应字符串化,我会得到以下内容:

( “0”: “57”)

使用的代码:

function readBttnBattery() {
    var devid = localStorage.getItem('vBttn');
    ble.read(devid, '180f',
             '2a19', 
             function(t) {
        var data = new Uint8Array(t)
        console.log('button Battery:');
        console.log(' BatLev: ' + JSON.stringify(new Uint8Array(t)));
    }, function(f) {
        console.log(f);
    });
}

但是当我使用另一个应用程序并连接到设备时,它给我一个电池级别的图形相似性,并且它在高90度。所以,当我的应用程序给我57时,我有点困惑。

我没有正确阅读'57'。如果我通过将data放在此处来解码它:

function bytesToString(buffer) {
return String.fromCharCode.apply(null, new Uint8Array(buffer));
}

如果给我数字'9'。这应该代表90%??

我对此感到困惑,所以任何帮助都会受到大力赞赏。

更新

看起来有点乱,再读一遍:

http://www.javascripture.com/Uint8Array

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array

根据我在此处的理解,来自我的应用程序57的数字似乎是正确的:https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicsHome.aspx?_ga=1.1402161.140200314.1452253448

因此,我们不得不假设,其中一个应用程序的数量不正确。我会找到另一个应用程序,看看我是否可以获得第三个视图。

但我会假设57 = 57%,除非有其他人有想法:)

谢谢

阿迪

1 个答案:

答案 0 :(得分:0)

不需要假设

bluetooth battery level characteristic 是0到100之间的8位无符号整数,给出电池电量百分比。 1到255之间的值是"保留" - 与未使用的一样。