COM-Port eines Modems ermitteln

Hallo zusammen,

hier nun die angedeutete Fortsetzung …

Und zwar gibt es eine Möglichkeit zu ermitteln an welchem Port sich ein Modem meldet, was ja u.U. schon variieren kann, wenn z.B. beim Einstecken der PCMCIA-Karte der bisherige schon durch eine andere Peripherie belegt wurde!!

Wenn ich an Win-Tools wie winmsd denke, besitzt jedes Gerät eine Kennung, es sollte doch demnach möglich sein, den Port zu öffnen, eben diese auszulesen und mittels Stringvergleich zu prüfen!! Doch wie komm ich an diese Kennung ran?? Steht sie evtl. auch in dem DCB-Struct??

Schon mal vielen Dank im Voraus für Tipps und Anregungen!!

Grüße

Hallo Fragewurm,

Und zwar gibt es eine Möglichkeit zu ermitteln an welchem Port
sich ein Modem meldet, was ja u.U. schon variieren kann, wenn
z.B. beim Einstecken der PCMCIA-Karte der bisherige schon
durch eine andere Peripherie belegt wurde!!

Über das API kannst du eine Liste der vorhanden COM-Ports abfragen.

Dann musst du versuchen jedes Port zu öffnen. Wenn dies nicht gelingt ist entweder das Port schon in Verwendung oder gar nicht vorhanden (kann trotz der Liste so sein).

Dann schaust du ob die Statusleitungen anzeigen, dass da ein Gerät auf das Öffnen reagiert, kann aber immer noch z.B. ein NULL-Modem sein.

Dann kannst du über den passenden AT-Befehl die Modemkennung abfragen und auswerten. Ist irgendwo bei den AT-Befehlen beschrieben (Modemansteuerung ist bei mir schon Jahre her, ich habe die Befehle nicht mehr im Kopf).
Auf jeden Fall ist es einer der einfachen AT-Befehle, also einer welcher kein Sonderzeichen ("+" und was war da noch?) zwischen „AT“ und dem eigentlichen Befehl hat.

MfG Peter(TOO)

Hallo Fragewurm,

Hallo Meister (muss mir noch einen passenderen Spitznamen einfallen lassen ^^)

Über das API kannst du eine Liste der vorhanden COM-Ports
abfragen.

Dann musst du versuchen jedes Port zu öffnen. Wenn dies nicht
gelingt ist entweder das Port schon in Verwendung oder gar
nicht vorhanden (kann trotz der Liste so sein).

Dann schaust du ob die Statusleitungen anzeigen, dass da ein
Gerät auf das Öffnen reagiert, kann aber immer noch z.B. ein
NULL-Modem sein.

Dann kannst du über den passenden AT-Befehl die Modemkennung
abfragen und auswerten.

Hmm, ist dieser Umstand denn notwendig?? Gibt es nicht über die serielle Schnittstelle eine Möglichkeit den Gerätetyp/bezeichnung direkt zu erhalten, wenn Du schon erwähnst, dass die API einem eine Geräteliste zur Verfügung stellt oder ist diese nicht mit den Information, die man z.B. über den Win-Gerätemanager erhält vergleichbar??

… Ist irgendwo bei den AT-Befehlen
beschrieben (Modemansteuerung ist bei mir schon Jahre her, ich
habe die Befehle nicht mehr im Kopf).
Auf jeden Fall ist es einer der einfachen AT-Befehle, also
einer welcher kein Sonderzeichen ("+" und was war da noch?)
zwischen „AT“ und dem eigentlichen Befehl hat.

Damit ich mal beweisen kann, dass ich auch was weiß bzw. die Doku verwenden kann :wink: der Befehl lautet …

ATI
mit einer angefügten Ziffer kann man noch weitere Infos wie Seriennummer und Firmwarestand ausgeben lassen!

Grüße

tobeit

Hallo tobeit,

Über das API kannst du eine Liste der vorhanden COM-Ports
abfragen.

Hmm, ist dieser Umstand denn notwendig?? Gibt es nicht über
die serielle Schnittstelle eine Möglichkeit den
Gerätetyp/bezeichnung direkt zu erhalten, wenn Du schon
erwähnst, dass die API einem eine Geräteliste zur Verfügung
stellt oder ist diese nicht mit den Information, die man z.B.
über den Win-Gerätemanager erhält vergleichbar??

Du verwechselst da etwas !!
Das API gibt dir an wieviele COM-Ports vorhanden sind, nicht was daran angeschlossen ist !
Da kann dann auch gar nichts angeschlossen sein.

Damit ich mal beweisen kann, dass ich auch was weiß bzw. die
Doku verwenden kann :wink: der Befehl lautet …

ATI
mit einer angefügten Ziffer kann man noch weitere Infos wie
Seriennummer und Firmwarestand ausgeben lassen!

Nachschauen hätte ich auch selber gekonnt, war nur zu faul :wink:)

MfG Peter(TOO)

Hmm, ist dieser Umstand denn notwendig?? Gibt es nicht über
die serielle Schnittstelle eine Möglichkeit den
Gerätetyp/bezeichnung direkt zu erhalten, wenn Du schon
erwähnst, dass die API einem eine Geräteliste zur Verfügung
stellt oder ist diese nicht mit den Information, die man z.B.
über den Win-Gerätemanager erhält vergleichbar??

Hallo,

mit Gerätelisten kommst du nicht weit - es muss ja nicht PCMCIA sein, es könnte auch ein USB-Adapter sein oder Com via Ethernet oder womöglich sogar eine echte Schnittstelle mit UART, das kannst du nie alles erkennen. Und wie Peter schon sagte, dann muss auch noch lange kein Modem dranhängen.

Virtuelle COM-Ports treten unter den unterschiedlichsten Namen auf, auch bei gleicher Funktion. Bei mir heissen die Com-Ports z.B. „Lantronix Comport Redirector Device (COM5)“ und „NetMOS PCI Serial Port (COM4)“. Hübsch ist besonders der Eintrag „NetMOS Unusable Parallel Port (LPT3)“. Du siehst, der Fantasie sind keine Grenzen gesetzt.

Gruss Reinhard

Hallo Fragewurm,

Möglicherweise hast du auch den falschen Weg eingeschlagen.

Wie du es jetzt gemacht hast, das Modem direkt über die COM anzusteuern.

Der andere Weg wäre über das TAPI.
Dazu benötigst du aber einen Treiber zum Modem.
Im Prinzip ist das nur eine .INF-Datei welche angibt welche AT-Befehle verwendet werden müssen und welche Status-Meldungen was bedeuten.

Über TAPI musst du dann nicht wissen wo und wie das Modem angeschlossen ist und wie die AT-Befehle lauten. Es gibt dann z.B. nur noch eine Funktion welcher du die anzuwählende Nummer übergibst, die Umsetzung in den AT-Befehl und auch, wenn nötig, die Amtsholung ist dann im Treiber eingestellt.

Diese Entscheidung musst du aber selber Treffen. Keiner hier weiss, wie deine Aufgabenstellung genau lautet.

MfG Peter(TOO)