mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SMS Fehler


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo wiedermal,
ein Problem jagt das nächste! Was ist denn jetzt schon wieder an diesem
Stückchen Code falsch ? (Ich verwende seit neuestem den Bascom
Compiler)

Print "AT+CMGW=34"
Waitms 100
Print "01911100039121F30000AA05617ABBCC06" ; Chr(26);

Es wird einfach keine SMS gespeichert verrücktwerd. Einmal hatte ich
eine "Ungültige SMS im Ausgang", aber seitdem nie wieder etwas. Ich
habe es auch schon mit Chr(27) versucht, aber auch nix. Hat jemand nen
Tipp ?

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht liegt's daran:

lt. Siemens Developer-Guide zaehlt die SCA-Len nicht zur
Laenge der PDU (z.B. bei AT+CMGS/GMGW), so die PDU richtig
aufgebaut ist, kann man AT+...=32 und =33 ausprobieren.

<ctrl-z> ist $1A sollte als mit 26 schon richtig sein.

Erstmal mit Terminal-Programm ausprobieren (Br@y-Terminal -
sehr praktisch)

Autor: mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

müsste nicht nach jedem befehl ein chr$(13) also ein return kommen
damit das handy merkt dass der befehl abgechlossen ist ?

mfg
mike

Autor: Semme (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die oben genannte PDU die Originalversion ist (also keine spezielle
zum hier posten), dann probier als Länge doch mal 16 aus.

-> Print "AT+CMGW=16"

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hab da auch ne Weile getüftelt.
Der Fehler liegt an der Länge der PDU.
Ein super Programm das dir dabei hilft
ist pduspy.exe.
Einfach mal danach googeln.

Gruss Gerhard

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, es klappt immer noch nicht. Ich habe jetzt jede Länge ausprobiert.
Auch mit und ohne Chr(13) geht es nicht. Der PDU-String wurde übrigens
über diesen Link erstellt:

http://home.student.utwente.nl/s.p.ekkebus/portfol...

Das Problem, der keinen seinen eigenen Code nicht mehr entschlüsseln.
Also ich denk mal nicht das der dann so ganz fehlerfrei ist. Hat jemand
von euch einen PDU-String der auch 100%-ig funktioniert? Wenn ich einen
mit PDUspy erstelle und die Länge-1 probiere geht es auch nicht. Habt
ihr noch Tipps ?

Viele Grüße

Christian

Autor: Gerhard (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Christian ,

hab dir mal ne Word Datei angehängt
Bei mir hat das so geklappt.
Teste auch mal ob die Verbindung Handy - AVR
o.k. ist.

Sonst probier das ganze erst mal mit Hyperterminal .
Gruss Gerhard

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also vielen Dank für die Mühe erstmal! Aber das geht nicht bei mir, hab
ich schon die ganze Zeit so probiert. Die Verbindung Handy <--> AVR ist
in Ordnung. Befehle wie "ATD..." funktionieren ganz normal. Ist mir
echt ein Rätsel !?

Autor: Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das auch mit PDUSpy gemacht, allerdings ist die Länge die von
PDUSpy angezeigt wird nicht die richtige für den AT befehl.
Semme hatte da schon recht mit der Länge 16. Von der Länge die
Angezeigt wird, mußt du immer noch 1 abziehen.
Hast Du das ganze inzwischen mal mit dem Hyperterminal o.ä.
ausprobiert?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jawohl ! Vielen Dank. Jetzt hat es geklappt. Jürgen und Semme ihr habt
recht, da muß man 1 abziehen. Anscheinend hatte ich noch einen anderen
Fehler weil es vorher nie funktionierte! Egal, jetzt passt es ! THX !

0001000491805100001AC8309BFD0619DFF27ADB05B2A6CBECB21B440CBBD7A010

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch einen letzten Tipp von mir: Mir ist gerade aufgefallen das es nur
funktioniert wenn die Beleuchtung vom Handy (C35) aus ist. Das heißt,
ich darf ein paar Sekunden keine Taste drücken und wenn ich dann den µC
resette klappt die SMS Übertragung. Auf das muß man erstmal kommen!

----------------
THREAD CLOSED - Problem gelöst
----------------

Autor: Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was hat das mit dem Licht zu tun, zapfst Du dir die Spannung für den
Controller vom Handy ab??

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keine Ahnung warum das so zusammenhängt, aber glaub's mir einfach. Der
Befehl "AT+CMGW=.." funktioniert nur wenn die Beleuchtung vom Handy
aus ist. Spannung für den µC kommt nicht vom Handy.

Autor: Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Christian,
ich habe das jetzt gerade auch mal mit 'nem C35 ausprobiert, klappt
ohne Probleme, egal ob das Display leuchtet oder nicht.
Der einzige unterschied, zu den Handys die ich bisher probiert habe
ist, daß es nicht auf eine Baudrate von 9600 reagiert, sondern nur bei
19200. Vielleicht hat dein C35 ja 'ne Macke, wer weiß.

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Wie hast du es nun mit dem AT+CMGS=x gelöst?
Bei mir funktioniert die ganze Sache mit AT+CMGS=1 einwandfrei.
Das verwundert mich ein wenig und ich weiß auch nicht
ob ich das auf Dauer so lassen kann.
Hab insgesamt ca. 20 SMS gesendet und es war alles ok.
Seltsam oder? Habe auch verschiedene Netze probiert.

Gruß Helge

Autor: Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Helge
Ich arbeite im Controller nicht mit AT+CMGS=x sondern mit at+CMSS=x
damit versende ich dann eine Nachricht, die an Index x im SMS-Speicher
der Karte steht. Das macht das ganze auch etwas flexibler, da so der
Controller ja nicht die Telefonnummer 'wissen' muß.

Gruß Jürgen

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach langem Probieren funktioniert es nun endlich. Die Länge ist die von
"PDUspy angezeigte - 1". Dann noch ein paar Pausen und einmal "AT"
eingefügt, und siehe da, es läuft.

So z.B.:

Print "AT"
Waitms 500

Print "AT+CMGW=34"
Waitms 800
Print "01911100039121F30000AA05617ABBCC06" ; Chr(26);
Wait 2

Von dem Befehl "at+CMSS=x" hab ich noch nie was gehört. Wenn ich das
gewußt hätte, wäre mir viel Ärger erspart worden !

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Danke euch erstmal.Mit dem SMS Text von der Karte wäre ich nicht hin
gekommen weil die Karte öfter mit einer anderen getauscht wird.Aber mit
dem CMGW das werde ich mir noch mal durch den Kopf gehen lassen.
Gruß Helge

Autor: timmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Habe ebenfals ein Problem beim Versenden einer SMS. Ich habe ein
Termianl Programm geschrieben in Visual Basic wo ich die AT-Befehle
über die serielle Schnittstelle ans Handy schicke.
Meine Frage:
Wie kann ich Ctrl-Z in Visual Basic ausgeben?
chr(26) funtioniert nicht, kann mir jm helfen?

Programm:
Dim i As Long

    comPort.Output = "at+cmgs=22" + vbCrLf

        For i = 0 To 1000000        'wait
        Next i

    comPort.Output =
"0001000c9153021246499800000AE8329BFD4697D9EC37"

        For i = 0 To 100000
        Next i


    comPort.Output = Chr(26)

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chr(26) meint einfach nur das einzelne Zeichen (char) 26  oder auch $1A
in Hex

...so sehe ich das

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian und Jürgen, was für handys nehmt ihr denn da? auch was anderes
 ausser siemens und motorola? hat da schon jemand erfahrungen ob es
auch mit anderen handys und dem at-befehlen geht?

wie siehts aus mit der verbindung handy und atmel. per datenkabel oder
direkt auf die pins?

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei http://www.nobbi.com/index.htm gibt´s infos dazu. nokia scheint
probleme zu geben (wie so oft).
generell sollte jedes handy, das als modem an nen laptop geschlossen
wird gehen, oda?

Autor: Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mike ich hab bis jetzt nur Siemens Handys getestet. Die Verbindung wird
bei mir über ein Datenkabel hergestellt.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
falls es jemanden interessierne sollte... ich hab mich jetzt 2 tage mit
dem zeugs herumgeschlagen und hab jetzt einen schönen c-code der PDUs
generiert... den werd ich gleich mal für den AVR porten was eigentlich
ohne probs gehn müsste da ich nur libc funktionen verwende und die
werden auch noch rausfliegen...

und ganz so nebenbei hab ich mir ein prog geschrieben das com1 auf com2
weiterleitet... sprich das was auf com1 rein kommt geht auf com2
raus... und umgekehrt... das was da hin und her fliesst wird
angezeigt...ganz praktisch zum mitsniffn g


73 de oe6jwf /hans

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.