Komunikujeme

V předchozích dílech jsme se naučili jak pracovat s komponentou Vacomm a vyzkoušeli jsme si přímé řízení linek sériového portu. Dnes budeme pokračovat a začneme opravdu komunikovat s mobilním telefonem

Než se pustíme do samotného dekódování SMS ukážeme si na jednoduchém přikladě, jak komunikovat s MT. Zjistíme výrobce telefonu, typ, sílu signálu, stav baterie, IMEI a jiné zajímavé údaje o telefonu.
Všechny tyto údaje lze z mobilního telefonu získat pomocí tzv. AT příkazů. Na následujících řádcích jsem připravil vysvětlení těch, které nás dnes budou zajímat.

AT+CGMI - vrátí výrobce telefonu. Například SIEMENS
AT+CGMM - vrátí typ telefonu
AT+CGSN - vrátí IMEI telefonu
AT+COPS? - vrátí operátora
AT+CSQ - zjistí sílu signálu
AT+CBC
- zjistí stav baterie

Praktická zkouška

Spusťte si terminál, v systému Windows byste měli mít standardně Hypertermínál. (START -> PŘÍSLUŠENSTVÍ -> KOMUNIKACE). Nastavte příslušný COM port, rychlost na 19200, bez využití parity, 8 bitů, 1 stop bit a řízení žádné.

Otestujte komunikaci
Pro výpis zpráv budeme používat následující barevné značení. Toto odesíláte, toto Vám vrací Mobilní telefon.

AT
OK

Tímto jste si ověřili, že mobilní telefon komunikuje s PC. Dále si můžeme ověřit, zda funguje zjištění výrobce mobilního telefonu.

at+cgmi
SIEMENS

OK


V mém případě je výrobcem MT fy Siemens (Pracuji se Siemens C35). Pokud máte mobilní telefon jiného výrobce, zcela analogicky vám MT vrátí jiný řetězec. Dále si můžeme ověřit typ mobilního telefonu.

at+cgmm
C35i

OK


V tomto případě byl vrácen řetězec určující typ MT.

Vytvářime první program pro komunikaci s MT

Nejprve tedy začneme tvorbou formuláře. Bude nám stačit několik tlačítek pro odeslání příkazů (nebo chcete-li jedno pro odeslání všech najedou – rozumí se postupně ale v řadě za sebou – je vhodné je oddělit pauzou 200 ms.), komponenta MEMO, kam nám budou informace chodit a samozřejmě komponenta Vacomm.




 Jak vidíte, aplikace nevypadá zase tak zle. Pro nejdůležitější funkce máme zvláštní tlačítka, jiné příkazy si můžeme vyzkoušet po zadání do komponenty EDIT1. Mějte ale na paměti, že telefonu nějakou dobu trvá než přijme třeba celou SMS a proto je vhodné ji vypisovat a po přijetí celé zprávy. Tady je obsluha jednoho tlačítka

procedure TForm1.Button1Click(Sender: TObject);
begin
   memo1.Clear;
   Vacomm1.WriteText('AT+COPS?'+#13);
   sleep(200);
end;


   Obsluha při příchodu zprávy vypadá následovně:

procedure TForm1.VaComm1RxChar(Sender: TObject; Count: Integer);
var text: string;
begin
   text:=Vacomm1.ReadText;
   Memo1.Lines.Add(text);
end;


   Čekání 200 ms bylo vysvětleno už výše, ale raději ještě jednou. MT nějakou dobu trvá než přijme celou zprávu a proto by se mohlo lehce stát, že budete mít výsledek na několika řádcích.
   Odeslání obsahu v edit1 je i pro pro začátečníka podle výše uvedených procedur maličkost.
   Vysvětlení si jistě zaslouží escape sekvence #13. ENTER (CR). Podle této značky MT pozná, že přikaz je již kompletní a může ho zpracovávat.


Pro představu jsem umístil na web dokument  popisující sadu AT příkazů pro mobilní telefon SIEMENS C35i. Obsahuje nejen jejich výčet, ale také  jejich popis.

V příštím díle se můžete těšit na dekódování SMS.

Komentovat článek

Jméno:  
Zpráva:

Komentáře k článku

článek zatím nikdo nekomentoval