我似乎无法理解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%,除非有其他人有想法:)
谢谢
阿迪
答案 0 :(得分:0)
不需要假设
bluetooth battery level characteristic 是0到100之间的8位无符号整数,给出电池电量百分比。 1到255之间的值是"保留" - 与未使用的一样。