问题标签 [libusb-1.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - libusb 和民意调查/选择
我正在使用 linux 操作系统,想知道是否有任何文件描述符可以轮询/选择,当数据等待从 USB 设备读取时会触发。我也在使用 libusb 库,但还没有找到可以使用的文件描述符。
c++ - 在 Windows 上,libusb 看不到某些端口
我们在 C++ 代码中使用libusb v1.0.9.0(带有 Java 前端)。我们正在多个版本的 Windows 和用于各种 USB 2.0/3.0 控制器的多台机器上对其进行测试,我们发现了一些非常糟糕的问题。
在 Windows 7 上,它看不到“英特尔 USB 3.0 可扩展主机控制器”平台上的任何端口。
在 Windows Server 2008 上,它看不到 USB 2.0 和 3.0 控制器上的某些端口。2.0 集线器上的一些端口工作,3.0 集线器上的一些端口工作,但其他端口对同一设备、任何设备都是不可见的。
第一个可能只是一个特定的控制器特性,很快就会得到支持,但第二个确实让我们担心。这种行为普遍吗?我们如何解决它?
我们正在使用libusb_get_device_list()
or libusb_open_device_with_vid_pid()
。
c++ - 以用户身份运行时 libusb 1.0 程序中的分段错误,而不是作为 sudo
我正在编写一个使用libusb 1.0 和 cImg的相机捕捉程序。它连接到我的Atik 314L天文相机并捕获图像以显示在屏幕上。它在以普通用户或超级用户身份编译时编译良好,在以 root 用户身份执行时运行良好,但在以任何其他方式运行时会产生分段错误。
我正在使用Code::Blocksusb_control_msg()
,调用堆栈显示调用函数时发生分段错误:
我对在 Linux 环境中进行编程相当陌生,我不确定如何才能让普通用户运行它。以下是我迄今为止尝试过的步骤:
- 将我的用户添加到所有用户组,看看这是否是组权限问题(哎呀——我什至尝试将自己添加到“root”,但它没有做任何事情)
- 添加一个规则
/etc/udev/rules.d
,有点像这样:PROGRAM="/home/[username]/git/camera/prog", MODE="0660", GROUP="camera" - 尝试将程序本身的权限更改为 777。不过,这是最后的努力——我真的没想到它会起作用。
我正在学习如何调试,所以如果您需要日志或任何东西来查看问题所在,请告诉我。
c - libusb 取消引用指向不完整类型的指针
我知道关于这个问题有很多问题,但具体来说,我在 Ubuntu 上实现 libusb 库时遇到了麻烦。这是我的代码:
它几乎是从 libusb 示例中逐字记录的:
http://libusb.sourceforge.net/doc/examples-code.html
但它会产生大量“取消引用指向不完整类型的指针”错误。
具体来说,我在以下几行中得到了指向不完整类型错误的解引用指针:
在以下行中两次:
正如我所说,这很奇怪,因为我(在大多数情况下)没有编造这个,这是取自 lib 网站上已建立的示例。
任何建议都会很棒。谢谢!
qt - 使用 libusb 异步批量传输,如果我们闲置,设备将停止接收
我正在编写一个 Linux 程序(使用 Qt 4.8 和 libusb 1.0),它将与自定义 USB 设备(目前由同事编程)进行通信。
第 1 步是定期通过 USB 来回“心跳”。我目前正在使用异步批量传输。
为了进行测试,我将“Send_Heartbeat()”放在按钮单击上。如果我多次单击按钮并排队发送许多消息,只要我保持队列忙碌,消息就会继续发送,而我的 USB 设备会继续接收它们。
如果我停止几秒钟,然后恢复并将更多消息添加到队列中,USB 设备将停止接收它们。
但是,即使我的 USB 设备没有接收到它们,我的程序的传输回调确实会返回传输状态代码 0,表示成功。
我的问题:
- 如果我的 USB 设备似乎已停止接收,为什么回调的传输状态指示成功?
- 有没有人听说过这种行为?
值得注意的是,如果我断开 USB 设备,我会在回调中返回正确的状态码,表明设备已消失。
如果 USB 设备保持连接并运行,我“分离”然后再次“附加”以强制重新连接并尝试发送更多测试心跳,它可以工作!USB 设备再次开始接收信息。
我的“分离”是以下调用:
然后我的“附加”是:
我的下一步是缩小哪些 libusb 命令正在重新建立通信。
同时,我希望有人能认识到这些症状并提出建议。由于这是我第一次对 USB 通信进行编程,我想知道是否有一些我错过的基础知识。
谢谢!
python - LibUsb-win32 是否要求每个设备都有自己的 INF 文件?
我正在尝试开发一个 USB 板,它可以作为 HID 设备连接到计算机并与我编写的 Python 应用程序通信。我想使用 Python 并且我使用 HID 设备来免驱动程序。
在我遇到 lilbusb-win32 之前,这似乎是一个很好的解决方案。使用它一段时间后,我似乎必须为我的 USB 设备创建一个 INF 文件。我读过 INF 可以识别 USB 设备的 ID(VID 和 PID)。这是否意味着每台设备都需要附带自己的 INF 文件,这基本上否定了首先使用 HID 实现无驱动程序的想法?
只要它们都是相同的 HID 设备(只是具有不同的产品 ID),Libusb-win32 和 PyUsb 是否允许我创建一个与任何板对话的程序?如果是这样,用户是否需要使用我的程序下载 INF?
这似乎违背了最初使用 HID 的目的。
c - 有时在 USB 同步传输中不会发生回调
我正在尝试通过 cindrella 板上的 cimax usb 接口接收传输流。我正在使用 libusb 来访问设备。问题是有时回调函数没有被调用,它显示设备分离。
c - libusb_set_interface_alt_setting() 有什么作用?
libusb 提供 libusb_set_interface_alt_setting() 方法为接口提供备用设置。我的问题是为界面设置备用设置是什么意思。
libusb - 如何使用 libusb 设置 RTS/DTR?
我在 libusb-0.1 和 libusb-1.0 中都看不到任何 setter RTS/DTR 函数。我应该使用 usb_control_msg() 发送特殊的东西吗?USB 设备是 CDC 设备(不是 FTDI)
c - 从使用多个 .c 文件生成的 .o 文件创建 .so 文件时出错
我创建了 .o 文件,如下所示,
然后我使用以下命令获取 .so 文件
然后我收到如下错误
*
可能是什么问题呢?(感谢您的光临:))