我有一个问题。我有一个通过网络蓝牙连接的设备。我需要在“未知服务”中获取值“未知特征”。
现在进行测试,我使用应用程序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中,我希望获取所需的参数,但这不起作用。
如何解决这个问题?