5.4 AT API

Popis AT API

Rozhraní AT API je spuštěno na 2N® SmartCom Serveru a je licencovanou službou. Pokud jej chcete používat, je nutné povolit jeho užití v aplikaci 2N® SmartCom Control Panel v menu Server Settings. Základní schéma funkce rozhraní naleznete na následujícím obrázku.

AT API interface

Použití

Pro přihlášení do API se připojte telnetem na adresu 2N® SmartCom Serveru na vámi zvoleném portu pro AT API. Po připojení budete vyzváni k zadání uživatelského jména a hesla. Můžete použít jakýkoliv login nastavený na serveru. Přihlašovací dialog vypadá následovně:

2N® SmartCom AT API

Login:
Admin
Password:
2n
OK

Nyní se již nacházíte v prostředí AT API v takzvaném Standby módu. Zde je již možné zadávat jednotlivé podporované příkazy. Pro ukončení spojení odešlete příkaz ATZ nebo ukončete terminálovou aplikaci. Dále jsou popsány všechny AT příkazy, které je možné využívat v příkazovém kanále AT API. U každého příkazu je jeho přesný tvar, jak ho zadávat do terminálu a popis, k čemu slouží.

Základní příkazy

Základní příkazy pro 2N® SmartCom AT API

at
  • Příkaz pro kontrolu funkce rozhraní, neprovádí žádnou akci a vždy se na něj odesílá odpověď OK.
ate
  • Vypne echo (přestanou se zobrazovat odeslané příkazy a zobrazují se pouze odpovědi).
ate0
  • Vypne echo
ate1
  • Zapne echo
ati
  • Zobrazí model zařízení – 2N® SmartCom AT API
ati3
  • Zobrazí verzi serveru x.x.x.x.x
ati4
  • Zobrazí sériové číslo daného 2N® SmartCom Serveru.
at+cgmi
  • Zobrazí výrobce zařízení – 2N Telekomunikace a.s. 
at+cgmm
  • Zobrazí model zařízení – 2N® SmartCom AT API
at+cgmr
  • Zobrazí verzi serveru x.x.x.x.x
at+gmi
  • Zobrazí výrobce zařízení – 2N Telekomunikace a.s.
at+gmm
  • Zobrazí model zařízení – 2N® SmartCom AT API
at+gmr
  • Zobrazí verzi serveru x.x.x.x.x
at+gsn
  • Zobrazí IMEI GSM modulu
atz
  • Odhlásí aktuálně přihlášeného uživatele a ukončí TCP spojení. 

Nastavení serveru

at^sccfg?
  • Vyčte a zobrazí aktuálně nastavené hodnoty parametrů serveru.˛
  • ^SCCFG: "LISTEN PORT",50505 
  • ^SCCFG: "HTTP PORT",93
  • ^SCCFG: "HTTP ENABLED",1 
  • ^SCCFG: "AT API PORT",1562
  • ^SCCFG: "AT API ENABLED",1
  • ^SCCFG: "LOG LEVEL",3
  • ^SCCFG: "MAX USER TCP CONNECTIONS",100
  • ^SCCFG: "MAX TERMINAL TCP CONNECTIONS",100
  • ^SCCFG: "KEEPALIVE TIMEOUT",60
  • ^SCCFG: "KEEPALIVE SENDING PERIOD",180
  • ^SCCFG: "TERMINAL FW URL","http://$(SERVER_IP):93/firmwares/1.4.0.4.2.bin"
at^sccfg="listen_port",1560
  • Nastaví naslouchací port serveru na hodnotu 1560
at^sccfg="http_port",8080
  • Nastaví http port webového serveru na hodnotu 8080
at^sccfg="http_enabled",1
  • Povoluje nebo zakazuje používání http rozhraní. 0 – vypnuto, 1 – zapnuto
at^sccfg="at_port",1562
  • Nastaví port pro připojení AT API na hodnotu 1562 
at^sccfg="server_restart"
  • Restartuje 2N® SmartCom Server

Upozornění

  • Všechny tyto parametry jsou ukládány do databáze serveru ale projeví se až po jeho restartu, kdy se nová databáze načte do paměti.

Připojení terminálu

atd<ser_no>#<port>
  • Zavolá spojení na vybraný terminál a vybraný port

Poznámka

  • Pokud tedy chceme vyvolat spojení na terminál se sériovým číslem 50–0295–0562 a jeho port RS 232, vložíme do API následující příkaz. ATD5002950562#1
