www.mikrocontroller.net

Forum: PC-Programmierung SMS via terminal rs232 über AT+cmgs Problem


Autor: Jannik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe eine kleine Frage bezüglich dem AT befehl cmgs der eine sms 
senden soll.
Wenn alles soweit funktioniert, soll es später mit in einen mc 
integriert werden. Zunächst die Trockenübung übers Hyperterminal.

Die Verbindung zum Handy (Siemens S35) ist einwandfrei.

Ich habe mit hilfe einer kleiner Software einen "passenden" PDU 
generiert.

PDU: 0021000B801007214365F700000158

PDU LENGTH IS 15 BYTES
NO SMSC ADDRESS PRESENT
MESSAGE HEADER FLAGS
  MESSAGE TYPE :  SMS SUBMIT
  REJECT DUPLICATES :  NO
  VALIDITY PERIOD :  NOT PRESENT
  REPLY PATH :  NO
  USER DATA HEADER :  NO UDH
  REQ. STATUS REPORT :  YES
  MSG REFERENCE NR. :  0 (0x00)

DESTINATION ADDRESS
  NUMBER IS :  01701234567
  TYPE OF NR. :  Unknown
  NPI :  Unknown

PROTOCOL IDENTIFIER  (0x00)
  MESSAGE ENTITIES :  SME-to-SME
  PROTOCOL USED :  Implicit / SC-specific

DATA CODING SCHEME  (0x00)
  AUTO-DELETION :  OFF
  COMPRESSION :  OFF
  MESSAGE CLASS :  NONE
  ALPHABET USED :  7bit default

VALIDITY OF MESSAGE :  NONE GIVEN

USER DATA PART OF SM
  USER DATA LENGTH :  1 septets
  USER DATA (TEXT) :  X

Dann gebe ich doch wie folgt ins terminal ein

at+cmgs=15 //Enter
> 0021000B801007214365F700000158 //Enter und danach passiert nichts mehr. Wieso? 
danach muesste ich doch noch einmal ein > zurueckbekommen und die message 
reference = 0 eingeben, oder?

Wuerde mich sehr ueber Eure Hilfe freuen.

Gruss
Jannik

Autor: Psiyou ... (psiyou)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal zur Doku con cmgs, nach dem PDU muss ein Strg+z (ESC) folgen 
und kein Enter.

Autor: Olaf Stieleke (olaf2001)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Strg+z ist EOT (ASCII 26), nicht ESC (ASCII 27). Ansonsten völlig 
korrekt.

Autor: Psiyou ... (psiyou)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups, sorry. Da bin ich wohl irgendwie verrutscht. Muss natürlich EOT 
sein...

Autor: Jannik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, wunderbar :) es funktioniert..

Wenn ich das jetzt über den Mikrocontroller realisieren möchte,

Schicke ich ihm folgendes?!

"at+cmgs=15"; //1. String
_delay_ms(1); //Muss man hier abwarten oder etwas abfragen?
"0021000B801007214365F700000158"; //2. String
_delay_ms(1); //Warten oder Abfragen von irgendwelchen Statusbits 
notwenig?
"EOT als ASCII zeichen"; //3. String


Gruß
Jannik

Autor: Psiyou ... (psiyou)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

das hängt alles etwas davon ab wie Du Dein Handy eingestellt hast.
Würde das ungefähr so initialisieren:
ATZ   (alles Rücksetzen)
ATE0  (kein Echo der Zeichen)
ATV0  (bestätigung als Nummerkennung)

Dann kannst die Delays weglassen.
Probiers einfach in einem Terminal, am besten HTerm oder so aus, da 
siehst auch was so an CR/LF übertragen wird. Das unterscheidet sich gern 
mal von Handy zu Handy bzw von den Einstellungen.
Da siehst dann auch was rein kommt und worauf Du warten musst bzw welche 
Daten abgearbeitet werden müssen.

Gruß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.