Кэширование характерных веб-данных Bluetooth - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь использовать веб-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);
});

}

1 Ответ

0 голосов
/ 30 мая 2018

Возможно, вы захотите подать это как ошибку в Chrome на https://bugs.chromium.org/p/chromium/issues/entry?components=Blink%3EBluetooth.

...