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.


Log in to reply