Веб-блютус получить значение Неизвестная характеристика - PullRequest
0 голосов
/ 12 октября 2019

У меня вопрос. Есть устройство, к которому я подключаюсь через веб-блютуз. Мне нужно получить значения 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 я ожидаю получить нужный мне параметр, но это не работает.

Как решить эту проблему?

...