我已经通过web-Bluetooth API连接到该设备。现在我向设备发送了一个十六进制字符串:01113704B00000313233343132160506155001DB。此十六进制字符串无法正确发送到设备。如何将此十六进制发送到设备?
我尝试使用十六进制到数组的缓冲区(NPM插件),并自己编写了该方法。它们不起作用。
下面是我的代码:
import React from 'react';
import './App.css';
const hexToArrayBuffer = require('hex-to-array-buffer')
function App() {
const openBLE = () => {
navigator.bluetooth.requestDevice({
filters: [{
services: ['6e400001-b5a3-f393-e0a9-e50e24dcca9e']
}]
})
.then(device => {
console.log('Begin to connect')
return device.gatt.connect()
})
.then(server => {
// Getting Battery Service...
console.log('Connect to GATT server')
return server.getPrimaryService('6e400001-b5a3-f393-e0a9-e50e24dcca9e');
})
.then(service => {
console.log('Get characteristic')
return service.getCharacteristic('6e400003-b5a3-f393-e0a9-e50e24dcca9e');
})
.then(characteristic => {
console.log('Write characteristic')
const buffer = hexToArrayBuffer('01113704B00000313233343132160506155001DB')
return characteristic.writeValue(buffer);
})
.catch(error => { console.log(error); });
}
return (
<div className="App">
<button onClick={ openBLE } >hello</button>
</div>
);
}
export default App;发布于 2019-10-05 04:47:51
我也遇到了这个问题。但是我在你的代码片段中注意到,你正在尝试写入TX特征,你是否应该尝试写入RX特征呢?6e400002-b5a3-f393-e0a9-e50e24dcca9e
https://stackoverflow.com/questions/57519933
复制相似问题