Ethernet  Home Automation  eHouse kunt u het automatisch verzenden van een status broadcastu UDP (User Datagram Protocol) , die kan ontvangen alle apparaten in uw LAN of WiFi en IP voldoen aan de voorwaarde – Gevonden in de lokale masker 255 . 255 . 255 . 0 , dat wordt uitgezonden van de status van de IP-adressen van de controllers 192 . 168 . 0 . x .  UDP Broadcast kunt u uitschakelen van de download status van de TCP / IP-client , hetgeen een verbinding met de controller . UDP Broadcast een protocol zonder verbindingen , voor de vermeerdering gegevens en ongeacht het aantal van de ontvangende apparaten laadt niet meer de CPU of netwerkverbindingen . 
 Eenvoudige UDP broadcast ontvangst functie met smartphones , panelen en Android-tablets wordt hieronder .
Het is daarom een oneindige lus op basis van deze functie , je nodig hebt om een thread (draad) die werkzaam zijn in de achtergrond , waardoor het de laagste prioriteit werk . 
 Anders , het uitvoeren van deze functie blokkeren de uitvoering van andere activiteiten van het programma . 
 De broncode voor het ontvangen van UDP Broadcast Android-platform: 
 public void udp (int port) / / parameter-poort op te halen de standaard uitgezonden 6789 – status in binaire controller 
 { 
 byte [] broadcastadr = new byte [4] ; 
 byte [] localadr = new byte [4] ; 
 WifiManager wifi = (WifiManager) getSystemService (Context . WIFI_SERVICE) ; / / Wifi-manager 
 DhcpInfo dhcp = wifi . getDhcpInfo () ; / / Haal info van wifi dhcp 
 if (dhcp == null) / / krijgen standaard waarde is niet beschikbaar als DHCP-netwerk van eHouse 
 {/ / Geen dhcp of een fout van het apparaat 
 broadcastadr [0] = (byte) 192 ; 
 broadcastadr [1] = (byte) 168 ; 
 broadcastadr [2] = (byte) 0 ; 
 broadcastadr [3] = (byte) 255 ; 
 } 
 else / / DHCP 
 { 
 uitzending = int (dhcp . IP-adres en ; ; dhcp . netmask) | ~ dhcp . netmask ; / / Voor udp-uitzendingen – Als u de gegevens wilt uitgezonden op de functie 
 controller ontvangt alleen de status van 
 for (int k = 0 ; k < ; 4 ; k + +) broadcastadr [k] = (byte) ((uitgezonden> ; > ; k * 8) en ; 0xFF) ; 
 lokale int = (dhcp . ipadres) ; / / Local ip adres dhcp 
 for (int k = 0 ; k < ; 4 ; k + +) localadr [k] = (byte) ((lokaal> ; > ; k * 8) en ; 0xFF) ; / / Voor lokale ip adres 
 } 
 proberen 
 { 
 ds = new DatagramSocket (haven) ; / / / Luisteren op UDP-poort gegevens uit een ip 
 in een masker – udp socket naar een instantie van de lokale poort te creëren 
 } 
 catch (Exception e) 
 { 
 / / Ehousecommunication . l ( ” Fout Inet: get adres ” + E . GetMessage ()) ; voor test 
 } 
 proberen 
 { 
 ds . setBroadcast (true) ; / / Enable sturen broadcast-bericht – voor transmissie 
 ds . setReuseAddress (true) ; / / Laat meerdere socket hetzelfde IP-adres 
 / / Ds . setSoTimeout (400) ; / / Ontvangst time-out 
 } 
 catch (Exception io) 
 {/ / Negeer fouten, maar we beschermen tegen de toepassing en systeem fouten 
 } 
 / / * UDP broadcast TEST – broadcastu-test udp uitgezonden vanaf je telefoon of tablet – toekomstige communicatie met de toepassing van de 
 / * Probeer 
 { 
 DatagramPacket dd = new DatagramPacket ( ” Hallo Word van Android UPD TEST ” . getBytes () , 0 , ” Hallo Word van Android UPD TEST ” . length () , 
 InetAddress . getByAddress (broadcastadr) , poort) ; 
 ds . stuur (dd) ; / / Hiermee wordt een DatagramPacket 
 } 
 catch (Exception e) 
 { 
 ehousecommunication . l ( ” Transmit Datagram pakket error: ” + E . GetMessage ()) ; 
 } 
 * / 
 MulticastLock ml = wifi . createMulticastLock ( ” Multicast enabled slot ” ) ; 
 / / Maak een instantie van het blok multicast en broadcastu 
 ml . Acquire () ; / / Multicast lock enable udp radio-ontvangst – Het kan worden uitgeschakeld Bepaalde Android smartphones voor batery te besparen – 
 broadcastu UDP ondersteuning activeert de telefoon als deze is vergrendeld en alleen uitgeschakeld 
 while (! ehousecommunication . Beëindig) / / oneindige lus voor udp-ontvangst 
 {/ / Oneindige lus ontvangen udp-status 
 DatagramPacket dp = new DatagramPacket (bericht , bericht . lengte) ; / / Maak een UDP-datagram packet buffergrootte met behulp van gegevens – maakt gebruik van het UDP packet 
 buffer ” bericht ” 
 try { 
 ds . ontvangen (dp) ; / / UDP-pakket ontvangst van eHouse systeem – ontvangt het pakket udp-poort van de UDP een stopcontact 
 if (dp . getLength ()> ; 0) / / of de grootte van percelen groter dan nul – iets ontvangen 
 { 
 EhouseTCP . QueryBuff = dp . getData () ; / / Wijs een UDP broadcast recepition querybuffer – geladen in de buffer staat eHouse 
 / / Dp . setLength (0) ; – pakketgrootte op nul is gezet, zodat er geen dezelfde gegevens herhaaldelijk te verwerken 
 EhouseTCP . QueryReceived () ; / / Decode query gegevens arrays en vul apparaten – decodeert de status van controllers en laadt de toepassing statustabel 
 } 
 } 
 catch (Exception os) 
 {/ / Negeer fouten 
 / / Ehousecommunication . l ( ” asdfasdfsafsa ” + Os . GetMessage ()) ; / / Voor-test alleen 
 } 
 } 
 ml . release () ; / / Multicast udp lock vrij voor de ontvangst van eHouse toepassing – heft de vergrendeling op multicast 
 ds . close () ; / / Sluit het datagram socket op het einde – sluit de aansluiting aan het einde van de 
 } 
 Multicast slot kan nodig zijn bij sommige Android-apparaten . 
 Lokale Broadcast UDP in het geval van mobiele telefoons kan worden in-of niet, afhankelijk van de mobiele telefoon firmware . 
 Het kan ook permanent worden uitgeschakeld om de batterij te sparen en om veiligheidsredenen of om de CPU-belasting op het netwerk te verminderen op het werk .
