Modem mit AT-Befehlen direkt ansteuern

Nachdem ich jetzt mich schon seit zwei Tagen tot google probier ichs also mal hier :smile: .

Ich möchte mein Modem mit at-Befehlen direkt steuern, was ich auch über das hyperterminal schon geschafft habe. Mein Problem ist aber das ich ein kleines script geschrieben habe und nun nicht weiß welches programm dieses list und die enthaltenen befehle an das Modem sendet. Es sollen eig nur nach einander 2 Nummer angerufen werden. Hier das script:

AT D P 87230;
,
AT H 0
,
AT D P 87231;
,
AT H 0

Das ziel soll sein das ich nur auf eine .exe , .bat was auch immer klicken muss und dieses script dann erfolgreich ausgeführt wird.

Um Fragen zu vermeiden: Ich möchte damit relais in unserer Telefonanlage steuern, es müssen also keine Daten empfangen werden oder ähliches. Es muss quasie nur klingeln.

MfG banick

Moien

Wenn du Glück hast reicht eine .bat mit:

copy commands com1

und deinem Hyperterminal-Commands in der Datei commands (oder halt com2, com3,…).

cu

nein geht nicht, da ja copy nur ganze dateien kopiert. Und das auch nur auf Laufwerke bzw. Verzeichnisse. Und der com-Port zählt nicht als solches.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo!

Du kannst doch „copy commands > COM1:“ and die serielle Schnittstelle schicken, oder nicht? Früher konnte man ja auch Texte auf diese Weise an einen Drucker schicken, z.B. „copy XYZ.txt > LPT1:“, was der Drucker dann auch druckte. Warum sollte das nicht auch mit COM1: gehen?

Grüße

/Reinhard

Moien

Warum sollte das nicht auch mit COM1: gehen?

Das geht schon, glaubt nur halt keiner.

Die Syntax hat sich allerdings mit der Zeit geändert. Das : am Ende ist nicht in allen DOS-Varianten und Consolen notwendig (kann mir aber nie merken bei welchen man muss und bei welchen nicht. XP ging glaub ich ohne, 2k aber nur mit …). Auch das > muss nicht immer.

cu

