NODE-USB — как поддерживать горячее отключение устройства

Как поддерживать горячее отключение устройства? Как только я использую функцию startPoll(), приложение вылетает с ошибкой "FATAL ERROR: Polling is not active". Конечная точка, используемая в коде, является конечной точкой Interrupt IN интерфейса связи Cdc Acm.

Код

      const usb = require('usb')
const dev = usb.findByIds(0x05f9, 0x4204)

dev.open()

const _if = dev.interface(0)
if (_if.isKernelDriverActive()) _if.detachKernelDriver()
_if.claim()

const _ci = _if.endpoint(0x81)

_ci.startPoll()

_ci.on('data',  (...args) => console.log('data',  ...args))
_ci.on('end',   (...args) => console.log('end',   ...args))
_ci.on('error', (...args) => console.log('error', ...args))

Действия по воспроизведению

  1. Подключите устройство
  2. Запустить программу
  3. Отключить устройство

Выход

      error [Error: LIBUSB_TRANSFER_NO_DEVICE] { errno: 5 }
error [Error: LIBUSB_TRANSFER_NO_DEVICE] { errno: 5 }
FATAL ERROR:  Polling is not active.
 1: 0xb09c10 node::Abort() [node]
 2: 0xa1c193 node::FatalError(char const*, char const*) [node]
 3: 0xa1c19c  [node]
 4: 0xad1abb napi_fatal_error [node]
 5: 0x7f28c8213006  [/home/[...]/node_modules/usb/prebuilds/linux-x64/node.napi.glibc.node]
 6: 0x7f28c822193b handleCompletion(Transfer*) [/home/[...]/node_modules/usb/prebuilds/linux-x64/node.napi.glibc.node]
 7: 0x7f28c821333d Napi::ThreadSafeFunction::CallJS(napi_env__*, napi_value__*, void*, void*) [/home/[...]/node_modules/usb/prebuilds/linux-x64/node.napi.glibc.node]
 8: 0xacfc61  [node]
 9: 0x1564956  [node]
10: 0x1577084  [node]
11: 0x15652a8 uv_run [node]
12: 0xa43dd5 node::SpinEventLoop(node::Environment*) [node]
13: 0xb4bdb6 node::NodeMainInstance::Run(node::EnvSerializeInfo const*) [node]
14: 0xacd592 node::Start(int, char**) [node]
15: 0x7f28cad542d0  [/usr/lib/libc.so.6]
16: 0x7f28cad5438a __libc_start_main [/usr/lib/libc.so.6]
17: 0xa4067c  [node]
Abandon (core dumped)

Дополнительная информация

  1. Операционная система: Архлинукс
  2. Среда выполнения v16.15.1
  3. Узел USB версии 2.5.1

0 ответов

Другие вопросы по тегам