【发布时间】:2022-01-27 03:02:53
【问题描述】:
正在使用 Android 上的 Happylighting 应用程序,我尝试制作一个简单的 Web 应用程序来控制 LED 的颜色,但不知道该怎么做,我必须请求女巫“gatt”,我真的蓝牙新手。
借助 android 嗅探器,我知道可以使用服务更新
const service = "0000ffd5-0000-1000-8000-00805f9b34fb"
const characteristic = "0000ffd9-0000-1000-8000-00805f9b34fb"
function onRequestBluetoothDeviceButtonClick() {
navigator.bluetooth.requestDevice({
filters: [{name:"QHM-0A0B"}],
optionalServices: [service],
})
.then(device => {
return device.gatt.connect()
}).then(server =>{
return server.getPrimaryService(service);
}).then(service =>{
return service.getCharacteristics(characteristic);
}).then(characteristic=>{
let colorArray = Uint8Array.from([86, 0, 255, 0, 25, 240, 170]);
return characteristic[0].writeValue(colorArray);
}).then(()=>{
console.log("Send")
})
.catch(error => {
console.log('Argh! ' + error);
});
}
但我不知道接下来要向它发送数据是什么以及 git repo 中提到的字节数组是什么
【问题讨论】:
-
可以分享一下你找到的api文档吗?
-
Ofc @MichaelKotzjan 在这里:web.dev/bluetooth.
-
哦,你说的是蓝牙 api。我们需要用于您的 LED 的蓝牙 API 来给您提示。我是否理解正确,您想使用 Web 应用程序复制 Happylighting 应用程序?
-
@MichaelKotzjan 这正是重点,但我没有找到实现这一目标的唯一资源
-
这就是我所担心的。如果您无法使用现有的 BLE 应用程序更改颜色,则不能期望使用您的代码更改它。可能你找到的库已经过时,数据格式不正确。如果没有您的设备文档,就无法判断
标签: javascript bluetooth led web-bluetooth