我正在尝试通过网络蓝牙将示例十六进制字符串发送到 BLE 设备。
此字符串在 OSX 上发送得非常好,但是当我尝试在 Windows 上发送它时,我收到以下错误:
Uncaught (in promise) DOMException: GATT operation failed for unknown reason.
这是我用来发送字符串并进行转换的代码:
event.target.writeValue(str2ab(":100000000C9434000C943E000C943E000C943E0082*"));
这是我的 str2ab 函数:
function str2ab(str) {
var buf = new ArrayBuffer(str.length*2); // 2 bytes for each char
var bufView = new Uint16Array(buf);
for (var i=0, strLen=str.length; i<strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return buf;
}