javascript - 如何通过 web-bluetooth API 向设备发送 hex?
问题描述
我已经通过 web-Bluetooth API 连接到设备。现在我有一个十六进制字符串发送到设备:01113704B00000313233343132160506155001DB
. 此十六进制字符串无法正确发送到设备。如何将此十六进制发送到设备?
我尝试使用 hex-to-array-buffer(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;
解决方案
我也遇到了这个问题。但是我确实在您的代码段中注意到您正在尝试写入 TX 特征,您是否应该尝试写入 RX 特征?
6e400002-b5a3-f393-e0a9-e50e24dcca9e
推荐阅读
- php - 无法在 WordPress 编辑器中保存已编辑的主题 PHP 页面(管理面板)
- java - 无法设置 JRE_HOME 变量
- google-apps-script - 替换文本的问题
- graphql - 带有 Gatsby 设置的 Apollo 订阅
- javascript - 从flask python中的静态文件夹上传图像而不重新加载html页面
- java - 不使用 Java 套接字中的 ObjectInputStream 读取任何内容
- c# - 使用 C# LINQ 和 MongoDB 对嵌入式/嵌套文档进行子查询或联接
- swift - SwiftUI 按钮:保留突出显示的状态而没有丑陋的动画
- c++ - 在字符串中搜索单词的频率(C++)
- openedge - 你好我怎么能联合表进行中4gl?并显示