Я бы подключил несколько аппаратных устройств с BLE к одной веб-странице HTML / javascript. Я использовал Web Bluetooth API. Все работает нормально. Я могу подключить все устройства и прочитать характеристики каждого из них. Моя проблема в том, что у меня будет одинаковый приоритет для каждого устройства. Похоже, что последнее подключенное устройство получило более высокий приоритет, чем предыдущие с точки зрения опроса событий. Есть ли способ присвоить всем устройствам одинаковый приоритет?
Вот мой код для одного устройства. Все устройства предлагают одинаковые услуги и одинаковые характеристики.
//for device 1
function connect_device_1(){
navigator.bluetooth.requestDevice({
filters: [
{services: myService},
{name: myDeviceName},
]
})
.then(function(device) {
return device.gatt.connect();
})
.then(function(server) {
return server.getPrimaryService(myService);
})
.then(function(service) {
return service.getCharacteristics();
})
.then(function(characteristics) {
sNots(characteristics);
})
.catch(function(error) {
console.error('Connection failed!', error);
});
}
async function sNots(characteristics) {
try {
characteristics[0].addEventListener('characteristicvaluechanged', handleData1);
await characteristics[0].startNotifications();
} catch (e) {
console.log("Characteristic error!");
}
}
function handleData1(event) {
//only one read out for cycle
}
//same as above for device 2
//....
function handleData2(event) {
}
//same as above for device 3
//....
function handleData3(event) {
}
//same as above for device 4
//....
function handleData4(event) {
//For instance, if the device 4 is connected as the last one, this event is called more
//than all the others, while I would like to have same priority with all the others.
}