Programmierung der USB-Schnittstelle
-
Hallo Leute,
ich möchte ein kleines Konsolenprogramm schreiben, das die NMEA-Daten eines Garmin GPS-Gerätes über die USB Schnittstelle ausliest und auf der Konsole anzeigt. Über die serielle Schnittstelle hat das bereits funktioniert.
Beim Öffnen des USB-Ports und anschließendem Aufruf der Funktion "ReadFile()" hängt sich das Programm allerdings auf. Weiß jemand warum? Der Port ist auf jeden Fall geöffnet. Hier der Code:#include <Windows.h> #include <iostream> #include "conio.h" using namespace std; int main() { HANDLE hComm; DWORD dwRead = 0; char chRead; hComm = CreateFile ("\\\\.\\USB#Vid_091....}", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (INVALID_HANDLE_VALUE != hComm) cout << "open"; else cout << "not open"; ReadFile(hComm, &chRead, 1, &dwRead, NULL); cout << endl << chRead; getch(); return 0; }Ich habe es auch schon über die Funktion
DeviceIoControl( hComm, ??????, pIn, sizeof(szIn), pOut, sizeof(szOut), lpByte, NULL );probiert, weiß jedoch die Funktionsnummer (I/O-Control-Code) nicht. Hat jemand ne Ahnung wie man diese Nummer heraus bekommt?
-
Dieser Thread wurde von Moderator/in SideWinder aus dem Forum DOS und Win32-Konsole in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Wie meinst Du "über die serielle Schnittstelle hat es bereits funktioniert"?
Warum willst Du es dann anders machen?
Es gibt keinen Weg USB-Geräte direkt anzusprechen... Du musst immer über einen Geräte-Treiber gehen... i.d.R. ist dies für solche Geräte eine emulierte serielle Schnittstelle...