如何从BLE器件的Arraybuffer获取值读取特征值

时间:2017-02-15 09:50:13

标签: android ios angular ionic2

我已经阅读了IONIC 2的文件,这是https://ionicframework.com/docs/v2/native/ble/。从那里给出了arraybuffer到string的转换,这对我来说不起作用。如图像image

所示

如何从读取特性中获取此数据的固件版本作为IONIC 2的Arraybuffer转换代码,即:  function bytesToString(buffer) { return String.fromCharCode.apply(null, new Uint8Array(buffer)); } 不适合我。使用该代码我得到输出:îÍy}ùt。我是离子的新手。我首先有字节传输顺序最低有效八位字节(即小端)。请提供转换解决方案。谢谢。

2 个答案:

答案 0 :(得分:5)

我也在使用bytesToString并且在ascii中获得了值,之后我做了这个:

var convertData = bytesToString(result);
var hexResult = [];

for (var i=0; i < convertData.length; i++){
   var resultNumber = convertData.charCodeAt(i);   //Dec
   var resultString = ("00" + (+resultNumber).toString(16)).substr(-2); //String
   hexResult[i] = "0x" + resultString;
}

我想要十六进制,所以我做了toString(16)。你可以相应改变并玩弄它。

让我知道这是否有效!

答案 1 :(得分:0)

I was facing same problem, however the simple solution i found is let data=new Uint8Array(buffer) now in data you will get all values in array.