我试图在它们每次改变时获取特征,问题是,它们改变了,但eventListener无法识别它。所以我只得到了第一个值,在连接到我的BLE之后,但在那之后什么也没有发生。我的代码中有什么地方错了吗?
另一个问题是,有没有办法每隔5秒更新一次特征,比如我不知道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);
} 发布于 2021-11-02 11:24:41
characteristic.startNotifications()调用。examplereadValue()。https://stackoverflow.com/questions/69808752
复制相似问题