COM1 immer serielle Schnittstelle?

Gast #5165396
Lesenswert?

Ist bei jedem PC COM 1 die serielle Schnittstelle, vorausgesetzt er 
besitzt noch eine serielle Schnittstelle? Oder kann die serielle 
Schnittstelle auch mal COM2 oder COM 3 oder ... sein?

Ich muss zwischen zwei Geräten anhand der COM-Nummer auswählen. Eins 
schließe ich mit einer seriellen Schnittstelle an und eins mit USB. Kann 
ich mir sicher sein, dass COM1 stets das Gerät mit der seriellen 
Schnittstelle ist und der andere COM-Port das Gerät mit USB ist???
Gast #5165462
Lesenswert?

Du kannst in der Registry den Device Pfad auslesen, da siehst du dann 
über welchen Treiber das läuft. USB ist z.B. FTDIBUS, onboard COM z.B. 
über ACPI.
Wenn du FTDI Chips nutzt, programmiere in deren EEPROM eine Seriennummer 
und Descriptor, dann ist das eindeutig und behält beim Umstecken die 
Nummer. Alternativ wenn du eigene Geräte baust hol dir eine USB VID und 
PID.
Gast #5165537
Lesenswert?

dul schrieb:
> Ist bei jedem PC COM 1 die serielle Schnittstelle, vorausgesetzt
> er
> besitzt noch eine serielle Schnittstelle? Oder kann die serielle
> Schnittstelle auch mal COM2 oder COM 3 oder ... sein?
>
> Ich muss zwischen zwei Geräten anhand der COM-Nummer auswählen. Eins
> schließe ich mit einer seriellen Schnittstelle an und eins mit USB. Kann
> ich mir sicher sein, dass COM1 stets das Gerät mit der seriellen
> Schnittstelle ist und der andere COM-Port das Gerät mit USB ist???

Wenn du mit serieller Schnittstelle die eingebaute und mit D-Sub9 
herausgeführte meinst, dann wird die sich nicht von alleine ändern. Nur 
die USB-Seriell Wandler ändern sich mit stecken auf einen anderen Port 
gerne mal.
Gast #5165550
Lesenswert?

Vka schrieb:
> Du kannst in der Registry den Device Pfad auslesen

Dazu gibt es eigentlich geeingnetere API-Funktionen. Mittels 
SetupDiGetClassDevs, SetupDiEnumDeviceInterfaces kommt man an die Liste 
der seriellen Schnittstellen und mittels SetupDiGetDeviceInterfaceDetail 
dann an den Device Pfad. Über SetupDiOpenDevRegKey kommt man an den 
Registry Key unter dem man u.a. den Portnamen findet (der nicht 
notwendigerweise mit 'COM' anfangen muß). Über 
SetupDiGetDeviceRegistryProperty kommt man an etliche weitere Infos, 
z.B. den 'Friendly Name' wie er im Gerätemanager angezeigt wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren