Index >> Technická podpora, download.. >> Aplikační poznámky

AN20: Jak na UDP Config ve Vašich aplikacích

Většina síťových zařízení HW group obsahuje možnost přidělit IP adresu zařízení pomocí UDP Broadcastu. Tato funkce je implementována jednak v programu Hercules, jednak v různých dalších utilitách. Tato aplikační poznámka slouží firmám, které chtějí implementovat možnost vyhledávání našich zařízení do svých programů a utilit.

V záložce "UDP Config" utility Hercules lze prohledat lokální segment sítě pomocí UDP Broadcastu a najít naše zařízení na tomto segmentu, případně jim přiřadit jinou IP adresu, MASKu a GateWay. Tato aplikační poznámka popisuje pouze formát hledání stávajících zařízení, nejsou zde uvedeny kódy pro zápis konfigurace do modulu.

Jak funguje hledání/nastavení zařízení

  • PC program pošle všeobecnou výzvu, jakožto UDP Broadcast na port 9999 ve formátu:

    \377\377\377\377\377\377IIIIMMMMFFFFWWWWUC12345678(c)HW-server.com


  • Na tuto zprávu odpoví všechna zařízení s aktivovanou funkcí UDP Config, která jsou na daném segmentu sítě. Formát odpovědi je podrobně popsán dále.
    Všechna zařízení, která odpověděla, jsou nyní nastavena do "UDP Config mode" dokud nevyprší interní timeout. To znamená, že po určitou dobu čekají na UDP rámec s novým nastavením. Dokud tento rámec nepřijde, zařízení dále pracuje normálně.
     
  • Pokud zařízení přijme UDP rámec s novým nastavením pro daný modul a pokud rámci odpovídá kontrolní šifra, je nové nastavení síťového rozhraní zařízení uloženo a zařízení se zrestartuje. Tento dokument popisuje pouze hledání zařízeni na Ethernet síti, nikoliv změnu jejich konfigurace.

 

Identifikace modulu a kódování

Na původní UDP Broadcast výzvu, odpoví zařízení rámcem, ve kterém pošle své nastaveni a speciální kód. Zařízení (modul nebo HW jednotka) po odeslání tohoto rámce očekává nastavovací rámec z počítače (od programu jake je Hercules). Rámec z nastavovacího programu je po přijetí ověřen a pokud je správně zašifrovaný, je příchozí UDP rámec zařízením zpracován, jinak je ignorován. Tímto způsobem je také identifikován příjemce, pokud je rámec z PC do zařízení posílán jako UDP Broadcast. UDP rámec ale nemusí byt UDP Broadcast, odpověď lze poslat také jako Unicast výzvu, na kterou odpoví pouze vyzvané zařízení.

Popis odpovědi zařízení (modul nebo HW jednotka)

00 unsigned char MAC[6]; // MAC address of the module
06 unsigned char IP[4]; // IP address
0A unsigned char Mask[4]; // Subnet mask
0E unsigned char FwIP[4]; // Acceptable address range IP
12 unsigned char FwMask[4]; // Acceptable address range MASK
16 unsigned char Unit[2]; // Device type - more
1A unsigned char GW[4]; // GW address (sometime called User1)
1E unsigned char User2[2]; // DEVICE CTRL bits settings - more
20 unsigned char Port[2]; // incomming TCP port number
22 unsigned char crypt[16]; // Cryption for Write

Device type    
Unit2[1] A0 A1 A2 A3 A4 B0 B1 B2
Unit2[0] C0 C1 C2 C3 D0 D1 D2 D3
 A - Device type 5 bits // Device FW type name (e.g. Poseidon)
 B - General firmware version 3 bits // Device FW main number (1.8.2]
 C - Firmware version 4 bits // Device FW second number (1.8.2]
 D - Firmware sub-version 4 bits // Device FW third number (1.8.2]

 

DEVICE CTRL bits settings
User2[0] & 1 bit 0 R/W Enable TCP TEA authorization
User2[0] & 2 bit 1 R/W Enable NVT
User2[0] & 4 bit 2 R/W Enable TCP Setup (default on the port 99)
User2[0] & 8 bit 3 Read only DHCP support (0 = DHCP not supported)
User2[0] & 16 bit 4 R/W Enable DHCP, fixed IP address ignored

 

Z výše popsané struktury všeobecné výzvy a formátu odpovědi již vyplývá, jak použít ve Vašich kódech vyhledávání modulů. Pokud se Vám jedná o možnost zápisu konfigurace z Vašeho vlastního kódu, kontaktujte nás, zašleme Vám podrobnější informace..

Popsaný algoritmus, včetně filtru zařízení podle rozsahu MAC adres lze najít ve zdrojových kódech k aplikaci IP Relay Controller - zdrojové kódy jsou kompilovány pomocí "Borland C++ Builder 6.0".

 

DOWNLOAD & Odkazy

  • IPRC (IP Relay Control) zdrojové kódy (Borland C++ Builder 6.0)
  • PortStoreEye_src.zip - PS Eye - zdrojové kódy (Borland C++ Builder 6.0)