SMS per AT-Befehl

Problemhilfe zur Nutzung von MWconn
Forumsregeln
Um eine schnellere Hilfe bei nicht offensichtlichen Problemen zu bieten, ist es oft erforderlich, ein so genanntes Servilog wiki/index.php/Serviceprotokoll zu erstellen.
Antworten
MBreuer
Beiträge: 3
Registriert: Mo 21. Dez 2009, 10:44

SMS per AT-Befehl

Beitrag von MBreuer » Mo 21. Dez 2009, 11:35

Ich habe eine C++ Applikation geschrieben die das erste Programmargument
in den Commandstring des shared Memory einträgt.
Anschliessend wird 5 Sekunden gewartet, aufgeräumt und der Inhalt des shared Memory
wie im Manual beschrieben ausgegeben.

Folgende AT Befehle habe ich erfolgreich abgesetzt, die Antworten stehen in der Klammer:
Hersteller :::AT+cgmi (huawei)
Modell :::AT+cgmm (160)
Änderungsnummer :::AT+cgmr (11.604.18.01.00)
Seriennummer :::AT+cgsn (354764036173931)
IMSI des SIM :::AT+cimi (262075003626903)
Format f. Nachrichten :::AT+cmgf=? (+CMFG: (0-1))

Das Senden einer SMS habe ich noch nicht geschafft hier erbitte ich Hilfe.

Was habe ich getan ?
- Erstellen der PDU Nachricht wie in http://www.nobbi.com/sms_pdu.html beschrieben
- Aufruf: Shared.exe :::AT+cmgs=23
- Antwort: >
- Aufruf: Shared.exe :::<pdu-String>
- Antwort: >
- Aufruf:Shared.exe :::1a
Der Aufruf soll die PDU mit CTRL-Z (0x1A) abschliessen.
- Antwort: >

Dies Funktioniert so nicht wie muss ich es machen ?

Opilionn
Administrator
Beiträge: 719
Registriert: Sa 26. Jul 2008, 18:25

Re: SMS per AT-Befehl

Beitrag von Opilionn » Mo 21. Dez 2009, 12:54

Hallo und willkommen im Forum! :-)

Was bei den üblichen AT-Kommandos klappt, funktioniert leider beim SMS-Versand nicht. Per Shared Memory lässt sich ein AT-Befehl absetzen und eine Antwort erhalten. Gleich danach schickt MWconn wieder eigene Befehle ans Modem. So kann es passieren, dass das Modem zwar auf dein :::AT+cmgs=23 mit > antwortet, danach aber nicht der PDU-String gesendet wird, sondern der nächste AT-Befehl, den MWconn grad senden will, z.B. AT+CSQ. Das führt dann natürlich zu einem PDU-Formatfehler, und der SMS-Sendevorgang wird abgebrochen. Du kannst dir das Durcheinander anschauen, wenn du das Service-Protokoll aktivierst.
Eine Möglichkeit, den AT-Kommandoport zu "reservieren", um in Ruhe alle eigenen AT-Befehle zu senden, gibt es bei MWconn derzeit nicht.

Was genau hast du eigentlich vor? Geht es in diesem Fall nur um den SMS-Versand? Dann könntest du das entweder an MWconn vorbei erledigen, das heißt, MWconn nicht starten oder, sofern MWconn benötigt wird, vielleicht auf eine parallel laufende Verbindung verzichten und den Modem-Port für den SMS-versand verwenden.
Noch einfacher wär es, die SMS als Datei in den Ordner "sms_send" zu schreiben. Genauso macht das auch CONFIG.exe, wenn du eine SMS versendest. MWconn in der Instanz UMTS.exe, GPRS.exe usw. schaut regelmäßig in diesen Ordner und versendet die darin befindlichen SMS.

Grüße Opilionn

MBreuer
Beiträge: 3
Registriert: Mo 21. Dez 2009, 10:44

Re: SMS per AT-Befehl

Beitrag von MBreuer » Mo 21. Dez 2009, 14:12

Danke für die Antwort,

das Schema mit dem Ordner habe ich schon erfolgreich versucht,
ich bin jetzt dabei zu probieren welche Möglichkeiten ich selbst habe per Programm zu steuern.

Schön wäre es wenn der volle Umfang der AT-Befehle genutzt werden könnte.

Ich schlage dann vor die Funktionalität um einen Command-Mode zu erweitern. In diesen kann geschaltet werden
und nach dem Absetzen der Kommandos kann er zum nutzen der Standardfunktionen wieder verlassen werden.


Kann ich den AT Befehl vielleicht in einer Zeile absetzen ? Ich habe gelesen das das Trennen durch Semikolon möglich ist.

Gibt es eine Liste der AT Befehle die nicht funktionieren ?

Opilionn
Administrator
Beiträge: 719
Registriert: Sa 26. Jul 2008, 18:25

Re: SMS per AT-Befehl

Beitrag von Opilionn » Mo 21. Dez 2009, 15:27

MBreuer hat geschrieben:Ich schlage dann vor die Funktionalität um einen Command-Mode zu erweitern. In diesen kann geschaltet werden
und nach dem Absetzen der Kommandos kann er zum nutzen der Standardfunktionen wieder verlassen werden.

Kann ich den AT Befehl vielleicht in einer Zeile absetzen ? Ich habe gelesen das das Trennen durch Semikolon möglich ist.
Vom Programm her wärs einfacher, wenn man eine Logik für Befehle einbaut, die den ">"-Prompt liefern. Mir fällt dazu übrigens nur der AT+CMGS-Befehl ein, könnt aber sein, dass es noch andere gibt. Der erste und der zweite Teil eines solchen Befehls könnte dann auf einen Rutsch an MWconn übergeben werden.
MBreuer hat geschrieben:Gibt es eine Liste der AT Befehle die nicht funktionieren ?
Grundsätzlich gibt MWconn jeden Befehl 1:1 ans Modem weiter. Probleme wirds also nur bei Befehlen geben, die "rückfragen", aber da kenn ich grad nur diesen einen.

Antworten