首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows/C++上控制USB设备的最简单方法

在Windows/C++上控制USB设备的最简单方法
EN

Stack Overflow用户
提问于 2016-04-27 15:10:38
回答 1查看 3.6K关注 0票数 4

我正在开发C++/Qt应用程序,它通过USB与Tektronix TDS2002示波器进行交互。示波器被称为"USB测试与测量设备(IVI)“。

目前我使用的是示波器供应商提供的TekVISA库。它工作,但它是巨大的,旧的,but和维护不善。因此,我想绕过库,直接与设备接口。

到目前为止,我已经找到了一个简单的库:https://github.com/xyphro/WinUsbTmc --这正是我所要寻找的,但是它使用libusb,它需要安装一些设备过滤器,并且建议它是更多的开发工具,而不是客户解决方案。你有这方面的经验吗?

在Windows/C++/Qt中与USB测试和测量设备交互的最简单方法是什么?

(谢谢你的建议:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-29 13:59:32

  1. 你需要一个USB驱动器。我的示波器与这个VISA包中包含的驱动程序一起工作(可以非常容易地提取驱动程序):http://www.keysight.com/main/software.jspx?cc=CZ&lc=eng&nid=-11143.0.00&id=2504667&pageMode=CV我假设所有的USB设备都可以使用相同的驱动程序,但是我没有可能检查这个。
  2. USB驱动程序可以通过标准Windows函数访问。这个论坛上的人真的很亲密:https://forum.tek.com/viewtopic.php?f=568&t=137573,而且这个文档非常有用:2010-03-23.doc
  3. 您不能直接向OSC写入命令--您发送和接收的数据有一定的报头,必须采用正确的格式,否则示波器会忽略消息。请参阅这个简单库中的读写实现:https://github.com/xyphro/WinUsbTmc我没有使用这个库,因为它使用的是libusb库,它使用某种设备过滤器,我个人不喜欢这个概念(此外,我还有真正的工作驱动程序)。
  4. 您读取的数据也有一个简单的标题。为了确保您很好地适应输入数据的头结构,您应该首先刷新输入缓冲区。然后发出读取请求(使用写命令-请参阅上面的WinUsbTmc库),最后接收数据并将头安装在其开头。

我希望这会对某些人有所帮助:)

关于

克莱西克

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36893856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档