2016-04-27 8 views
2

Ich entwickle C++/Qt-Anwendung, die mit Tektronix TDS2002 Oszilloskop über USB interagiert. Das Oszilloskop erscheint als "USB Test and Measurement Device (IVI)".Einfachster Weg zur Steuerung von USB TMC-Geräten unter Windows/C++

Momentan verwende ich die TekVISA-Bibliothek, die vom Hersteller des Oszilloskops geliefert wird. Es funktioniert, aber es ist riesig, alt, buggy und schlecht gepflegt. Daher möchte ich die Bibliothek umgehen und das Gerät direkt anbinden.

Bisher habe ich diese einfache Bibliothek gefunden: https://github.com/xyphro/WinUsbTmc Es ist genau das, was ich suche, aber es verwendet libusb, die erfordert, einige Gerätefilter zu installieren und zusätzlich ist es ratsam, mehr Entwicklungswerkzeug als Kundenlösung zu sein. Hast du irgendwelche Erfahrungen dazu?

Was ist der einfachste Weg, um mit USB-Test-und Messgerät in Windows/C++/Qt zu interagieren?

Vielen Dank für Ihre Anregungen :)

Antwort

3
  1. Sie benötigen einen USB-Treiber. Mein Oszilloskop arbeitet mit dem in diesem VISA-Paket enthaltenen Treiber (der Treiber kann sehr einfach extrahiert werden): http://www.keysight.com/main/software.jspx?cc=CZ&lc=eng&nid=-11143.0.00&id=2504667&pageMode=CV Ich nehme an, dass alle USB-TMC-Geräte den gleichen Treiber verwenden können, aber ich habe keine Möglichkeit, dies zu überprüfen.

  2. Der USB-Treiber kann über Windows-Standardfunktionen aufgerufen werden. Jungs in diesem Forum waren ganz in der Nähe: https://forum.tek.com/viewtopic.php?f=568&t=137573 und auch dieses Dokument war sehr nützlich: http://www.ivifoundation.org/downloads/Class%20Specifications/Ivi-6%202_USBTMC_2010-03-23.doc

  3. Sie keine Befehle zu OSC direkt schreiben können - Daten, die Sie senden und empfangen bestimmte Header haben, die im richtigen Format sein muss, sonst Das Oszilloskop ignoriert die Nachricht. Siehe Lesen und Schreiben der Implementierung in dieser einfachen Bibliothek: https://github.com/xyphro/WinUsbTmc Ich habe diese Bibliothek nicht benutzt, weil sie libibus Bibliothek verwendet, die irgendeine Art von Gerätefilter verwendet und ich persönlich mag dieses Konzept nicht (und zusätzlich habe ich einen echten funktionierenden Treiber).

  4. Daten, die Sie lesen, haben auch einen einfachen Header. Um sicherzustellen, dass Sie die Kopfstruktur gut auf Eingabedaten anpassen, sollten Sie zuerst den Eingabepuffer leeren. Dann geben Sie eine Leseanforderung aus (mit dem Befehl write - siehe die obige WinUsbTmc-Bibliothek) und schließlich erhalten Sie die Daten und passen die Überschrift an ihren Anfang an.

Ich hoffe, dass dies jemand helfen :)

Hinsichtlich

klasyc

Verwandte Themen