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