Метод GetInfo в WebSerial API? Есть ли другой способ получить информацию об устройстве?

Я использую Web Serial API для подключения двух разных весов. Они отправляют данные о весе по-разному, поэтому я пытаюсь получить от них метаданные последовательного порта (vendorId и т. д.), потому что я хочу определить, какие весы подключены. Метод getInfo() не работает, поскольку он не определен в объекте Serialport.

[Exposed=(DedicatedWorker,Window), SecureContext]
interface SerialPortInfo {
  maplike<DOMString, DOMString?>;
};

Это интерфейс для метаданных, но я даже не знаю, как им пользоваться.

Мои источники: https://wicg.github.io/serial/#dom-serialportinfo


person Patrick    schedule 22.07.2020    source источник


Ответы (1)


В той версии спецификации метод объявлен немного странно. Вы можете рассматривать возвращаемое значение как объект плана. Если порт является USB-устройством, то он будет иметь свойства usbVendorId и usbProductId, которые представляют собой интересующие вас метаданные.

person Reilly Grant    schedule 22.07.2020
comment
Это USB-устройство. Одна шкала представляет собой устройство cdc, другая зависит от поставщика. Когда я хочу вызвать port.getInfo(), он говорит, что метод не существует... Как я могу получить возвращаемые значения? - person Patrick; 22.07.2020
comment
getInfo() был реализован в Chrome 85.0.4183.0. - person Reilly Grant; 22.07.2020
comment
Когда можно фильтровать по vendorId? - person Patrick; 23.07.2020
comment
я не могу получить доступ к устройствам на linux. Есть ли правило udev- для создания? - person Patrick; 23.07.2020
comment
У вас есть совет? - person Patrick; 27.07.2020
comment
Для фильтрации по идентификатору поставщика вызовите navigator.serial.requestPort({filters: {usbVendorId: <the vendor ID>}}). - person Reilly Grant; 30.07.2020