SMS (scurt pentru serviciul de mesaje scurte) este una dintre cele mai bune modalități de a furniza informații scurte în formă text.
Utilizarea SMS vă permite să rezolvați următoarele sarcini:
- informații despre evenimentele pentru răspuns rapid.
Pentru interacțiunea cu modemul, se utilizează comenzi AT. Acest format este susținut de majoritatea modemurilor moderne. Modemul se conectează la calculator prin portul COM, fizic sau virtual. Atunci când este conectat printr-un port virtual, de exemplu, USB sau Bluetooth pot fi utilizate ca un canal de comunicare.
Comenzile AT pot fi procesate numai de modem atunci când este în modul comandă. Majoritatea modemurilor intră în modul de comandă imediat după pornire. Intrarea comenzilor în modul de operare modem direct este recunoscută de către modem ca introducere de date. Comenzile primite sunt confirmate de ieșirea mesajului [Ok] la terminal.
Majoritatea comenzilor AT (cu excepția a două) încep cu prefixul la. Excepția este secvența de evacuare +++ și comanda de repetare. Comenzile sunt insensibile pentru litere mici. Dimensiunea maximă (fără a include spațiile și caracterele returnate) ale comenzii este de 39 de caractere.
Comenzi AT pentru lucrul cu SMS
+++ - secvență de evadare. Folosit pentru a transfera modemul de la modul de conectare la modul de comandă;
o - transferul la modul online, utilizat pentru restaurarea comunicării după intrarea în secvența de evacuare;
/ - repetați ultima comandă introdusă;
AT + CMGF = * - setarea modului de operare, * - 0 pentru modul digital sau 1 pentru modul text. Trimiterea mesajelor în alfabetul chirilic este posibilă prin intermediul modului digital cu transcodarea preliminară a textului în UCS.
AT + CMGS = * - trimiterea de mesaje SMS, * - textul mesajului în formatul stabilit de comanda AT + CMGF, în modul text acest format este utilizat:
AT + CMGS = [recipient_name] [Enter]
[Mesaj text] [Ctrl + Z]
Pentru a trimite un mesaj în modul digital, se folosește formatul PDU:
AT + CMGS = [lungimea mesajului] [Enter]
[SMS Numărul centrului] [starea mesaj] [numărul de transmis cu succes] [lungimea și numărul expeditorului] [lungimea numărul destinatarului] [formatul numeric] [numărul de destinație] [identificator de protocol] [a salva SMS-uri] [charset] [livrarea mesajului de timp] [ lungimea textului] [text] [Ctrl + Z]
Explicații la câmpuri:
[lungimea mesajului] - lungimea întregului mesaj primit în octeți;
[Enter] - întoarcerea căruciorului, în formă hexazecimală este 0x0D;
[Numărul centrului SMS] - lungimea numărului și a numărului centrului SMS. 00 - utilizați numărul din setările cusute în cartela SIM;
[starea mesajului] - 11 pentru mesajul trimis, 00 pentru mesajul primit;
[numărul transferate cu succes] - este setat de dispozitiv, inițial trebuie să fie 00;
[lungimea și numărul expeditorului] - lungimea numărului și a numărului expeditorului. 00 - utilizați valoarea implicită;
[lungimea numărului destinatarului] - lungimea numărului destinatarului;
[format format] - 91 pentru format internațional, 81 pentru local;
[numărul destinatarului] - numărul destinatarului în format PDU;
[identificator de protocol] - pentru SMS este 00;
[save sms] - 0 - pentru a salva mesajul, 1 - mesajul este afișat pe ecran (sms flash);
[codificare] - 0 - latină, 1 - chirilă;
[ora de livrare a mesajului] - timpul de livrare al mesajului, după expirarea timpului în cazul în care mesajul nu este livrat, acesta va fi distrus, timpul SMSC este indicat;
[lungimea textului] - lungimea textului mesajului;
[text] - textul mesajului tradus în format USC2;
[Ctrl + Z] - sfârșitul comenzii, în formă hexazecimală, este 26.
Toate valorile numerice (lungimile șirului) sunt transmise în notație hexazecimală.
Comanda pentru a trimite mesajul "Hello world!" La numărul 79876543210 în modul text, arată astfel:
Bună ziua! [Ctrl + Z]
Pentru a trimite un astfel de mesaj la același număr, dar folosind modul digital, trebuie să îl transferați în modem:
AT + CMGL = * - citirea mesajelor din memoria modemului, * - una dintre cele cinci valori, în funcție de modul (CMGF) folosește un text sau parametru numeric, valorile parametrilor din tabelul 1;
AT + CMGD = * - ștergeți mesajul din memoria modemului, * - numărul mesajului.
Parametrii de comandă AT + CMGL
Când primiți un mesaj în modul digital, acesta arată astfel:
[Număr de centru SMS] [starea mesajului] [lungimea și numărul expeditorului] [identificatorul protocolului] [codarea] [lungimea textului] [textul]
Din mesajul original este diferit: starea mesajului este 00, nu există nici un astfel de domeniu, întrucât numărul destinatarului și câmpul asociat cu acesta, câmpul salva sms, și livrarea mesajului timp de câmp.
Luați în considerare principalele puncte de implementare practică. De exemplu, voi folosi codul Java.
Pentru conectarea la un dispozitiv utilizat de clasa jssc.SerialPort.SerialPort pentru a inițializa obiectul este trecut la numele portului șir constructor. Când este conectat prin COM4:
SerialPort serialPort = noul SerialPort ("COM4");
Apoi portul este deschis și conexiunea este configurată:
Pentru a trimite comenzi către dispozitiv, folosim metoda writeString a obiectului SerialPort, de exemplu setarea modului de expediere a mesajelor:
char Enter = 0x0D; // Simvolperevodakaretki serialPort.writeString ( "AT + CMGF = 0" + Enter);
privatestatic String reversPhone (telefon String)
dacă (phone.length ()% 2 == 1)
String phoneRev = "";