[英]Issue writing value to BLE peripheral with Ionic Native BLE
我目前正在用Ionic編寫一個小型應用程序,用我的應用程序控制FLUX藍牙燈泡。 我正在使用離子本機/ ble,到目前為止,除了編寫值之外,其他所有方法都有效。
掃描和連接都可以正常工作。 但是,當嘗試寫入燈泡的off值時,沒有任何反應。
我在android上使用了snoop功能,發現值CC2433可以關閉燈泡,我也使用nRF Connect應用程序對此進行了測試,當將該值寫入燈泡時,燈會關閉。 請在下面找到代碼,讓我知道我是否在做一些愚蠢的事情。 謝謝 !
this.ble.writeWithoutResponse(
"3C:A3:08:A8:1E:C3",
"ffe5",
"ffe9",
this.off())
.then(result => {
console.log(result);
}).catch(error => {
alert(JSON.stringify(error));
});
off() {
let string = "CC2433";
let array = new Uint8Array(string.length);
for (let i = 0, l = string.length; i < l; i ++) {
array[i] = string.charCodeAt(i);
}
console.log(array.buffer);
return array.buffer;
}
如您所見,我正在調用ble插件write而沒有響應,這是因為不需要響應(我也嘗試僅使用write函數)。 我傳遞了所有正確的設備ID,服務和特性,然后傳遞了off函數返回的數組緩沖區。 在控制台內部沒有寫入錯誤,並給我一個OK(200)的結果。 盡管該命令不執行任何操作,但是即使就像我說的那樣,如果我為相同的服務和特性將相同的值傳遞給nRF Connect寫命令,它也可以正常工作。
任何想法將不勝感激! 謝謝!
我希望您不會出錯,因為數據已正確寫入,但是燈泡不知道如何解釋該命令。 CC2433看起來像十六進制而不是字符串。 嘗試這個:
let array = new Uint8Array([0xCC, 0x24, 0x33]);
this.ble.writeWithoutResponse(
"3C:A3:08:A8:1E:C3",
"ffe5",
"ffe9",
array.buffer)
.then(result => {
console.log(result);
}).catch(error => {
alert(JSON.stringify(error));
});
特征ffe9的屬性將確定您使用ble.write還是ble.writeWithoutResponse。 當您連接到外圍設備時返回的JSON具有這些詳細信息。 nRF Connect應用程序還將顯示特征屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.