Hallo!
Ich versuche derzeit - noch vergeblich - eine SMS via Handy (Nokia 6310)
zu verschicken. Und zwar über AT-Befehle
<http://de.wikipedia.org/wiki/AT-Befehlssatz >.
Und zwar mit AT+CMGS im PDU-Modus! <http://www.nobbi.com/sms_pdu.htm /
http://www.nobbi.com/atgsm.htm >
Irgendwo ist aber noch ein Fehler drinnen! :(
Habe mir manuell meinen Hex-Code zusammengeschrieben und der PDUspy
wertet das auch schon mal richtig aus.
Code: 079194710600403325000C9194716915XXXX00000BD4F29C4E2FE3E9BA4D19
(letzte vier Ziffern der Empfängeradresse zensiert)
Der decodierte PDU-Code analysiert mit PDUspy:
1
PDU LENGTH IS 31 BYTES
2
ADDRESS OF DELIVERING SMSC
3
NUMBER IS : +491760000433 // ist der SMSC für o2 Germany Loop (Prepaid)
PDU-Modus ist ein (AT+CMGF=0).
Was mir gerade gekommen ist.. kann es eventuell am Strg+Z liegen? Hab
aber eben auch gerade noch ein Strg+Y probiert... klappt auch nicht! :(
Ich weiß nicht mehr weiter. Hoffe, dass mir von euch jemand helfen kann.
Der ein oder andere hat vielleicht schon Erfahrung mit AT-Befehlen und
Drumherum.
Str-Z ist schon richtig. Ich hab deinen String jetzt auf die Schnelle
nicht genau analysiert. Aber hast Du versucht, die SMS mit PDU-Spy
direkt zu senden? Da kannst Du dann erstmal prüfen, ob deine Message
wirklich funktioniert, oder ob er einen Fehler anzeigt. Ich hatte es
auch schon einige Male, dass ich eine gültige Message erzeugt hab, aber
aufgrund falscher Parametereinstellung hats nicht geklappt die zu
senden.
Gruß
>Das Problem wird die Längenangabe sein:
Das kann sein.. da war ich mir bisher auch noch nicht so ganz sicher.
>--> at+cmgs=49<LF>>>Es muß die Anzahl der übergebenen Zeichen ohne SMSC angegeben werden,>wobei jede Stelle als ein Zeichen zählt (00 -> 2 Zeichen).
Also SMSC inkl. Längenangabe ist das hier: "0791947106004033" da komme
ich dann auf eine Gesamtlänge von 46 Bytes und nicht auf 49 Bytes, oder?
Aber weder das eine, noch das andere klappt leider.
>>stell mal 00 vor die Nachricht.>>Wozu sollte das gut sein? Schon mal 'ne SMS per PDU versendet?
Na ja - ist nicht ganz unberechtigt, falls gemeint war statt dem SMSC
mal ein 00 zu übergeben. Hab ich aber auch schon probiert -- aber sollte
ich nochmal tun. Dürfte aber nix ausmachen meiner Meinung nach.
>Str-Z ist schon richtig. Ich hab deinen String jetzt auf die Schnelle>nicht genau analysiert. Aber hast Du versucht, die SMS mit PDU-Spy>direkt zu senden? Da kannst Du dann erstmal prüfen, ob deine Message>wirklich funktioniert, oder ob er einen Fehler anzeigt. Ich hatte es>auch schon einige Male, dass ich eine gültige Message erzeugt hab, aber>aufgrund falscher Parametereinstellung hats nicht geklappt die zu>senden.
Mach ich gleich mal. Aber Decodieren hat ja zumindest mal einwandfrei
geklappt. Mal schauen. Welche Parametereinstellungen meinst du da zum
Beispiel?
Danke an euch alle! :)
>[...] Aber hast Du versucht, die SMS mit PDU-Spy>direkt zu senden?
Wie geht das denn? Aber der PDU-Code stimmt im Prinzip. Man kann ihn da
ja auch manuell zusammensetzen. Habe mir jetzt diesen generiert und es
kommt exakt der gleiche Code raus. Wenn ich das über das Programm sende
(in der Registerkarte "Create") funktioniert das auch. :(
Liegt's vielleicht doch an diversen White-Spaces oder Steuerzeichen?
Müsste vielleicht meinen <LF> noch kontrollieren? Nachdem ich Windows
nutze könnte da eventuell ein <CR> noch ein Zeichen beanspruchen und
dann stimmt die Länge auch schon nicht mehr? :| Ärgerlich. Bestimmt nur
eine Kleinigkeit.
Aber danke soweit. Tipps sind immer gut! :)
Hallo 100k,
ja, ich versende sms via bluetooth an ein Handy, und das funktioniert.
Bei pduspy kam bei mir immer ne falsche Länge raus, genauer gesagt immer
1 zuviel. Nachdem ich 00 beim Header vorangestellt hatte läuft das
Ganze.
>Bei pduspy kam bei mir immer ne falsche Länge raus, genauer gesagt immer>1 zuviel. Nachdem ich 00 beim Header vorangestellt hatte läuft das>Ganze.
Hm und welche Code-Länge schlägst du dann vor, dass ich angeben soll?
Ich befürchte, dass da nix bringen wird, aber einen Versuch ist es immer
wert.
>Was für ein Telefon? Ich verwendete Siemens S25-S45 über Kabel. Da waren>solche Tricks nicht nötig.
Ist ein Nokia 6310. Ja, ich hab gelesen, dass bei einem Siemens so
einige Tricks weniger nötig sind. ;) Da braucht man zum Beispiel auch
kein spezielles Datenkabel (DLR-3) und kommt statt dessen mit 3 Drähten
klar, richtig? Hehe aber was meinst du sonst noch? Weil's einen
Text-Modus gibt? Gäbe es bei mir glaube ich sogar auch. Müsste ich auch
noch probieren. Aber ich dachte mir wenn schon, denn schon. Eventuell
kann ich's noch brauchen - früher oder später.
Hallo
Vorweg: das Siemens S25 unterstützt keinen Textmodus, soweit ich weiß.
Eine Frage, die ich nicht oben rauslesen kann. Hast du den SMS-Code oben
selbst geschrieben.
Ich hab mal eine Alarmanlage mit SMS gebaut, und da auch Versuche zuerst
mit Handy gemacht.
Beschreibung http://www.emagu.de/alarmanlage.htm
Ich hab das andersherum aufgezogen:
Eine SMS schreiben und im Handy speichern.
Dann mit AT+CMGL=4 listen - auf Hyperterminal
Bei Ausgabe ist die erste Stelle die Platznummer wo es abgespeichert
ist.
Und dann mit AT+CMSS=1 ans Hyperterminal rausschicken.
1 = Speicherstelle.
Dann hat man schon mal den Code, so wie es vom Handy kommt.
Übrigens ist der original AT-Befehlssatz vom Hersteller super. Ich hab
das von Siemens mal gegoogelt. Ist ein dickes Handbuch.
Gerhard
Ich hab grad nochmal in meinen Code geschaut. Ich habe als Länge die
Anzahl der Bytes genommen. Dabei zählt die SMSC nicht mit. Ich hab also
den String, den ich nach dem ">" Promt schicken will. Von dem ermittel
ich die Länge und teile diese durch 2 (mit einem shift right). Danach
ziehe ich noch eins ab. Ich arbeite nämlich mit fest vorkonfigurierter
SMSC und übergeb die nicht extra, daher steht da bei mir nur 00 statt
der SMSC. Du müstest bei dir die Anzahl der Bytes der SMSC abziehen. Du
kannst den PDU Spy ja auch mal an hyperterminal hängen und gucken, was
er als Befehl ausgibt.
Gruß
Hi!
>Eine Frage, die ich nicht oben rauslesen kann. Hast du den SMS-Code oben>selbst geschrieben.
Ja, per Hand zusammengefrickelt via <http://www.nobbi.com/sms_pdu.htm >
bzw. <http://www.riccibitti.com/tinyplanet/tiny_sidebar.htm >. Hab's
dann aber mal wie erwähnt mit PDUspy zerlegt und das sah gut aus. Und
dann selber noch mit PDUspy codiert.. und da kam das gleiche raus. Also
verifiziert meiner Meinung nach. :)
>Eine SMS schreiben und im Handy speichern.
Per Hand? Also auf dem Handy wo's noch nicht angeschlossen war? Na ja
ich will ja später dynamisch SMS generieren. Und nicht vorher eine
festlegen, die dann schon im Handy codiert vorliegt.
>Übrigens ist der original AT-Befehlssatz vom Hersteller super. Ich hab>das von Siemens mal gegoogelt.
Ja klar.. da hab ich mich vorher schon auch informiert. Hab hier das "AT
Command Set For Nokia GSM And WCDMA Products" als pdf. Werde mir deine
Projektseite mal genauer ansehen, danke.
Auszug aus der o.g. Doku:
1
AT+CMGS Send Message
2
3
3GPP TS 27.005, Section 3.5.1 /3/. Sends a message from a TE to the
4
network (SMS-SUBMIT). The message reference value <mr> is returned to the
5
TE on successful message delivery. Sending can be cancelled with the <ESC>
6
character. <ctrl-Z> must be used to indicate the ending of the message
7
body. Text/PDU is entered as specified in 27.005.
8
9
10
Text mode (+CMGF=1):
11
+CMGS=<da>[,<toda>]<CR>
12
text is entered<ctrl-Z/ESC>
13
PDU mode (+CMGF=0):
14
+CMGS=<length><CR>
15
PDU is given<ctrl-Z/ESC>
>Du müstest bei dir die Anzahl der Bytes der SMSC abziehen.
Okay. Hatten wir ja glaube ich weiter oben schon mal. Werde ich aber
gleich noch mal versuchen.. kann mich nämlich auch nicht mehr so richtig
entsinnen. Das mit den Halbbytes ist schon klar. :)
>Du kannst den PDU Spy ja auch mal an hyperterminal hängen und gucken, was>er als Befehl ausgibt.
Das geht??! Wow.. cool. Wie denn? :D
Danke euch soweit! :]
Naja, PDU-Spy geht auf die Serielle Schnittstelle. Dan nimmste nen
Nullmodemkabel und hängst es an eine andere Schnittstelle dran, die du
mit Hyperterminal ansprichst. Ist zwar umständlich, aber sollte gehen.
Gruß
>>Du müstest bei dir die Anzahl der Bytes der SMSC abziehen.>Okay. Hatten wir ja glaube ich weiter oben schon mal. Werde ich aber>gleich noch mal versuchen.. kann mich nämlich auch nicht mehr so richtig>entsinnen. Das mit den Halbbytes ist schon klar. :)
Yeaaah.. Erfolg!! Vielen lieben Dank!
>Naja, PDU-Spy geht auf die Serielle Schnittstelle. Dan nimmste nen>Nullmodemkabel und hängst es an eine andere Schnittstelle dran, die du>mit Hyperterminal ansprichst. Ist zwar umständlich, aber sollte gehen.>>Gruß
Achso. Ich dachte das ginge eventuell softwareseitig. Man weiß ja nie.
:D Aber Problem ist nun ja (vorerst) gelöst. Bis die nächste(n) Frage(n)
auftauchen. Danke nochmal an alle Beteiligten! :))
Hi Peter,
freut mich für Dich.
Nur als Nachtrag zu meiner Hauruckmethode - abspeichern und ausdrucken:
--- Dann mit AT+CMGL=4 listen - auf Hyperterminal ---
Das hätte auch die Länge ausgegeben, und man sieht, dass der String
länger ist.
Das war übrigens nur zur Fehlersuche gedacht.
@Daniel
saubere Arbeit
schönen Gruß
Gerhard