我已经阅读了IONIC 2的文件,这是https://ionicframework.com/docs/v2/native/ble/。从那里给出了arraybuffer到string的转换,这对我来说不起作用。如图像
所示如何从读取特性中获取此数据的固件版本作为IONIC 2的Arraybuffer转换代码,即:
function bytesToString(buffer) {
return String.fromCharCode.apply(null, new Uint8Array(buffer));
}
不适合我。使用该代码我得到输出:îÍy}ùt
。我是离子的新手。我首先有字节传输顺序最低有效八位字节(即小端)。请提供转换解决方案。谢谢。
答案 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.