Unbekannter COM Port wird geöffnet...
-
Hallo,
ich beschäftige mich grade hobbymässig mit einem Programm, das über eine serielle Schnittstelle kommunizieren soll. Ich habe ein Laptop und einen "RS232 zu USB Konverter" - weiss nicht, wie man die Dinge genau bezeichnet. Man steckt sie in einen USB Port und hat dann eine virtuelle COM Schnittstelle. Geräte-Manager und WinXP zeigt mir unter "Anschlüsse (COM und LPT)" dann genau einen COM Port "Prolific USB-to-Serial Comm Port (COM4)". Ich hatte in meinem Programm ungefähr folgenden Code:
TCHAR szCommPortName[] = TEXT("\\\\.\\COM4"); ... hFileCom = CreateFile( &szPortName[0], (GENERIC_WRITE | GENERIC_READ), FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); ...
Und es hat alles wunderbar funktioniert. Nun dachte ich, ich mach es besser. Mit einer Schleife, die sich szCommPortName[] von TEXT("\\\.\\COM1") bis TEXT("\\\.\\COM16") zusammenbastelt und den ersten gefundenen Port öffnet.
TCHAR szPortName[256u]; for (i = 0u; i < maxPorts; ++i) { if (INVALID_HANDLE_VALUE == hFileCom) { /* generate COM device name */ memset(&szPortName[0], 0, sizeof(szPortName)); wsprintf(&szPortName[0], TEXT("\\\\.\\COM%u"), comCnt); /* count next COM port */ ++comCnt; /* try open it */ hFileCom = CreateFile( &szPortName[0], (GENERIC_WRITE | GENERIC_READ), FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (INVALID_HANDLE_VALUE == hFileCom) { ... } else if (0 == SetCommState(hFileCom, &dcb)) { ... } else { ... } } }
Merkwürdig ist nun, dass eine mir unbekannte Schnittstelle TEXT("\\\.\\COM3") geöffnet wird. Wie kann das sein, hat jemand eine Idee? Wie gesagt, Geräte-Manager zeigt mir unter "Anschlüsse (COM und LPT)" genau einen COM Port "Prolific USB-to-Serial Comm Port (COM4)"...
-
COM3 ist in Deinem Fall mit großer Wahrscheinlichkeit der COM-Port für das eingebaute Modem.
Es kann aber auch eine Serial-over-Bluetooth Funktion sein.Martin
-
Danke schön für die Info, ich habe tatsächlich ein eingebautes Modem, dessen serielle Schnittstelle, wenn es denn eine haben sollte, interessanterweise nicht im Geräte-Manager erscheint...
-
abc.w schrieb:
Danke schön für die Info, ich habe tatsächlich ein eingebautes Modem, dessen serielle Schnittstelle, wenn es denn eine haben sollte, interessanterweise nicht im Geräte-Manager erscheint...
Mach sie mal im Hyper-Terminal auf, und tipp
AT
(plus Entertaste). Wenn dann einOK
zurückkommt, dann ist es mit hoher Wahrscheinlichkeit ein Modem.
-
Unglaublich, aber wahr, es kommt ein OK zurück!
Danke schön für die Aufklärung!