Baud rate na sériové lince ========================== AT+IPR= AT+IPR=19200 (default: AT+IPR=9600 nebo AT+IPR=115200, podle modelu) AT+IPR=0 = autobaud Možné hodnoty rychlosti: 300,600,1200,2400,4800,9600,19200,38400,57600,115200 Pozor, auto-baud se chytá na AT příkazy, první znak po resetu musí být "A". Pokud máte GPRS modem nastavený na "autoTCP" a připojené zařízení je pitomé, vůbec neví že mluví s modemem, v tom případě NELZE AUTOBAUD POUŽÍT ! Ostatně to je patrně důvod, proč je Autobaud standardně z výroby vypnutý (pevná rychlost). Formát znaku ============ Při autobaudu se formát znaku určuje automaticky, jinak je default 8N1. Pokud máte formát znaku jiný než 8N1 a DTE rychlost danou pevně, musíte také nastavit počty bitů a paritu příkazem AT+ICF=, (bohužel číselné kódy, nikoli mnemotechnické zkratky) AT+ICF=3,4 = default = 8N1 Bity: 0 = nepodporováno (Autodetect) 1 = 8N2 (parita udaná druhým parametrem se ignoruje) 2 = 8x1 (parita je určena druhým parametrem, pokud chybí tak default=3="space") 3 = 8N1 (parita udaná druhým parametrem se ignoruje) 4 = 7N2 (parita udaná druhým parametrem se ignoruje) 5 = 7x1 (parita je určena druhým parametrem, pokud chybí tak default=3="space") 6 = 7N1 (parita udaná druhým parametrem se ignoruje) Parita: 0 = odd (lichá) 1 = even (sudá) 2 = mark 3 = space 4 = none (žádná paritní bit se v rámci vynechá) Je zřejmé, že nejsou podporovány úplně všechny myslitelné varianty, například 7 bitů + parita + 2 stop bity, nebo formáty s 6 nebo 5 bity - nicméně to jsou opravdu okrajové extrémy. Dále je zřejmé, že není podporován "direct mód", který by přenesl 8 bitů plus 1 paritní bit s nestandardním významem. Není divu, CSD kanál i TCP spojení jsou 8bitové. Zde by se slušelo poznamenat, že pokud máte formát se 7 bity a paritou, kterou buď neznáte nebo je "atypická", nastavte oba modemy proti sobě na 8N1 a parita se "přenese nastojato" :-) Samozřejmě pak patrně nebudou fungovat AT příkazy (paritní bit bude vnímán jako 8. datový bit) - ale AT příkazy v těchto případech obvykle beztak nepřipadají v úvahu. Tato úvaha je okrajová i v tom smyslu, že kejkle s paritou obvykle provádějí "rychlé" protokoly, které přes GSM beztak nepůjdou transportovat kvůli vysokým nárokům na přesnost časování. Další základní příkazy, týkající se chování sériového portu ====================== - flow control AT+IFC=2,2 = hardwarová, RTS/CTS (default) AT+IFC=0,0 = vypnuto Pozor, GSM/GPRS přenos typicky neumí v uplinku víc než 9600bps, a buffer (FIFO) modemu je omezený, takže pokud je rychlost na sériovém portu vyšší než 9600, flow control obecně rozhodně má smysl. Na linkách, které nepodporují flow control, zvažte snížení rychlosti na 9600. Flow control není podporována na linkách RS485/422 (pokud nejsou signály RTS/CTS přenášeny dvěma dodatečnými signálovými páry) a taky některá zařízení s portem RS232 tyto signály neimplementují (mají pouze RX/TX a zem, tj. "třídrát"). - reakce modemu na signál DTR AT&D0 = ignoruj DTR AT&D1 = respektuj DTR, při shození DTR vyskoč do příkazového režimu, spojení běží dál AT&D2 = respektuj DTR, při shození DTR zavěs spojení - chování signálu DCD AT&C0 = DCD trvale aktivní (software, který ho hlídá, si bude myslet, že je modem spojený) AT&C1 = stav DCD odpovídá stavu spojení (patrně CSD-only) - chování signálu DSR AT&S0 = DSR trvale aktivní (modem říká, že je připraven přijímat data) AT&S1 = DSR aktivní pokud je modem ve spojeném stavu, neaktivní pokud je modem v příkazovém režimu - echovat/neechovat příkazy vůči DTE: ATE0 = neechovat ATE1 = echovat - vracet result kódy a průběžné chybové hlášky: ATQ0 = vracet kódy a hlášky ATQ1 = nevracet odpovědi na příkazy (quiet) - nezobrazí ani RING nebo CONNECT - přímé result kódy na AT příkazy vracet slovy / čísly: ATV0 = vracet číslo ATV1 = verbose = odpovídat slovem (OK, ERROR) Pár vysvětlivek =============== DTE = Data Terminal Equipment ("počítač", router, PLC apod) DCE = Data Communications Equipment ("modem", většina převodníků apod.) "DTE rate" = rychlost na lokální sériové lince mezi modemem a počítačem (RS232) "DCE rate" = "modulační" rychlost mezi modemy navzájem (u JTS modemů typicky AT+MS=) DTE a DCE konec kabelu RS232 mají standardně konektory typu DTE=samice a DCE=samec, číslování je na obou koncích shodné (stejný drát = stejné číslo), ovšem mírně matoucí může být popis RX/TX, který je taky na obou koncích "shodný podle drátu", ovšem potažmo de facto neodpovídá elektrickým vlastnostem budičů: na RS232 portu DCE zařízení je TX=vstup a RX=výstup. Podobně paradoxně může vyznívat značení kontrolek RX/TX.