Lesen eines Datenstromes über USB mittels Qt-Programm

Dein Thema passt einfach in kein Forum? Dann probiers mal hier.
Antworten
fritz01h
Beiträge: 6
Registriert: 6. August 2011 11:22

Lesen eines Datenstromes über USB mittels Qt-Programm

Beitrag von fritz01h »

Hallo,

die von einem µController der Familie MSP430 von TI über USB bereitgestellten Datenströme möchte ich mittels eines Qt-Programms lesen.
In der Qt-Programmierung bin ich noch ein Newcomer. Kann mir jemand einen Tipp geben oder evtl. sogar ein Stück Programmcode vorstellen wie man das machen könnte.

Mit dem Kommando lsusb zeigt sich folgendes Listing mit dem Hinweis auf das TexasInstruments-Gerät:
.....
Bus 003 Device 003: ID 0451:f432 Texas Instruments, Inc.
......

Mit dem Kommando

sudo modprobe usbserial vendor=0x0451 product=0xf432

habe ich das Gerät registriert.

Danach zeigt nach EIngabe von dmesg folgendes Listing:
......
41338.580301] usb 3-1: new full speed USB device using uhci_hcd and address 2
[41338.783660] usb 3-1: configuration #1 chosen from 1 choice
[41348.846493] /build/buildd/linux-2.6.32/drivers/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed
[41348.846536] generic-usb 0003:0451:F432.0003: timeout initializing reports
[41348.846778] generic-usb 0003:0451:F432.0003: hiddev97,hidraw2: USB HID v1.01 Device [Texas Instruments Texas Instruments MSP-FET430UIF] on usb-0000:00:1a.0-1/input1
[41348.847445] cdc_acm 3-1:1.0: This device cannot do calls on its own. It is not a modem.
[41348.847454] cdc_acm 3-1:1.0: No union descriptor, testing for castrated device
[41348.847522] cdc_acm 3-1:1.0: ttyACM0: USB ACM device
[41348.853452] usbcore: registered new interface driver cdc_acm
[41348.853459] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
[41407.488328] usb 3-1: USB disconnect, address 2
[41452.848171] usb 3-1: new full speed USB device using uhci_hcd and address 3
[41453.051603] usb 3-1: configuration #1 chosen from 1 choice
[41453.062492] cdc_acm 3-1:1.0: This device cannot do calls on its own. It is not a modem.
[41453.062502] cdc_acm 3-1:1.0: No union descriptor, testing for castrated device
[41453.062536] cdc_acm 3-1:1.0: ttyACM0: USB ACM device
[41463.117509] /build/buildd/linux-2.6.32/drivers/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed
[41463.117550] generic-usb 0003:0451:F432.0004: timeout initializing reports
[41463.117782] generic-usb 0003:0451:F432.0004: hiddev97,hidraw2: USB HID v1.01 Device [Texas Instruments Texas Instruments MSP-FET430UIF] on usb-0000:00:1a.0-1/input1
[41749.095751] usbcore: registered new interface driver usbserial
[41749.096653] USB Serial support registered for generic
[41749.097366] usbcore: registered new interface driver usbserial_generic
[41749.097369] usbserial: USB Serial Driver core
.......
Wie geht's jetzt weiter? Da schwimme ich total. Was muss ich programmieren um die Datenstöme zu sehen?

Freue mich über jeden Tip.
Gruß Helmut
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Re: Lesen eines Datenstromes über USB mittels Qt-Programm

Beitrag von upsala »

Verwende libusb

Anbei noch ein kleines Beispielprogramm. Da es nichts für Qt direkt gibt, wird das ganze sowieso erst mal in C(++) geschrieben.
Dateianhänge
main.cpp
(5.5 KiB) 703-mal heruntergeladen
fritz01h
Beiträge: 6
Registriert: 6. August 2011 11:22

Re: Lesen eines Datenstromes über USB mittels Qt-Programm

Beitrag von fritz01h »

Hallo upsala,

vielen Dank für die schnelle Unterstützung. Das sieht sehr gut aus und gibt mir Hoffnung, dass es für meinen Fall das Richtige sein könnte. Auf den ersten Blick zumindest, denn ich muss erst mal tiefer einsteigen, um die Sache bewerten zu können.

Habe begonnen mich in die libusb einzulesen. Da die ankommenden Datenströme nicht einem fixen Timing folgen, nehme ich an, dass die asynchrone Variante wohl die richtige sein wird!?!?
Aber die Installation selbst ist mir nicht klar. Habe keine Anleitung gefunden, wie die Installation durchzuführen ist.

Zwei weitere Fragen hätte ich noch:
Auf welcher Version basiert dein beigefügtes Beispielprogramm: libusb-0.1 oder 1.0.
Ist es die sychrone oder die asynchrone Variante ?

Danke nochmal. Helmut
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Re: Lesen eines Datenstromes über USB mittels Qt-Programm

Beitrag von upsala »

Hier wird libusb 0.1 verwendet, allerdings habe ich diesen Ansatz nicht weiter verfolgt, da V-USB in meinem Aufbau nicht stabil lief, bin deswegen auf libftdi gewechselt, was allerdings auf der Hardware-Seite einen zusätzlichen Chip benötigt (FT232) aber auch sehr stabil läuft und auf der Kontrollerseite leichter zum handhaben ist.
fritz01h
Beiträge: 6
Registriert: 6. August 2011 11:22

Re: Lesen eines Datenstromes über USB mittels Qt-Programm

Beitrag von fritz01h »

Wenn man sich auskennt, gibt es offensichtlich verschiedene Möglichkeiten. Ist denn libftdi auch für USB einsetzbar?

Werde es mit der libusb probieren. Nicht zuviel auf einmal.

Bitte auch noch einen Tipp, wie die libusb zu installieren ist.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Re: Lesen eines Datenstromes über USB mittels Qt-Programm

Beitrag von upsala »

Du hast doch Linux, verwende halt den Paketmanager zum installieren
fritz01h
Beiträge: 6
Registriert: 6. August 2011 11:22

Re: Lesen eines Datenstromes über USB mittels Qt-Programm

Beitrag von fritz01h »

Hallo,
hatte in der Zwischenzeit libusb und libfdti verglichen und festgestellt, dass die FTDI-Chips sehr gut geeignet sind zur Anbindung von Mikrocontrollern an einen PC. Hab mir also die FTDI-HW besorgt und an die vorhandenen µC (MSP430) angepasst. Hat auf Anhieb funktioniert.
Bedanke mich für die Tipps.
Gruß Helmut
Antworten