2017-02-15 93 views
1

我已經通過了IONIC 2的doc,它是https://ionicframework.com/docs/v2/native/ble/。從那裏轉換的數組緩衝區字符串給出了這不適合我。 function bytesToString(buffer) { return String.fromCharCode.apply(null, new Uint8Array(buffer)); } 是不是爲我工作:如圖片image如何從BLE設備的Arraybuffer中獲取值讀取特徵值

顯示如何從讀特性離子2 Arraybuffer轉換代碼是這樣的數據獲取固件版本。使用該代碼我得到輸出:îÍy}ùt。我是新來的離子。我有字節傳輸順序最不重要的八位字節(即,小端)。請爲我提供轉換解決方案。謝謝。

回答

4

我使用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)。你可以相應地改變,並玩弄這個。

讓我知道這是否行得通!

+0

感謝它很好用...! –

+0

沒問題!樂於幫助 – Huiting

0

我面臨同樣的問題,但我發現的簡單解決方案是let data=new Uint8Array(buffer) 現在在data您將獲得數組中的所有值。