OSI7 status code

Z onlinetechnology.cz

Přejít na: navigace, hledání
Tato stránka popisuje programovací jazyk SDS-C, který je dostupný na vybraných zařízeních SDS. Některá zařízení používají FULL-C, pro který máme návody jinde na této WiKi.

Tato stránka obsahuje informace k funkcím SDS-C, které se starají o komunikaci (např. HTTP GET, EMAIL SEND, atd.).

Proměnná
sys[65]
je určená pro informování o proběhlé OSI7 funkci. Vyplňuje se, pokud je funkce provedena zcela korektně a skončila bez problému, ale také v případě chyby, kdy je zde ta chyba zaznamenána.

Pokud bude hodnota nula, pak daná SDS-C funkce není implementována ve verzi firmware, kterou máte nahranou v zařízení - aktualizujte firmware (stáhnete z těchto stránek).

Obsah

Společný chybový kód pro všechny OSI7 funkce

* 128 Funkce byla přerušena kvůli výpadku Ethernetu (odpojení kabelu, přerušení spojení na switch, atd.).

Pokud SDS-C program právě provádí některou z OSI7 funkcí - např. dns_resolv() - a dojde k odpojení Ethernetu od zařízení SDS, tak bude nastaven buď tento konkrétní chybový stav, nebo případně některý z konkrétních chybových stavů od konkrétní funkce (záleží na okamžiku, kdy dojde k odpojení Ethernetu).

SMTP

Možné hodnoty v sys[65] (nastaveno po zavolání funkce odeslání emailu):

* 256 EMAIL odeslán OK a bez problému (tedy alespoň dle toho co hlásí SMTP server).

Všechny následující hodnoty znamenají chybu, tj. email neodeslán.

* 257 SMTP TIMEOUT
* 258 SMTP server není přípraven (not ready)
* 259 Chyba v HELO příkazu.
* 260 Neplatná adresa odesílatele.
* 261 Neplatná adresa příjemce.
* 262 RELAY ACCESS DENIED
* 263 Nelze odeslat data (obsah emailu). 
* 264 Nelze dokončit odesílání dat.
* 265 Autentifikace není povolena na tomto SMTP serveru.
* 266 Neplatné uživatelské jméno.
* 267 Neplatné uživatelské heslo.
* 268 Chyba 550 Invalid recipient (často spam filter)
* 269 Nelze navázat TCP spojení na SMTP server (neplatná IP, server mimo provoz)
* 270 Právě probíhá odesílání emailu (pokud chcete poslat další email dříve než je odeslán aktuální).
* 271 SMTP server vrátil chybu 501 (nekompatibilita mezi SMTP serverem a klientem)
* 272 Nedostatek paměti v zařízení SDS pro odeslání emailu (tato chyba by se nikdy neměla stát)
* 273 IP adresa zařízení SDS není platná (obvykle DHCP problém), nelze tedy zahájit komunikaci

SMTP TIMEOUT:

Tato chyba se stává v okamžiku navazování spojení s SMTP serverem, a to v případě že vyprší odpočet času, ve kterém se mělo provést úspěsné TCP spojení se serverem. Důvody jsou obvykle dva: neplatná IP adresa (na zadané IP není server na portu 25), nebo odmítnutí serverem (např. když je IP zařízení snažícího se připojit na SMTP server na blacklistu). Samozřejmě důvodů může být více, a přesný důvod si už musíte zjistit sami.


OMEZENÍ:

* maximální délka textu emailové adresy je 253 znaků
* maximální délka subjectu je 253 znaků
* maximální délka pro SMTP autorizaci: username může mít maximálně 32 znaků
* maximální délka pro SMTP autorizaci: password může mít maximálně 32 znaků
* maximální celková délka samotného textu emailu je max 1440 znaků (pozor při skládání z více textů atd.)

Poznámka: Pro port SMTP serveru se vždy bere hodnota 25 (port 25).


DNS

Hodnota je nastavena po návratu ze zavolané SDS-C funkce dns_resolv.

Možné hodnoty v sys[65]:

* 512 DNS resolv proběhl OK
* 513 DNS resolv hlásí chybu
* 514 DNS resolv odeslal požadavek na server a čeká na odpověď

OMEZENÍ:

* FW 06/2011 a novější: maximální úplný text domény pro DNS překlad je max 64 znaků (úplný text = např. "www.google.com")
* FW do 05/2011: maximální úplný text pro DNS překlad je max 32 znaků   


Poznámka: zařízení si pamatuje výsledky posledních čtyř DNS dotazů, což umožňuje vynechat opakování posílání DNS dotazů, pokud již máme daný záznam pro požadavek (text překladu). Pokud u těchto záznamů vyprší platnost, jsou z paměti odstraněny (a zařízení pak znovu pošle DNS dotaz, takže požadovaný výsledek DNS překladu obdržíte, bez obav).

HTTP GET

Funkce vrací dvě informace - chybový kód v sys[65] a header kód přímo od webového serveru v sys[75]. Prezentované hodnoty header kódu jsou přímo převzaty z odpovědi webového serveru (např. 200 pro 'OK' a tak dále).

Možné hodnoty v sys[65]:

* 1024 HTTP GET proběhl OK, webový server poslal odpověď - hodnota odpovědi je v sys[75]
* 1025 chyba - nelze vytvořit připojení
* 1026 chyba - timeout (neobdržel jakokoliv odpověď do stanoveného času) (různé důvody, typicky výpadek připojení nebo serveru)
* 1027 chyba - odpojeno - webový server násilně přerušil síťové spojení (reset)
* 1028 chyba - přijaty nesmyslné data (méně než 12 znaků nebo neplatná hlavička)
* 1029 chyba - stále není vyřízený předchozí požadavek, tento tedy je zahozen
* 1030 chyba - IP adresa zařízení SDS není platná (obvykle DHCP problém), nelze tedy zahájit komunikaci
* 1031 chyba - Ethernet není aktivní (je zapojený kabel ?)
* 1032 chyba - při zavolání http_get() funkce byly předány neplatné parametry (např. neplatná IP adresa)


Typická reakce na chyby je chvíli počkat, a pak to zkusit znovu.

Pouze pokud dostanete chybu 1029, tak to znamená, že to znovu zkoušíte dříve než je možné (tzn. http_get() stále pracuje). V takovém případě dále čekejte na další změnu sys[65], která ukáže skutečný výsledek původního zavolání http_get().


OMEZENÍ:

* maximální celková délka údaje "host" je 254 znaků
Osobní nástroje
Translate