2

現在、角度用のこのモジュールを使用しています: Angular web bluetooth

特性を読み取る方法の例を見つけて、それを機能させることができます。ただし、書き込む (または通知する) サンプルはありません。このモジュールがこのタスクを実行できると確信しています。ここを参照してください。ただし、Angular (または JS?) に関する私の知識は十分ではありません。

誰かが例を見つける場所や/およびそれらを提供できる場所を知っていましたか?

バッテリ レベルを読み取るためのスニペット:

getBatteryLevel() {
console.log('Getting Battery Service...');

try {
  return this.ble
    .discover$({
      acceptAllDevices: true,
      optionalServices: [BatteryLevelService.GATT_PRIMARY_SERVICE]
    })
    .mergeMap((gatt: BluetoothRemoteGATTServer) => {
      return this.ble.getPrimaryService$(
        gatt,
        BatteryLevelService.GATT_PRIMARY_SERVICE
      );
    })
    .mergeMap((primaryService: BluetoothRemoteGATTService) => {
      return this.ble.getCharacteristic$(
        primaryService,
        BatteryLevelService.GATT_CHARACTERISTIC_BATTERY_LEVEL
      );
    })
    .mergeMap((characteristic: BluetoothRemoteGATTCharacteristic) => {
      return this.ble.readValue$(characteristic);
    })
    .map((value: DataView) => value.getUint8(0));
} catch (e) {
  console.error('Oops! can not read value from %s');
}

}

ありがとうございました。

編集: Aluan Haddad の支援のおかげで、適切なサービスと特性 UUID を使用して、書き込み要求を実行できました。

            .mergeMap((characteristic: BluetoothRemoteGATTCharacteristic) => {
            let value = new Uint8Array(1);
            value[0] = 2;
          return this.ble.writeValue$(characteristic, value);
        }).subscribe();
4

0 に答える 0