Hallo Mikrocontroller Freunde kann mir jemand sagen wie ich über den Hyperterminal eine gerade angekommende SMS einlesen kann? S55 Siemens Ich habe schon die Links und Datenblätter durchgewälst und auch sehr viel brauchbares gefunden.. Nur in der Realisierung hapert es.. Kann mir jemand die benötigten AT-Befehle in der richtigen Reigenfolge mal demonstrieren. mit feundlichen Grüßen Christian Beispiel aus einem Datenblatt... at+cmgl=x Auslesen der mit x angegebenen Teilmenge von Kurznachrichten aus dem mit +CPMS eingestellten Speicherbereich. Die Nachrichten werden im folgenden Format ausgegeben: +CMGL: index, status, length .......PDU.......
Hallo Forum Freunde Hat vieleicht jemand einen guten Ratschlag für mich Mit freundlichen Grüßen Christian
Falls das Siemens S55 nur SMS im PDU-Mode unterstuetzt, kommt man um das dekodierden der PDU nicht herum, das kann ein "normales" Terminalprogramm nicht. Im Text-Mode erhaelt man die SMS in Klarschrift im Terminal-Fenster. Man kann testen, ob SMS im Text-Mode vom ME unterstuetzt wird: AT+CMGF=1<CR> falls dies vom ME mit OK beantwortet wird, kann man im Anschluss SMSe mit AT+CMGR=<idy><CR> aus dem aktiven Speicher (normalerweise Kartenspeicher) auslesen. (Nicht 100% sicher bei den AT-Befehlen, muesste aber so klappen. Im Zweifel in der Dokumentation zu AT-Befehle nach "text-mode" suchen)
Hallo Tomas das S55 kann nur PDU-Mode. Das ist auch nicht so das Problem. Ich währe schon glücklich wenn ich diesen String endlich vom Handy an den Terminal gesendet bekomme. d.h. Ich möchte doch nur eine SMS die gerad3e angekommen ist mit dem Hyperterminal einlesen. AT+CMGR=<idy><CR> Kannst du mir vieleicht noch mailen was man bei idy hereinschreib. Mit freundlichen Grüßen Christian
Hallo Weitere Frage zu diesem Thema Wenn ich den Befehl AT an das Handy sende antwortet es mit OK so weit so gut(HyperTerminal). Dieses OK möchte ich jetzt mit meinem Controller AT89S8252 empfangen und auf einem Display darstellen. d.h ich sende AT und möchte nun das OK einlesen. Kann mir vieleicht jemand etwas über meinen Fehler im Quellcode sagen. Es ist ein kleines Beispiel mit dem ich AT sende(funktioniert) und jetzt das OK einlesen möchte. Quellcode void main() { unsigned char speicher_1; LCD_INI(); LCD_text(0x80,"SENDEN"); LCD_kursor(2); SMS_INI(); SMS_anruf("AT"); while (RI == 1); speicher_1 = SBUF; LCD_variable(0x90,speicher_1); RI = 0; zeit(); speicher_1 = SBUF; LCD_variable(0x91,speicher_1); LCD_text(0xD0,"BEENDET"); while(1) { } } void SMS_anruf(unsigned char Text[]) { int lauf1,lauf2; lauf2 = strlen(Text); for(lauf1 = 0; lauf1 < lauf2; lauf1++) { SMS_warten(); SBUF = Text [lauf1]; SMS_warten(); while(TI == 0); TI = 0; } SBUF = 0x0D; // Enterbefehl SMS_warten(); while (TI == 0); TI = 0; SBUF = 0x0A; SMS_warten(); while (TI == 0); TI = 0; }
1. "SMS zum Terminal" falls ein push vom Handy nicht unterstuetzt wird, kann man immer noch pollen, Also alle paar Sekunden die Nachrichten auslesen (idy soll idx heissen. Ist der Index im Handy/Karten-Speicher). Kann man im Controller ueber eine Schleife implementieren (idx 1,x,1. x ist abhaengig von Handy/Karte). Das Statusfeld in der Antwort gibt an, ob es eine neue (unread) SMS ist oder eine alte. Falls unread PDU dekodieren und auswerten, dann die SMS im ME/auf der Karte loeschen (AT+CMGD(?)) egal ob unread oder "old". Diese Vorgehensweise funktioniert zumindest bei meinem "Fernschalter" recht zuverlaessig. 2. "OK": Zeichen von UART lesen, falls nicht "O" Zeichen verwerfen und naechstes Zeichen lesen ("auf ein O warten"), falls O, Zeichen aus UART lesen, falls "K" UART flushen (also $0d $0a ueberlesen) und Return. Falls nicht K wieder hochspringen zu "warte auf O". Mag mglw. nicht die eleganteste Loesung sein, aber funktioniert bei mir ganz gut.
Hallo MThomas Vielen Dank für die Information. Das muss ich gleich mal ausprobieren Mit freundlichen Grüßen Christian
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.