M2M: UDP search: Porovnání verzí

Řádek 45: Řádek 45:
 
Seznam TLV párů, tak jak jsou (vždy napevno, ve stejném pořadí) umístěny v datové struktuře:
 
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)
+
  name                    |  LEN (bytes)
-------------------------+----------------
+
-------------------------+----------------
SDS board version      |  1
+
  SDS board version      |  1
SDS MAC addr            |  6
+
  SDS MAC addr            |  6
SDS IP+NM+GW+WP+SUP    |  16
+
  SDS IP+NM+GW+WP+SUP    |  16
SDS IP+NM+GW+WP+SUP    |  16  
+
  SDS IP+NM+GW+WP+SUP    |  16  
SDS sysLocation        |  33
+
  SDS sysLocation        |  33
SDS flags              |  8
+
  SDS flags              |  8
OEM short string        |  33
+
  OEM short string        |  33  
 
 
  
 
Každá TLV položka se skládá z následující struktury:
 
Každá TLV položka se skládá z následující struktury:
  
LEN (B)  | item
+
  LEN (B)  | item
----------+----------
+
----------+----------
  1      | length = x
+
  1      | length = x
  1      | type
+
  1      | type
  x      | contents
+
  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).
 
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).

Verze z 19. 7. 2023, 13:21

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