Web蓝牙获得价值未知特征

时间:2019-10-12 16:17:54

标签: javascript html web-bluetooth

我有一个问题。我有一个通过网络蓝牙连接的设备。我需要在“未知服务”中获取值“未知特征”。

现在进行测试,我使用应用程序nRF Connect,连接到设备,选择服务和特性。然后打开接收通知,然后写入值0x0A,发送该值后,我得到所需的参数。

要使用网络蓝牙,我使用以下代码,这种情况不适用于我的情况。

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();

}

function getAutoOffValue(event){     console.log('------------------------------>');

let autoOffValue = event.target.value.getUint8(0);
console.log(event.target.value);
console.log(autoOffValue);

}

在功能getAutoOffValue中,我希望获取所需的参数,但这不起作用。

如何解决这个问题?

0 个答案:

没有答案