現在、角度用のこのモジュールを使用しています: 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();