2016-04-27 62 views
2

我正在開發C++/Qt應用程序,它通過USB與Tektronix TDS2002示波器進行交互。示波器顯示爲「USB測試和測量設備(IVI)」。在Windows/C++上控制USB TMC設備的最簡單方法

目前我使用示波器供應商提供的TekVISA庫。它有效,但它是巨大的,古老的,越野車和維護不善。因此我想繞過庫並直接連接設備。

到目前爲止,我已經找到了這個簡單的庫:https://github.com/xyphro/WinUsbTmc這正是我所期待的,但它使用libusb,它需要安裝一些設備過濾器,另外建議使用比客戶解決方案更多的開發工具。你有這方面的經驗嗎?

在Windows/C++/Qt中與USB測試和測量設備交互的最簡單方法是什麼?

謝謝您的建議:)

回答

3
  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. 可以通過標準Windows功能訪問USB驅動程序。在這個論壇上的傢伙真的很接近: 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