M2M: UDP search
UDP SEARCH
Pomocí speciálního protokolu, kdy se data přenášejí prostřednictvím UDP, je možné získávat informace z výrobků řady SDS/OnlineTechnology.
PORT 20484
Komunikace probíhá formou DOTAZ - ODPOVĚĎ. To znamená, že ten, kdo má o informace zájem (vzdálený uživatel) pošle dotaz (korektně vyplněný UDP paket, viz dále) a obratem obdrží od zařízení odpověď, UDP paket s informacemi.
Tato funkcionalita se využívá primárně pro nalezení všech modulů SDS, které jsou na dané podsíti - často v situaci, kdy neznáme přesnou IP adresu daného modulu, a chceme takový modul přesto najít a přistupovat k němu.
Dotaz
Aplikace musí do SDS odeslat správně formulovaný dotaz.
Dotazem je UDP paket, který obsahuje následující datový payload (23 bajtů):
AN-D-SEARCH * SDS/1.0\n\r
POZOR - kde \n a \r jsou jednoznakové položky !
Odpověď
Modul SDS odpoví, pokud obdrží správně formulovaný dotaz. Odpověď obsahuje řadu doplňujících informací, které lze vyhodnotit.
Odpovědí je UDP paket, který obsahuje následující datový payload (hlavička 23 bajtů + další datové položky):
AN-D-SREPLY * SDS/1.0\n\r
POZOR - kde \n a \r jsou jednoznakové položky !
Následující datová struktura (navazuje hned na hlavičku) - všechny hodnoty LITTLE ENDIAN:
length B | contents -----------+--------------------------------- TBD | reserved -----------+--------------------------------- 4 | version (actual value: 0x01) -----------+--------------------------------- n*x | TYPE-LENGTH-VALUE (TLV) pairs
Seznam TLV párů, tak jak jsou (vždy napevno, ve stejném pořadí) umístěny v datové struktuře:
name | LEN (bytes) -------------------------+---------------- SDS board version | 1 SDS MAC addr | 6 SDS IP+NM+GW+WP+SUP | 16 SDS IP+NM+GW+WP+SUP | 16 SDS sysLocation | 33 SDS flags | 8 OEM short string | 33
Každá TLV položka se skládá z následující struktury:
LEN (B) | item ----------+---------- 1 | length = x 1 | type x | contents
Takže stačí postupně číst jednotlivé TLV struktury, sledovat jejich délku, a vše je k dispozici. Jednotlivé TLV struktury jsou na sobě těsně navázány (packed).
info
stránka se připravuje