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

我正在开发通过USB与Tektronix TDS2002示波器交互的C ++ / Qt应用程序。 示波器显示为“USBtesting和测量设备(IVI)”。

目前我使用示波器供应商提供的TekVISA库。 它有效,但它是巨大的,古老的,越野车和维护不善。 所以我想绕过库并直接连接设备。

到目前为止,我已经find了这个简单的库: https : //github.com/xyphro/WinUsbTmc这正是我正在寻找,但它使用libusb,需要安装一些设备filter,此外,build议更多的发展工具比客户解决scheme。 你有什么经验吗?

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

谢谢你的build议 :)

  1. 你需要一个USB驱动程序。 我的示波器可以使用本VISA包中包含的驱动程序(驱动程序可以很容易地解压): http ://www.keysight.com/main/software.jspx?cc=CZ&lc=eng&nid=-11143.0.00& id= 2504667&pageMode = CV我假设所有USB TMC设备都可以使用相同的驱动程序,但我无法检查这一点。

  2. USB驱动程序可以通过标准的Windows功能访问。 在这个论坛的人真的很接近: https : //forum.tek.com/viewtopic.php?f=568&t=137573 ,这个文件是非常有用的: http : //www.ivifoundation.org/downloads/Class%20Specifications /Ivi-6%202_USBTMC_2010-03-23.doc

  3. 您不能直接向OSC写入命令 – 发送和接收的数据具有特定的标题,必须采用正确的格式,否则示波器将忽略该消息。 看到这个简单的库读写实现: https : //github.com/xyphro/WinUsbTmc我没有使用这个库,因为它使用libusb库,它使用某种设备过滤器,我个人不喜欢这个概念(和另外我有真正的工作驱动程序)。

  4. 你读的数据也有一个简单的标题。 为了确保你在输入数据上适合头结构,你应该首先刷新输入缓冲区。 然后,您发出读取请求(使用写入命令 – 请参阅上面的WinUsbTmc库),最后您收到数据,并在其开始适合标题。

我希望这将有助于某人:)

带着敬意

klasyc