Aby mohl modem začít posílat SMSky, není třeba žádná speciální konfigurace. Potřebujete mít v pořádku rychlost a formát znaku na sériovém rozhraní a pokud máte na SIM kartě zapnutý PIN, tak je třeba ho po zapnutí modemu napřed zadat přes AT+CPIN=1234 . Modem po zapnutí a zadání PINu potřebuje odhadem 10 vteřin, aby se zaregistroval do GSM sítě a inicializoval SIM. SMS zprávy se posílají příkazem AT+CMGS, který může fungovat ve dvou režimech: textovém a binárním (PDU). V továrním nastavení je zapnutý textový režim. Textový režim (default, AT+CMGF=1) ================================== AT+CMGS="telefonní číslo" textová zpráva Příklad: AT+CMGS="+420602123456" ahoj Kombinace kláves CTRL+Z v terminálovém emulátoru posílá ASCII znak "SUB" (substitute), tj. bajt 26 desítkově resp. 0x1A hexadecimálně. ASCII znak (Carriage Return) má hodnotu 0x0D hexa (13 desítkově) a v terminálovém emulátoru je běžně odesílán klávesou Enter, případně v Telnetu CTRL+Enter. Ve zdrojovém kódu jazyka C ho lze zapsat jako '\r'. PDU režim (binární) =================== Přepnutí do PDU režimu se provede příkazem AT+CMGF=0 a následně se formát AT příkazu CMGS trochu změní: AT+CMGS= Podrobnosti o binárním režimu lze nalézt na internetu, např. http://www.gsm-modem.de/sms-pdu-mode.html http://www.dreamfabric.com/sms/ POZOR: modemy Maestro mají ve standardním nastavení tu "vlastnost", že pokud máte nastavený PDU režim (CMGF=0), při příchodu SMS se režim automaticky přepne na textový (CMGF=1). Toto je vedlejší efekt běhu OpenAT aplikace SmartPack, která realizuje vedle autonomního TCP/IP stacku také například vzdálené ovládání přes SMS (v některých modelech modemů). Pokud Vám toto vadí, a funkce SmartPacku nepotřebujete, můžete SmartPack vypnout příkazem AT+WOPEN=0 (lze později opět zapnout pomocí AT+WOPEN=1) Není třeba ani provádět AT&W, AT+WOPEN si pamatuje nastavení "sám". Kdy se používá flashka, a která =============================== Při základním odeslání zprávy přes AT+CMGS se nepoužívá flahka, zpráva se neukládá do SIM ani do interní flashky modemu. Při AT+CMSS (= odeslání uložené zprávy) pochopitelně potřebujete mít napřed zprávu uloženou ve flashce (pomocí AT+CMGW). Při příjmu zpráv jsou dvě možnosti: A) přijaté zprávy ukládat do flashky (default) na SIM nebo v telefonu B) přijaté zprávy lokálně neukládat, pouze forwardnout nevyžádanou hláškou rovnou koncovému zařízení (TE) - tento režim se nastaví pomocí AT+CNMI=2,2,0,0,0 (jde zřejmě především o druhý argument CNMI, tzn. AT+CNMI=x,2,x,x,x) Příklad "přímého doručení na TE": AT+CNMI=2,2,0,0,0 OK +CMT: "+420736630449",,"14/02/12,14:16:13+04" Ajajaj <<-- text zprávy (jsme v textovém režimu) at+CMGL="REC READ" OK <<-- žádné přečtené zprávy ve flashce AT+CMGL="REC UNREAD" OK <<-- žádné nepřečtené zprávy ve flashce Pokud chcete flashku používat, máte na výběr, zda ukládat zprávy do SIM nebo do interní flashky modemu (další okrajové možnosti pominu, ukládat uživatelské textovky do RAM modemu bohužel není možné). Volbu úložiště provedete příkazem AT+CPMS. Schválně zkuste: AT+CPMS? (všimněte si, že vypisuje i obsazenou a celkovou kapacitu) AT+CPMS=? (co je na výběr) Jak nastavit modem, aby neukládal nic na SIMku = "SM" (default), ale všechno do interní flashky "ME": AT+CPMS="ME","ME","ME" Rozlišují se tři "okruhy použití", pro které lze nastavit aktuální úložiště: 1. argument: pokud si prohlížíte zprávy jednotlivě (AT+CMGR) nebo hromadně (AT+CMGL) nebo zprávy mažete (AT+CMGD), bavíme se o tomto úložišti 2. argument: do tohoto úložiště ukládá zprávy AT+CMGW pro odeslání AT+CMSS 3. argument: toto úložiště se používá pro uskladnění přijatých zpráv (irelevantní, pokud nastavíte AT+CNMI=2,2,0,0,0) Čili můžete někam zprávy přijímat, jinam si je připravovat k odeslání, a nezávisle na těchto dvou volbách si můžete vybrat, které z obou úložišť máte na mysli, když žádáte zprávami listovat nebo je mazat.