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)
+
   TYPE | name                    |  LEN (bytes)
  -------------------------+----------------
+
  ------+-------------------------+----------------
   SDS board version      |  1
+
   0x01 | SDS board version      |  1
   SDS MAC addr            |  6
+
   0x02 | SDS MAC addr            |  6
   SDS IP+NM+GW+WP+SUP    |  16
+
   0x04 | SDS IP+NM+GW+WP+SUP    |  16
   SDS IP+NM+GW+WP+SUP    | 16
+
   0x08 | SDS sysLocation        |  33
  SDS sysLocation        |  33
+
   0x10 | SDS flags              |  8
   SDS flags              |  8
+
   0x11 | 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:
Řádek 60: Řádek 59:
 
  ----------+----------
 
  ----------+----------
 
   1      | length = x
 
   1      | length = x
   1      | type
+
   1      | TYPE
 
   x      | contents
 
   x      | contents
  

Verze z 19. 7. 2023, 13:23

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:

 TYPE | name                    |  LEN (bytes)
------+-------------------------+----------------
 0x01 | SDS board version       |  1
 0x02 | SDS MAC addr            |  6
 0x04 | SDS IP+NM+GW+WP+SUP     |  16
 0x08 | SDS sysLocation         |  33
 0x10 | SDS flags               |  8
 0x11 | 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