modemfan hat geschrieben:Bist du sicher das 2 anwendungen gleichzeitig auf einem COMport zugreifen können?
Normalerweise nicht. Das ist physikalisch ja auch sinnlos und außerdem verhindert Windows so etwas.
ABER: NT-Windows-basierte Windows-Versionen (WinNT, Win2000, WinXP) haben kein "echtes" DOS mehr, sondern eine Emulation. Und sie virtualisieren die COM-Ports. Und schon seit Windows 95 (oder 98) gibt es da nicht nur maximal die physikalischen COMs, sondern auch virtuelle. D.h. man kann auf COM1 bis COM255 zugreifen. Diese werden dann bei Bedarf auf real existierende COMs "umgemappt".
Obwohl ich MSIM nicht kenne, passiert aber meiner Meinung nach dieses "Ummappen" auch bei MSIM.
Du verwendest folgende Parameter:
msim /P1=COM1:9600,8N1 /P2=COM1:9600,8N1
Für mich sieht das so aus: Programm1 bekommt COM1 (9600 Baud, 8N1)
Programm2 bekommt auch COM1 (9600 Baud, 8N1)
Ich denke, es ist so gedacht, daß P1 der "echte" COM1 ist, der an Deinem Rechner dran ist und P2 bekommt dann einen virtualisierten COM1, d.h. dem Programm wird einfach ein COM1 "zugeteilt", der erstmal NIX mit dem realen COM1 zu tun hat. Dieser virtualisierte COM1 leitet die Daten durch zum echten COM1. Man könnte auch bei P2 z.B. COM2 schreiben und ganz andere Baudrate und so - die Daten würden dann trotzdem über den realen COM1 gehen.
In diesem Fall müßte man in dem Anwendunsprogramm (z.B. Telix) COM2 als den zu verwendenden COM eingeben.
Ich weiß jetzt nicht, ob P1 auf den "realen" COM zutrifft (also die COM-Buchse) und P2 auf das Programm - oder ob es umgekehrt ist. Das steht aber bestimmt in der Anleitung zu MSIM.
Was MSIM jetzt wahrscheinlich zusätzlich macht ist, daß es sich wie ein Modem verhält, d.h. daß es erst einmal auf die AT-Befehle reagiert, bis ein CONNECT erreicht ist. Du wirst natürlich NIE einen RING erhalten, weil ja außem am COM nichts dranhängt, was den erzeugen würde (ein Anruf, der RI ändert). Aber Du kannst nun mit Telix "anrufen", d.h. Du gibst so Modem-Befehle von Hand ein oder machst das automatisch mit der Anrufliste.
Um ein Modem zu resetten, heißt der Befehl:
AT&F
Um einfach nur mal zu gucken, ob ein Modem dran ist, heißt es
AT
(Bei allen Befehlen kommt nachher ein OK vom Modem zurück. - Es gibt noch viele andere Befehle.)
Ahja, ein Modem sendet nicht immer automatisch das eingegebene Zeichen zurück. Es kann sein, daß das sogenannte "Echo" auf AUS steht. D.h. man gibt die Befehle "blind" ein, ohne, daß etwas auf dem Bildschirm zu sehen ist. Um das Echo anzuschalten:
ATE1
(Ausschalten mit ATE0)
Um nun einen Anruf zu simulieren, muß man ATDT, gefolgt von einer Telefonnummer eingeben, z.B.:
ATDT08005996633
Natürlich sollte man eine Nummer eingeben, von der man weiß, daß auf der anderen Seite ein Modem hängt. Ansonsten geht da eben ein Mensch ran.
Mal eine Frage: Hast Du auch irgendwo ein echtes Modem? (Normalerweise kriegt man die schon hinterhergeschmissen.Vielleicht gibts so'n Ding im eBay oder so...)
Meine Frage, was genau Du eigentlich mit der Modem-Simulation vorhast, hast Du eigentlich immer noch nicht beantwortet. Ich meine: Klar, man kann sich über ein simuliertes oder echtes Modem irgendwo einwählen - und was dann? Ein Modem ist ja nicht nur dazu da, um so AT-Befehle auszutauschen und mit dem Terminalprogramm herumzuspielen, sondern in erster Linie, um Daten zu übertragen (über die Telefonleitung). Wenn man irgendwie aus Dir herausbekäme, was Du eigentlich mit diesem ganzen Kram bezweckst, könnte man Dir viel besser helfen. Möglicherweise gehst Du ja auch von der falschen Seite ran und es gibt einen besseren und einfacheren Weg, um das zu tun, was immer Du tun willst. Dazu müßte man aber wissen,
WAS DAS IST.