(Let op de kernel configuratie: CONFIG_IP_MULTICAST is niet ingesteld) . 
 Bovendien , sommige modellen kan worden geblokkeerd door een lokale firewall en de noodzaak om de transmissie te activeren op een bepaalde poort (standaard 6789) . 
 Outside Broadcast bij het gebruik van GPRS-internetverbindingen , EDGE , 3G , 4G kan worden vergrendeld of ontgrendeld door de netbeheerder . Vaker , echter , worden verwacht , dat wordt vastgesteld om het gebruik van de verbinding te minimaliseren . 
 In sommige modellen van mobiele telefoons , Software-implementatie status van controllers ontvangen UDP kan zeer moeilijk of zelfs onmogelijk . Vereisen het gebruik van speciale firmware niebrandowanego of smartphone . 
 Bovendien , zorg moet worden genomen bij het upgradowaniu firmware en controleer of alle functies goed werken out of the box , anders de diagnose van fouten zal zeer moeilijk . 
 Op basis van een aantal HTC-telefoons en andere producten die het Android-besturingssysteem versie lager dan 2 . 3 . 3 zagen een totaal blok UDP receptie broadcastu . 
 Dit was de versie van android (2 . 1 – 2 . 3 van de periode van 01 . 01 . 2010 – 14 . 06 . 2011) 
 Als je niet kan ontvangen UDP broadcastu downloaden en installeren , Nieuwe Android-ROM-versie van de minimum 2 . 3 . 3 (14 juni , 2011) , die testte de juistheid van de werklast UDP broadcast . 
 Kernel Versie 2 . 6 . 35 . 10 – htcg3ef43272 – kernel @ 18 * – 2 # 1 . 
 Geen . 3software . 14 . 405 . 1 . 
 Voor andere merken van telefoons met vergelijkbare problemen , download dan Firmware Android Rom van de fabrikant , versie van ten minste 2 . 3 . 3 . 
 Let ook op de essentiële kenmerken van UDP-pakketten . 
 Ze zijn asynchrone en vereisen lezen over wat kan leiden tot gegevens leesfouten , hun verlies (afscheiding) , vooral trage materieel , koppelingen , combineren een hoge belasting en CPU-bezetting smartphones en tablets .
Udp statusgegevens is uitgerust In de controlesom de geldigheid van gegevens te controleren . 
  Home Automation Producer  eHouse  Home Automation  eHouse 
  eHouse Controllers – Home Automation  eHouse