USB- oder COM-Schnittstelle ansprechen
-
Ich möchte eine Funktion schreiben, mit der ich USB-Geräte und Geräte an seriellen Schnittstellen wie RS-232 ansprechen kann und benutzerdefinierte Signale senden kann. Nun meine Frage: Ist ein USB-Port auch eine serielle Schnittstelle, und wie kann man Geräte an solchen Schnittstellen, egal, ob seriell oder nicht, ansprechen?
Die Funktion sollte in etwa so aussehen:
void sendSignal(int signal, int com) { switch(com) { case 1: //COM 1 case 2: //COM 2 //usw. } return; }
Ich freue mich auf eure Antworten!
-
USB-Geräte sind i.A. aus Sicht einer Anwendung keine seriellen Schnittstellen (sofern sie nicht gerade nur USB<->RS232-Wandler sind)
Was soll das denn für ein Signal sein dass du den Geräten schicken willst?
Zugriff auf serielle Schnittstellen allgemein:
http://www.robbayer.com/files/serial-win.pdf
-
Eine hervorragende Library für einen bequemen Umgang mit der seriellen Schnittstelle unter Windows:
http://www.codeproject.com/KB/system/serial.aspx
-
Es gibt durchaus USB-Devices die sich über einen virtuellen COM-Port
ansprechen lassen. Es muss in diesem Fall der entsprechende Gerätetreiber
installiert werden.Es gibt auch die Möglichkeit USB-Geräte direkt über die WinUSB-Schnittstelle
anzusprechen.Für einige Devices, wie z.B. Webcams wäre in jedem Fall DirectShow die beste
Wahl.Bei Eigenentwicklungen wäre es empfehlenswert einen USB-Chip zu verwenden,
der vom Hersteller mit entsprechenden (Kernel-)Treibern (32bit, 64bit, COM
oder über eine Lib, Windows, Linux u.s.w.) unterstützt wird.