+++
  • Přepne spojení do příkazového módu. V tuto chvíli je potom možné zadat základní AT příkazy pro zjištění informací o serveru a příkaz ATH pro ukončení spojení s terminálem.
ato
  • Přepne spojení zpět do datového módu. 
ath
  • Ukončí spojení s aktuálně připojeným terminálem. Zůstanete ale v prostředí API a můžete zadávat další příkazy a vytvářet nová spojení. 

Komunikace s terminály

at^scstate<ser_no>
  • Zjistí stav terminálu s daným sériovým číslem. Odpověď je následující.
Terminal state:<br>
imei: 355915030753263<br>
operator name: T-Mobile CZ (23001)<br>
signal: 21<br>
iccid: 8942001105088009270<br>
imsi: 230015001013627<br>
terminal serial number: 50-0369-0075<br>
terminal firmware: 1.4.0.4.0<br>
modul firmware: L23_00gg.WISMO228 140711<br>
modul manufacturer: WAVECOM MODEM<br>
modul type: WISMO228
at^screl<ser_no>#<relay>?
  • Slouží pro zjištění stavu daného relé na zvoleném terminálu.
at^screl<ser_no>#<relay>=<state>
  • Nastaví polohu kontaktu relé.
at^screl<ser_no>#<relay>=<state>,<state_after_term_restart>
  • Nastaví polohu kontaktu relé a zároveň nastaví jak se má kontakt chovat po restartu terminálu. 
at^scdin<ser_no>#<input>="get_value"
  • Přečte hodnotu z digitálního vstupu. 
at^scadc<ser_no>#<input>="get_value"
  • Přečte hodnotu z analogového vstupu. 

Nastavení portu

at^scport<ser_no>#<port>?
  • Slouží pro zjištění aktuální konfigurace portu. Odpověď má následující tvar.
  • ^SCPORT1, "BAUDRATE",115200
  • ^SCPORT1, "DATA BITS",8
  • ^SCPORT1, "PARITY",0
  • ^SCPORT1, "STOP BITS",1
  • ^SCPORT1, "FLOWCONTROL",0 
at^scport<ser_no>#<port>=<BAR>,<DB>,<P>,<SB>,<FC>
  • Nastaví zvolenou konfiguraci portu. Jednotlivé parametry se zadávají za sebou. Jejich možnosti nastavení jsou následující.
BAR - "BAUDRATE",110-230400<br>
DB - "DATA_BITS",5-8<br>
P - "PARITY",0-4<br>
SB - "STOP_BITS",1-2<br>
FC - "FLOWCONTROL",0-1

Upozornění

  • Parametry portu lze do příkazu vložit všechny nebo je od posledního postupně vynechávat. To znamená, že pokud chcete pouze změnit rychlost komunikace, stačí odeslat příkaz například ve tvaru: 
at^scport5002961583#1=57600
  • Pokud chcete nastavit všechny parametry portu najednou, odešlete příkaz například v následujícím tvaru:
at^scport5002961583#1=57600,5,0,1,0

Přístup na konfigurační port terminálu

Prostřednictvím AT API je možné přistupovat na konfigurační port terminálu, stejně jako bychom konfigurovali terminál přes RS232 port nebo přes TCP port 10000 ve standalone módu. Konfigurační port je přístupný pod číslem nula a pro připojení se použije příkaz ATD stejným způsobem, jako pro připojení k fyzickým portům terminálu. Po připojení je možné nastavovat i funkce, které nejsou zpřístupněny přes Control Panel nebo přes příkazy AT API, např. uživatelsky definované akce (UDF) popsané v následující kapitole.

Poznámka

  • Pokud tedy chceme konfigurovat terminál se sériovým číslem 50–0295–0562, vložíme do API následující příkaz.
ATD5002950562#0.

Firmware Management

Slouží pro ovládání a nastavování upgrade terminálů.

at^scupg<ser_no>?
  • Vrátí hodnotu s aktuálním stavem upgradu.
at^scupg<ser_no>="<verze>"[<timestamp>]
  • Nastaví upgrade daného terminálu na danou verzi a ve zvolený čas.

Poznámka

  • Čas se zadává ve formátu UNIX TIME. Pro 1.1.2013 15:50:24 zadáte 1357055424
at^scupg<ser_no>="CANCEL"
  • Zruší upgrade zvoleného terminálu.

Správa Uživatelů, Skupin a Terminálů

