libusb_submit_transfer没有回调

时间:2017-07-25 12:52:29

标签: linux libusb

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

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

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

libusb_alloc_transfer()
libusb_fill_bulk_transfer()
libusb_submit_transfer()

libusb_submit_transfer返回一个成功的结果,所以我希望看到即使它返回错误也会收到回调,但是没有收到。

有什么可能出错的建议吗?

1 个答案:

答案 0 :(得分:1)

libusb documentation州:

  

为了成为轻量级库,libusb不会创建线程,只能在应用程序调用它时才能运行。当事件准备好处理时,您的应用程序必须从它的主循环调用libusb,或者您必须使用其他一些方案来允许libusb进行任何需要完成的工作。

提出了两个集成级别:

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

可以在libmaru project

中找到后者的示例用法