-3

我正在使用多个相同的设备,我希望能够同时读取它们。因此,所有设备的产品和供应商 ID 都是相同的。我想知道我是否能够并行读取它们。

在我看来,我认为这应该是可能的,因为对于特定的设备路径,您创建了一个唯一的 winusb 句柄以及一个唯一的 createfile 句柄。

但是在实践中,我意识到它不起作用。我没有使用重叠结构,因为它们由于独特的 createfile 句柄而完全分开。从设备读取的数据不是并行读取的,而是仅读取第一个设备、第二个、第三个等...

我用 C++ 编写了代码,希望得到一些建议,谢谢。
使用重叠结构会解决问题吗?还是 winusb 不应该以这种方式使用?

这是我的代码的链接, https://drive.google.com/drive/folders/1qvcGwNLxzJ0oRrFZbtyZ7g0zCU0XUG1n?usp=sharing

4

1 回答 1

0

是的,您可以使用 WinUSB 与两个不同的 USB 设备并行通信,无论它们是否相同。你会用两条不同的路径调用CreateFile两次。要真正获得并行性,您需要使用重叠 I/O 或使用多个线程。

重叠 I/O 的要点是,您可以非常快速地从单个线程启动多个请求,操作系统会并行处理它们,您可以稍后查询它们是否已完成。

于 2018-11-02T06:33:16.903 回答