also ich habs mal über die Eingabeaufforderung im XP probiert (was anderes macht ja dann die .bat auch nicht. Das sieht dann aber (leider) bei mir so aus:
C:\Dokumente und Einstellungen\seb>copy AT DP 38 > COM1
Das System kann die angegebene Datei nicht finden.
oder über die extra Datei (welches format muss die eig haben? Hab mal .txt und ohne alles probiert) kam immer der gleiche fehler. war auch egal ob mit oder ohne doppelpkt. am ende.
Was mache ich falsch???

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moien

Warum sollte das nicht auch mit COM1: gehen?

Das geht schon, glaubt nur halt keiner.

Die Syntax hat sich allerdings mit der Zeit geändert. Das : am
Ende ist nicht in allen DOS-Varianten und Consolen notwendig
(kann mir aber nie merken bei welchen man muss und bei welchen
nicht. XP ging glaub ich ohne, 2k aber nur mit …). Auch das
> muss nicht immer.

cu

also ich habs mal über die Eingabeaufforderung im XP probiert
(was anderes macht ja dann die .bat auch nicht. Das sieht dann
aber (leider) bei mir so aus:
C:\Dokumente und Einstellungen\seb>copy AT DP 38 >
COM1
Das System kann die angegebene Datei nicht finden.
oder über die extra Datei (welches format muss die eig haben?
Hab mal .txt und ohne alles probiert) kam immer der gleiche
fehler. war auch egal ob mit oder ohne doppelpkt. am ende.
Was mache ich falsch???

VorPS :smile: : Kann man den hier seine posts nicht nachträglich bearbeiten? naja

So jetzt gehts los:
Ich hab nochmal ein bissel gelesen und probiert und herausgefunden das mein modem am com3 hängt. Nun aber schon das nächste problem: Ich habe mir gedacht, das ja theoretisch bei folgendem befehl das befreffende telefon klingeln müsste, was aber nicht tut. Ein Fehler kommt auch nicht in der Eing-Auff. Achso der Befehl lautet:
C:\Dokumente und Einstellungen\seb>AT D P 38 > com3

HILFE

Moien

C:\Dokumente und Einstellungen\seb>copy AT DP 38 > COM1

Ich sagte doch: schreibt die Befehle in eine Datei rein. Kopier dann die Datei auf COM. copy nimmt die Zeichenkette AT DP 38 als 3 Dateinamen. Das wird die Datien AT und DP suchen und dann evtl. die Datei 38 erzeugen … oder sonst was tun.

C:\Dokumente und Einstellungen\seb>AT D P 38 > com3

Das sucht das Commando AT mit den Parametern D und 38 und schreibt die Ausgabe nach com3 (Datei oder Port, weiss ich bei der XP-Console nicht).

cu

echo!
Moin Männer,

das mit der Datei wird nicht funktionieren, weil dabei auch end-of-line und CR-Befehle mit übertragen werden.

Geht mit echo auf die Schnittstelle:

echo AT D P 38 >com3

und bei mehreren Befehlen dann mehrere echos in eine Batchdatei.

lg, mabuse

Moien

das mit der Datei wird nicht funktionieren, weil dabei auch
end-of-line und CR-Befehle mit übertragen werden.

Hayes Commandos werden mit CR abgeschlossen. Ohne CR keine Ausführung. Das CR ist wichtig. LR, EOF,… usw nicht.

Geht mit echo auf die Schnittstelle:

Das schickt CR+LR mit.

Ist aber egal: Modems ignorieren alles bis das nächste AT kommt (gibt 2 Ausnahmen, braucht man aber nur selten). Man könnte den Teilen zwischen den Commandos auch sonstwas an den Kopf werfen. Reagiert wird erst nach einem „AT command \0x0d“ (\0x0d ist CR und die Leerzeichen sind wurscht).

EOF ist der Teilen auch egal.

echo AT D P 38 >com3

Sollte funktionieren.

cu

Also langsam zweifel ich an mir selber. Völlig egal welche der hier beschriebenen Methoden ich verwende, es passiert einfach mal garnix. Es dauert ne halbe sec dann ist der befehl laut win.XP ausgeführt (alos kommt keine fehlermeldung) aber es passiert rein garnix. Liegt das an meinem modem? Ich habe ein fest eingebautes (Laptop) Motorola SM56 Data Fax Modem. Hier nochmal die Eing.-Auff.:
C:\Dokumente und Einstellungen\seb>echo AT D P 38 >com2
Das System kann die angegebene Datei nicht finden.

C:\Dokumente und Einstellungen\seb>echo AT D P 38 >com3

C:\Dokumente und Einstellungen\seb>echo AT D P 38 >com4
Das System kann nicht auf das angegebene Gerät schreiben.

C:\Dokumente und Einstellungen\seb>echo AT D P 38 >com5
Das System kann nicht auf das angegebene Gerät schreiben.

Darauß habe ich erstmal geschlussfolgert, das zumindest das modem wirklich an com3 hängt (über „Tera Term Pro“ (Terminalprog) kann ich aber an diese schnittstelle bloß erfolgreich „AT“ senden, beim gesamten Befehl kommt immer „no dialtone“. Über Hyperterminal und die Wählhilfe kann ich ohne probl. wählen, da sehe ich aber leider nie welche schnittstelle er benutzt.
Ich hoffe ihr habt mich noch nicht als hoffnunglosen fall abgetan.

MfG banick

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moien

Liegt das an meinem modem? Ich habe ein
fest eingebautes (Laptop) Motorola SM56 Data Fax Modem.

Das ist ein WinModem ohne eigene Hardware (Ist ne Soundkarte mit Relais zum Abheben). Sollte eigentlich funktionieren.

Darauß habe ich erstmal geschlussfolgert, das zumindest das
modem wirklich an com3 hängt

An com3 hängt irgendwas, ja.

(über „Tera Term Pro“
(Terminalprog) kann ich aber an diese schnittstelle bloß
erfolgreich „AT“ senden

Kommt da ein OK zurück?

, beim gesamten Befehl kommt immer „no dialtone“.

Du hast das Telefonkabel nicht angeschlossen? Dialtone ist der Dauerpiep den man beim normalen Telefon vor dem Wählen hört. Ohne Dialtone wählt das Modem nicht.

Über Hyperterminal und die Wählhilfe kann ich ohne
probl. wählen, da sehe ich aber leider nie welche
schnittstelle er benutzt.

Hyperterminal zeigt die Schnittstelle in den Eigenschaften der Verbindung an.

Der Scherz bei der ganzen DOS/Consolen-Fummelei ist der Mode, also die Kommunikationsparameter zwischen Modem und PC. Bei WinModem sollte es keine Probleme geben, aber sicher weiss man das nie. Also in Hyperteerminal rausfinden auf was die Schnittstelle eingestellt ist (9600 8,n,1 als Beispiel) und den gleichen Modus auf der Console mittels mode-Befehl setzen.

cu

Moien

Liegt das an meinem modem? Ich habe ein
fest eingebautes (Laptop) Motorola SM56 Data Fax Modem.

Das ist ein WinModem ohne eigene Hardware (Ist ne Soundkarte
mit Relais zum Abheben). Sollte eigentlich funktionieren.

Darauß habe ich erstmal geschlussfolgert, das zumindest das
modem wirklich an com3 hängt

An com3 hängt irgendwas, ja.

(über „Tera Term Pro“
(Terminalprog) kann ich aber an diese schnittstelle bloß
erfolgreich „AT“ senden

Kommt da ein OK zurück?

ja kommt ein ok (deswegen erfolgreich)

, beim gesamten Befehl kommt immer „no dialtone“.

Du hast das Telefonkabel nicht angeschlossen? Dialtone ist der
Dauerpiep den man beim normalen Telefon vor dem Wählen hört.
Ohne Dialtone wählt das Modem nicht.

Das kabel ist angeschlossen und es geht (über Wählhilfe kann ich ja wählen, und es klingelt auch das entsprechende Telefon)

Über Hyperterminal und die Wählhilfe kann ich ohne
probl. wählen, da sehe ich aber leider nie welche
schnittstelle er benutzt.

Hyperterminal zeigt die Schnittstelle in den Eigenschaften der
Verbindung an.

also entweder du liegst falsch, oder ich bin blind. Jedenfalls finde ich den punkt nicht wo die Schnettstelle beschrieben ist. Bei „verbindung herstellen über“ steht direkt das Modem mit namen drin. Wenn ich da com3 eintrage habe ich die selbern effekte wie über „Tera Term Pro“ und er schreibt warum auch immer alle zeichen die ich eingebe doppelt (drücke einmal ganz kurz a und er schreibt aa, wenn ich ganz schnell at eingebe schreibt er atat).
Bei Konfieguration kann ich nur sachen zur übertragung und Modemeinstellungen vornehmen. direkt bei einstellungen habe ich bei emulation auto erkennung. Auch da finde ich nicht was deinem bsp ähnelt.

Der Scherz bei der ganzen DOS/Consolen-Fummelei ist der Mode,
also die Kommunikationsparameter zwischen Modem und PC. Bei
WinModem sollte es keine Probleme geben, aber sicher weiss man
das nie. Also in Hyperteerminal rausfinden auf was die
Schnittstelle eingestellt ist (9600 8,n,1 als Beispiel) und
den gleichen Modus auf der Console mittels mode-Befehl setzen.

cu

Trotzdem danke für die schnelle antwort und die Gedult

Moien

Das kabel ist angeschlossen und es geht (über Wählhilfe kann
ich ja wählen, und es klingelt auch das entsprechende Telefon)

Mach mal ATD

Dein AT DP schaltet auf Pulsewahl um. Pluse muss das Modem nicht unbedingt können. Wenn deine Telefonanlage das braucht wird es komplexer.

Alternativ: AT H1. Dann sollte die Leitung belegt sein (überprüfs indem du die entsprechende Nummer anwählst).

Hyperterminal zeigt die Schnittstelle in den Eigenschaften der
Verbindung an.

also entweder du liegst falsch, oder ich bin blind.

Ich hab kein Hyperterminal und kanns auf die schnelle nicht finden. Aber wenn bei com3 ein OK zurück kommt ist alles klar: com3 ist der richtige und der Mode past.

… und er schreibt warum auch
immer alle zeichen die ich eingebe doppelt

Aus der Windows-Hilfe:

  1. Klicken Sie in HyperTerminal im Menü Datei auf Eigenschaften.

  2. Klicken Sie auf der Registerkarte Einstellungen auf ASCII-Konfiguration.

  3. Deaktivieren Sie das Kontrollkästchen Eingegebene Zeichen lokal ausgeben (lokales Echo).

cu

Also ich denke ich habe mein Problem bzw. den Fehler gefunden:

Mein Modem sendet keinen Dialtone. Aber es scheint auch ohne zu gehen, denn wenn ich in der Wählhilfe sage, er soll einfach nicht auf ihn warten sondern gleich drauf los wählen dann gehts.
Kann ich das dem Modem irgendwie per Console verklickern, das es einfach loswählt?
Und dann noch eine Frage: Wie müsste es in der eing.-Auff. denn aussehen wenn es funktioniert. Wird dann eine Meldung ausgegeben, oder bleibt die Zeile solange stehen wie das Telefon klingelt, oder geht er dann auch quasie sofort zur nächsten Zeile über und das Telefon klingelt solange wie ich den Befehl zum Auflegen gebe?

Achso und dann noch eine Frage, was ziemlich sicher die lösung bringen würde (hoffentlich) was macht denn Hyperterminal anders wenn ich ihm sage „sprich mein modem“ oder ich ihm sage „gib an com3 die Befehle aus“. Weil bei ersterem geht es ja ohne probs.

Also ich denke ich habe mein Problem bzw. den Fehler gefunden:

Mein Modem sendet keinen Dialtone. Aber es scheint auch ohne
zu gehen, denn wenn ich in der Wählhilfe sage, er soll einfach
nicht auf ihn warten sondern gleich drauf los wählen dann
gehts.
Kann ich das dem Modem irgendwie per Console verklickern, das
es einfach loswählt?

hab den befehl gefunden, lautet: atx3 so jetzt geht es schonmal über hyperterminal auch wenn ich direkt den com3 anspreche. Bloß über die Console kommt zwar kein Fehler aber wenn ich die beiden befehle sende kommt einfach immernoch keine wirkung.

C:\Dokumente und Einstellungen\seb>echo at x3 >com3

C:\Dokumente und Einstellungen\seb>echo at d38 >com3

C:\Dokumente und Einstellungen\seb>

Ich hab mir jetzt ein macro für Tera Term Pro geschrieben und jetzt gehts (endlich).

Danke an alle die mir versucht haben zu helfen.

Moien

hab den befehl gefunden, lautet: atx3

Kann auch X1 sein, je nach Modem.

Bloß über die Console kommt zwar kein Fehler aber
wenn ich die beiden befehle sende kommt einfach immernoch
keine wirkung.

Beide Commandos müssen in einem Rutsch übertragen werden. Wie in der allerersten Antwort: mach eine Datei und kopier die rüber.

echo AT X3 D 38 > com3 oder echo AT X3 AT D 38 > com3 können auch gehen, hängt vom Modem ab.

cu