【发布时间】:2021-12-16 21:10:43
【问题描述】:
我尝试在每次更改时获取特征,问题是,它们发生了变化,但 eventListener 无法识别。因此,在连接到我的 BLE 后,我只获得了第一个值,但之后什么也没有发生。我的代码有问题吗?
另一个问题,有没有办法更新特性,例如,我不知道 5 秒?你会怎么做,有代码示例吗?(也许有 setInterval() ?)
谢谢!
function test() {
console.log('Requesting Bluetooth Device...');
navigator.bluetooth.requestDevice({
acceptAllDevices: true,
optionalServices: ['af07ecb8-e525-f189-9043-0f9c532a02c7']
}) //c7022a53-9c0f-4390-89f1-25e5b8ec07af
.then(device => {
console.log('Gatt Server Verbindung');
return device.gatt.connect();
})
.then(server => {
console.log('Dose Service...');
return server.getPrimaryService('af07ecb8-e525-f189-9043-0f9c532a02c7');
})
.then(service => {
console.log('mgyh Characteristic...');
return service.getCharacteristic('a99e0be6-f705-f59c-f248-230f7d55c3c1');
})
.then(characteristic => {
// Set up event listener for when characteristic value changes.
characteristic.addEventListener('characteristicvaluechanged',dosechanged);
return characteristic.readValue();
})
.catch(error => {
console.log('Das geht nicht: ' + error);
});
}
function dosechanged(event) {
let dose = event.target.value.getUint8(0)+event.target.value.getUint8(1)*10+event.target.value.getUint8(2)*100 + event.target.value.getUint8(3)*1000+ event.target.value.getUint8(4)*10000;
console.log('Received ' + dose);
}
【问题讨论】:
标签: javascript bluetooth-lowenergy web-bluetooth