У меня вопрос. Есть устройство, к которому я подключаюсь через веб-блютуз. Мне нужно получить значения UnKnown Characteristic в Unknown Servie.
Теперь для тестирования я использую приложение nRF Connect, подключаюсь к устройству, выбираю услугу и характеристику. Затем я включаю получение уведомлений, затем записываю значение 0x0A, после отправки этого значения я получаю нужный мне параметр.
Для работы с веб-Bluetooth я использую следующий код, который не работает в моем случае.
async function connectDeviceAndCacheCharacteristics() {
if (bluetoothDevice.gatt.connected && batteryLevelCharacteristic) {
return;
}
log('Connecting to GATT Server...');
const server = await bluetoothDevice.gatt.connect();
log('Getting Battery Service...');
const serviceBattery = await server.getPrimaryService('battery_service');
const serviceUnknown = await server.getPrimaryService('03b80e5a-ede8-4b33-a751-6ce34ec4c700');
batteryLevelCharacteristic = await serviceBattery.getCharacteristic('battery_level');
batteryLevelCharacteristic.addEventListener('characteristicvaluechanged', handleBatteryLevelChanged );
autoOffCharacteristic = await serviceUnknown.getCharacteristic('7772e5db-3868-4112-a1a9-f2669d106bf3');
if(autoOffCharacteristic) {
let val = new Uint8Array([ 0x0A ]);
autoOffCharacteristic.writeValue(val);
}
autoOffCharacteristic.addEventListener('characteristicvaluechanged', getAutoOffValue );
await batteryLevelCharacteristic.startNotifications();
await autoOffCharacteristic.startNotifications();
}
функция getAutoOffValue (событие) {console.log('------------------------------>');
let autoOffValue = event.target.value.getUint8(0);
console.log(event.target.value);
console.log(autoOffValue);
}
В функции getAutoOffValue я ожидаю получить нужный мне параметр, но это не работает.
Как решить эту проблему?