Я пытаюсь использовать веб-Bluetooth с Chrome на Windows 10. Когда я читаю значение из характеристики, я каждый раз получаю одни и те же данные, что неверно.Я использовал то же оборудование BLE с приложением ac # UWP и получал те же результаты, пока не изменил его на чтение в режиме без кэширования.Так есть ли способ не использовать режим кэширования для веб-Bluetooth при чтении значения из характеристики?
Код ниже опрашивает характеристику каждую секунду.Это термометр Bluetooth, и температура должна меняться каждый раз, когда температура поднимается и опускается.
ngOnInit() {
navigator.bluetooth.requestDevice({
filters: [{services: ['battery_service']}],
optionalServices: ['f2b32c77-ea68-464b-9cd7-a22cbffb98bd']
})
.then(device => device.gatt.connect())
.then(server => {
// Getting Temp Service...
return server.getPrimaryService('f2b32c77-ea68-464b-9cd7-a22cbffb98bd');
})
.then(service => {
// Getting Battery Level Characteristic...
return service.getCharacteristic('78544003-4394-4fc2-8cfd-be6a00aa701b');
})
.then(characteristic => {
// Reading Battery Level...
this.tempChar = characteristic;
setInterval(() => {
this.readOverAndOver(characteristic);
}, 1000);
return characteristic.readValue();
})
.then(value => {
console.log('Battery percentage is ' + value.getUint8(0));
})
.catch(error => {
console.log(error);
});
}
readOverAndOver (характеристика: любая) {const textEncoder = new TextDecoder ();
this.tempChar.readValue().then(value => {
const stringThing = textEncoder.decode(value);
console.log(stringThing);
console.log('new value: ', value);
});
}