29.08.2017, 08:58
Hallo!
Ich habe das Problem, dass ich mit einem USB-Gerät kommunizieren muss, welches seine Messwerte per Polling zur Verfügung stellt. Die Kommunikation selbst funktioniert. Ich kann Kommandos via Bulk-In auf EP 0x02h senden und auf 0x83h empfangen.
02h Bulk Out (Befehle)
83h Bulk In (Status)
84h Bulk In (Messdaten)
Sobald ich aber in den "Messmodus" gehe, funktioniert es nicht mehr:
Dazu muss ich auf EP 02h den Startbefehl senden und bekomme auf 84h die ersten 96 Byte der Messwerte zurück.
Danach muss ich auf 83h ein Status abfragen, ehe auf 84h die nächsten Messwerte lesbar sind.
Das Problem ist, das es kein starres Raster ist, sondern mal 3...4 Messwerte auf 84h kommen können und auch mehrfach auf 83h Statusmeldungen.
Ich muss also irgendwie rausfinden, auf welcher USB Bulk-In Pipe Daten anliegen und dann diese auslesen.
Der Versuch dies über einen knackig-kurzen Timeout zu machen schlägt leider fehl, da der Timeout scheinbar ignoriert wird...
(Immer >2 Sekunden)
Benutzt wird Labview 2016 und der NI-VISA-Driver Wizzard.
Vielleicht hatte ja schon mal jemand eben das selbe Problem und konnte es lösen?
Mirko
Ich habe das Problem, dass ich mit einem USB-Gerät kommunizieren muss, welches seine Messwerte per Polling zur Verfügung stellt. Die Kommunikation selbst funktioniert. Ich kann Kommandos via Bulk-In auf EP 0x02h senden und auf 0x83h empfangen.
02h Bulk Out (Befehle)
83h Bulk In (Status)
84h Bulk In (Messdaten)
Sobald ich aber in den "Messmodus" gehe, funktioniert es nicht mehr:
Dazu muss ich auf EP 02h den Startbefehl senden und bekomme auf 84h die ersten 96 Byte der Messwerte zurück.
Danach muss ich auf 83h ein Status abfragen, ehe auf 84h die nächsten Messwerte lesbar sind.
Das Problem ist, das es kein starres Raster ist, sondern mal 3...4 Messwerte auf 84h kommen können und auch mehrfach auf 83h Statusmeldungen.
Ich muss also irgendwie rausfinden, auf welcher USB Bulk-In Pipe Daten anliegen und dann diese auslesen.
Der Versuch dies über einen knackig-kurzen Timeout zu machen schlägt leider fehl, da der Timeout scheinbar ignoriert wird...
(Immer >2 Sekunden)
Benutzt wird Labview 2016 und der NI-VISA-Driver Wizzard.
Vielleicht hatte ja schon mal jemand eben das selbe Problem und konnte es lösen?
Mirko