Tyto příkazy slouží pro nastavení, editaci a mazání uživatelů, skupin a terminálů. Pro funkci všech příkazů je zapotřebí být přihlášen jako uživatel s administrátorskými právy.

Poznámka

  • Pokud nebude mít přihlášený uživatel administrátorská práva, zobrazí se ve výpisech pouze uživatelé, skupiny a terminály, ke kterým má patřičná oprávnění.
  • Uživatel bez Admin. práv nebude moci objekty přidávat, editovat ani mazat.
at^scuser?
  • Vrátí seznam všech uživatelů SC Serveru.
at^scuser="add","<login>","<full_name>","<password>",<user_flags> ["<description>"]
  • Přidá nového uživatele do databáze.
at^scuser="edit",<user_id>,"<login>","<full_name>","<password>",<user_flags>["<description>"]
  • Umožňuje editovat uživatele s příslušným User ID. Je potřeba vždy uvádět všechny parametry.
at^scuser="remove",<user_id>
  • Smaže uživatele s příslušným User ID.
at^scgroup?
  • Vrátí seznam všech skupin SC Serveru. 
at^scgroup="add","<name>"["<description>"]
  • Přidá novou skupinu do databáze.
at^scgroup="edit",<group_id>,"<name>"["<description>"]
  • Umožňuje editovat skupinu s příslušným Group ID. Je potřeba vždy uvádět všechny parametry. 
at^scgroup="remove",<group_id>
  • Smaže skupinu s příslušným Group ID.
at^scgroup="list_user",<group_id>
  • Vypíše uživatele přidané do skupiny.
at^scgroup="list_terminal",<group_id>
  • Vypíše terminály přidané do skupiny.
at^scgroup="list_right",<group_id>
  • Vypíše práva skupiny.
at^scgroup="add_user",<group_id>,<user_id>
  • Přidá zvoleného uživatele do dané skupiny.
at^scgroup="add_terminal",<group_id>,<terminal_id>
  • Přidá zvolený terminál do dané skupiny. 
at^scgroup="remove_user",<group_id>,<user_id>
  • Odebere zvoleného uživatele z dané skupiny.
at^scgroup="remove_terminal",<group_id>,<terminal_id>
  • Odebere zvolený terminál z dané skupiny.
at^scgroup="set_right",<group_id>,READ,<0|1>
  • Přidá nebo odebere právo READ dané skupině.
at^scgroup="set_right",<group_id>,CONN,<0|1>
  • Přidá nebo odebere právo CONNECT dané skupině.
at^scgroup="set_right",<group_id>,CONF,<0|1>
  • Přidá nebo odebere právo CONFIGURE dané skupině.
at^scgroup="set_right",<group_id>,MONI,<0|1>
  • Přidá nebo odebere právo MONITOR dané skupině.
at^scterminal?
  • Vrátí seznam všech terminálů SC Serveru .
at^scterminal="add","<name>","<serial_number>","<password>" ,"<description>"]
  • Přidá nový terminál do databáze. 
at^scterminal="edit",<terminal_id>,"<name>","<serial_number>","<password>"["<description>"]
  • Umožňuje editovat terminál s příslušným Terminal ID. Je potřeba vždy uvádět všechny parametry. 
at^scterminal="remove",<terminal_id>
  • Smaže terminál s příslušným Terminal ID. 

URC

 URC – unsolicited result codes. Jde o notifikace změn stavů jednotlivých sledovaných objektů. Uživatelů, terminálů nebo připojení.

at^scind?
  • Vypíše, ke kterým URC je uživatel přihlášen.
at^scind="<type>",<value>
  •  Přihlášení / odhlášení uživatele k / od URC.
    • <type> volba typu URC (user / terminal / connection / all)
    • <value> 0 = vypnuto / 1 = zapnuto

Poznámka

  • Pro přihlášení k URC terminálů zadejte do AT API příkaz at^scind="terminal",1

 Formát URC

  • Změna stavu připojení uživatele (stejně jako v odpovědi na at^scuser?): ^SCUSER: <user_id>, "<login>", "<full_name>", "<user_flags>", "<connection_state>", "<description>"
  • Změna stavu připojení terminálu (stejně jako v odpovědi na at^scterminal?): ^SCTERMINAL: <terminal_id>, "<name>", "<serial_number>", "<connection_state>", "<description>"
  • Změna stavu spojení na portu terminálu: ^SCLINK: <link_id>, "<terminal_name>", "<serial_number>", "<port_name>", "<user_name>", "<connection_state>"