eHouse Eraikuntza Automatika Sistema – Android software UDP bidez kontrolagailu egoera jasotzeko

Ethernet Home Automation eHouse automatikoki bidaltzeko aukera ematen egoera broadcastu UDP (User Datagram Protocol) , baldintza asetzeko zure LAN edo WiFi eta IP gailu guztiek jaso ahal izango – 255 tokiko maskara aurkitu . 255 . 255 . 0 , den egoera emititzen off kontrolagailu 192 IP helbideak . 168 . 0 . x . UDP Broadcast esker, TCP / IP bezero egoera download desgaitzeko , kontroladorea konexio bat behar du . UDP Broadcast connectionless protokolo bat da. , hedapena datuak eta jaso gailu kopurua edozein dela ere ez du kargatu PUZ gehiago edo sare-loturak .
Simple UDP-difusioaren harrera smartphones funtzioa , panelak eta Android konprimituak azpian .
Da, beraz, funtzio honen oinarria begizta amaigabea , atzealdean lan haria (HARI) sortu behar duzu , lehentasun baxuena lana ematen .
Bestela , funtzio honen exekuzioa blokeatu Programaren beste jarduera batzuk gauzatzeko .
UDP Broadcast android plataforma jaso iturburu-kodea:
public void udp (int port) / 6789 / parametro ataka lehenetsia hautatzeko emititzen – controller bitar egoera
{
byte [] broadcastadr = new byte [4] ;
byte [] localadr = new byte [4] ;
WifiManager wifi = (WifiManager) getSystemService (Context . WIFI_SERVICE) ; / / Wifi kudeatzailea
DhcpInfo dhcp = wifi . getDhcpInfo () ; / / Talde wifi dhcp info
(dhcp == null) / / balio lehenetsia lortzeko DHCP eHouse sarea desgaituta dago bada
{/ / Dhcp No edo gailuak errore bat
broadcastadr [0] = (byte) 192 ;
broadcastadr [1] = (byte) 168 ;
broadcastadr [2] = (byte) 0 ;
broadcastadr [3] = (byte) 255 ;
}
else / / DHCP
{
-difusioa = int (dhcp . Helbidetik & ; ; dhcp . netmask) | ~ dhcp . netmask ; / / Udp-difusioa For – Nahi duzun datuen emititzeko funtzioa
controller bakarrik jasotzen egoera
(int k = 0 ; k < ; 4 ; -k + +) broadcastadr [k] = (byte) ((emititzeko> ; > ; k * 8) eta ; 0xFF) ;
tokiko int = (dhcp . helbidetik) ; / / Tokiko ip helbidea dhcp
(int k = 0 ; k < ; 4 ; -k + +) localadr [k] = (byte) ((tokiko> ; > ; k * 8) eta ; 0xFF) ; / / Ip helbide lokal
}
saiatu
{
ds = new DatagramSocket (port) ; / / / Udp ataka datuak ip edozein Entzun
maskara baten barruan – udp socket tokiko portu zenbaki instantzia bat sortzeko
}
catch (Exception e)
{
/ / Ehousecommunication . l ( ” Errorea Inet: helbidea ” + E . getMessage ()) ; proba egiteko
}
saiatu
{
ds . setBroadcast (true) ; / / Gaitu bidali-difusioaren mezu – transmititzeko
ds . setReuseAddress (true) ; / / Gaitu anitz socket IP helbide bera erabiltzen
/ / Ds . setSoTimeout (400) ; / Harrera / timeout
}
catch (Exception io)
{/ / Ezikusi akatsak baina aplikazio eta sistema-akatsak aurka babesten dugu
}
/ / * Udp-difusio TEST – udp broadcastu test zure telefono edo tablet emititzen – etorkizuneko komunikazio aplikazioa
/ * Saiatu
{
DatagramPacket dd = new DatagramPacket ( ” Kaixo Word Android UPD TEST ” . getBytes () , 0 , ” Kaixo Word Android UPD TEST ” . luzera () ,
InetAddress . getByAddress (broadcastadr) , port) ;
ds . bidaltzeko (dd) ; / / DatagramPacket bat eramango du
}
catch (Exception e)
{
ehousecommunication . l ( ” Transmititzea Datagram paketebat error: ” + E . getMessage ()) ;
}
* /
MulticastLock ml = wifi . createMulticastLock ( ” Multicast gaitutako blokeoa ” ) ;
/ / Sortu blokea multicast eta broadcastu instantzia bat
ml . Acquire () ; / / Multicast blokeoa enable udp difusioa jasotzea – Desgaitu daiteke Certain Android smartphones aurreztea batery Fines –
broadcastu UDP laguntza telefono aktibatzen blokeatuta dago eta bakarrik desgaituta
(! ehousecommunication bitartean . Amaitu) / / udp harrera infinitua loop
{/ / Udp egoera Infinite loop jaso
DatagramPacket DP = new DatagramPacket (mezu , mezua . luzera) ; / / Sortu udp datagram pakete-buffer datuak erabiliz – UDP paketea erabiltzen du
bufferreko ” mezua ”
saiatu {
ds . jaso (DP) ; / / Udp eHouse sistema pakete harrera – UDP-pakete udp ataka socket bat jasotzen
(DP bada . getLength ()> ; 0) / / lurzatien tamaina zero baino handiagoa bada, – zerbait jaso
{
EhouseTCP . QueryBuff = DP . getData () ; / / Esleitu udp-difusio recepition querybuffer – buffer egoera eHouse kargatzen
/ / DP . setLength (0) ; – pakete tamaina ezarri da, beraz, ez da gauza bera datuak behin eta berriro prozesatu zero
EhouseTCP . QueryReceived () ; / / Deskodetu kontsulta datuen matrizeak eta gailu bete – kontrolagailu eta karga aplikazioaren egoera-taula egoera deskodetzeko
}
}
catch (Exception os)
{/ / Ezikusi akatsak
/ / Ehousecommunication . l ( ” asdfasdfsafsa ” + Os . getMessage ()) ; / / Proba soilik
}
}
ml . oharra () ; / / Multicast udp blokeoa eHouse aplikazio jasotzeko free – blokeoa multicast askatu
ds . itxi () ; / / Itxi datagram socket amaieran – socket ixten amaieran
}
Multicast blokeoa Android gailu batzuetan beharrezkoa izan daiteke .
Tokiko Broadcast telefono mugikorren kasuan UDP gaituta egon daiteke edo ez, telefono mugikorra firmware arabera .
Daiteke ere behin betiko bateria aurreztea eta segurtasun arrazoiak ezgaitzeko edo sarea PUZaren karga murrizteko lanean .
(Kontuan izan kernel konfigurazioa: CONFIG_IP_MULTICAST ez da ezarri) .
Horrez gain , suebaki lokalik daiteke eredu batzuk blokeatu behar, eta, portu jakin batean (lehenetsia 6789) transmisioa aktibatzeko .
Broadcast GPRS Internet konexioak erabiliz kanpo , EDGE , 3G , 4G blokeatuta daiteke edo sare-operadoreak desblokeatu . Gehienetan , Hala eta guztiz ere , espero behar , hori konpondu ahal izateko, esteka erabilera minimizatu .
Telefono mugikorraren eredu batzuk , Software ezartzeko kontrolagailu UDP jasotzeko egoera oso zaila da, edo are ezinezkoa izan daiteke . Firmware berezi niebrandowanego edo smartphone erabili behar izatea .
Horrez gain , arreta berezia jarri behar denean upgradowaniu firmware eta egiaztatu ezaugarri guztiak behar bezala lan koadroan , bestela, akatsak diagnostikoa oso zaila izango da .
HTC telefono batzuk eta beste produktu batzuk Android sistema eragilearen bertsio 2 baino txikiagoa duten oinarrituta . 3 . 3 ikusitako guztira bloke UDP harrera broadcastu .
Android bertsioa izan zen (2 . 1 – 2 . Epea 01 3 . 01 . 2010 (e) – 14 . 06 . 2011)
Ezin baduzu jaso UDP broadcastu deskargatu eta instalatu , New Android ROM bertsioa gutxienez 2 . 3 . 3 (June 14 , 2011) , lan karga UDP-difusio zuzentasuna probatu .
Kernel Version 2 . 6 . 35 . 10 – htcg3ef43272 – kernel @ and18 – 2 # 1 .
No . 3software . 14 . 405 . 1 .
Telefono antzeko arazoak dituzten beste marka , mesedez, deskargatzeko Firmware Android Rom fabrikatzaileak , gutxienez 2 bertsioa . 3 . 3 .
Kontuan izan UDP Paketeak funtsezko ezaugarriak .
Asinkronoak dira eta datuak irakurri akatsak sor ditzake irakurtzeko behar , beren galera (shedding) , batez ere, ekipamendu motela , loturak , konbinatu eta PUZ karga handia okupazioa smartphones eta konprimituak .
Udp egoerari buruzko datuak checksum datuen baliozkotasuna egiaztatu equiped .
Hasiera Automatika ekoizlea eHouse Home Automation eHouse
eHouse kontrolagailu – Home Automation eHouse