libusb_submit_transfer 无回调

libusb_submit_transfer no callback

我正在设置我的第一个 libusb 异步传输,但从未收到回调。

我已连接到库,可以成功枚举和打开设备。

用于设置传输的函数(按此顺序)如下:

libusb_alloc_transfer()
libusb_fill_bulk_transfer()
libusb_submit_transfer()

libusb_submit_transfer returns 一个成功的结果,所以我希望看到收到回调,即使它 returns 是一个错误,但是 none 收到了。

关于可能出现的问题有什么建议吗?

libusb documentation 状态:

In the interest of being a lightweight library, libusb does not create threads and can only operate when your application is calling into it. Your application must call into libusb from it's main loop when events are ready to be handled, or you must use some other scheme to allow libusb to undertake whatever work needs to be done.

提出了两个集成级别:

  • Simple :您使用阻塞调用作为应用程序的主循环内容
  • Advanced :您可以请求 libusb 的描述符并将它们与您的描述符混合,或者注册回调 (libusb_set_pollfd_notifiers()) 以获得 added/removed 描述符的通知。

可以在 libmaru project

中找到后者的示例用法