ehouse ēku automatizācijas sistēmu – Android programmatūra, lai saņemtu statusu kontrolieru UDP

Ethernet Mājas automatizācijas eHouse ļauj automātiski nosūtīt statusa broadcastu UDP (UDP) , kas var saņemt visas jūsu LAN vai WiFi un IP ierīcēm nosacījumam atbilstošu – Atrasts vietējā maska ​​255 . 255 . 255 . 0 , kas tiek pārraidīts off statuss IP adreses kontrolieru 192 . 168 . 0 . x . UDP Raidījums ļauj atslēgt lejupielādes statusu TCP / IP klienta , kas prasa savienojumu ar kontrolieri . UDP Broadcast ir bezsavienojuma protokols , sējai datiem un neatkarīgi no skaita uztvērējierīču nav slodze vairāk CPU vai tīkla pieslēgumiem .
Vienkāršs UDP raidījums uzņemšanas funkcija ar viedtālruņiem , paneļi un Android tabletes ir parādīts zemāk .
Tādēļ ir bezgalīga cilpa, pamatojoties uz šīs funkcijas , Jums ir nepieciešams, lai izveidotu pavedienu (Diskusija) strādā fonā , piešķirot tam zemāko prioritārs darbs .
Citādi , šīs funkcijas izpilde bloķēt izpildi citas programmas pasākumiem .
Pirmkods saņemšanas UDP Broadcast Android platformas:
valsts spēkā UDP (int osta) / / parametrs ostas uzņemt noklusēto pārraidīt 6789 – statuss binārā kontrolieris
{
baits [] broadcastadr = jauns baits [4] ;
baits [] localadr = jauns baits [4] ;
WifiManager wifi = (WifiManager) getSystemService (konteksts . WIFI_SERVICE) ; / / Wifi vadītājs
DhcpInfo DHCP = wifi . getDhcpInfo () ; / / Get info no wifi DHCP
ja (DHCP == null) / / get noklusējuma vērtība ir invalīds ja DHCP tīkls ehouse
{/ / Nav DHCP vai par ierīci kļūda
broadcastadr [0] = (baits) 192 ;
broadcastadr [1] = (baits) 168 ;
broadcastadr [2] = (baits) 0 ;
broadcastadr [3] = (baits) 255 ;
}
cits / / DHCP
{
apraide = int (DHCP . IPAddress & ; ; DHCP . netmask) | ~ DHCP . netmask ; / / Par UDP raidījuma – Ja jūs vēlaties, lai pārraidīt datus par funkciju
kontrolieris saņem tikai statusu
par (int k = 0 ; k < ; 4 ; K + +) broadcastadr [K] = (baits) ((raidījums> ; > ; k * 8) un ; 0xFF) ;
vietējais int = (DHCP . IPAddress) ; / / Vietējo IP adresi DHCP
par (int k = 0 ; k < ; 4 ; K + +) localadr [K] = (baits) ((vietējā> ; > ; k * 8) un ; 0xFF) ; / / Par vietējo ip adresi
}
izmēģināt
{
DS = jauns DatagramSocket (osta) ; / / / Klausīšanās par UDP ostas datiem no jebkuras IP
iekšā masku – UDP ligzda izveidot instanci vietējās ostas numuru
}
nozveja (Izņēmums e)
{
/ / Ehousecommunication . l ( ” Kļūda Inet: get adresi ” + E . getMessage ()) ; testam
}
izmēģināt
{
DS . setBroadcast (patiess) ; / / Ieslēgt sūtīt apraides ziņu – pārraidei
DS . setReuseAddress (patiess) ; / / Ieslēgt vairāku ligzda izmantot to pašu IP adresi
/ / DS . setSoTimeout (400) ; / / Reģistratūra noildze
}
nozveja (Izņēmums IO)
{/ / Ignorēt kļūdas, bet mēs aizsargāt pret pieteikumu un sistēmas kļūdas
}
/ / * UDP raidījums TESTS – broadcastu tests UDP raidījums no tālruņa vai tableti – nākotnes komunikāciju ar pieteikumu par
/ * Centieties
{
DatagramPacket dd = jauns DatagramPacket ( ” Sveiki Vārda Android UPD TESTS ” . getBytes () , 0 , ” Sveiki Vārda Android UPD TESTS ” . garums () ,
InetAddress . getByAddress (broadcastadr) , osta) ;
DS . nosūtīt (dd) ; / / Nosūta DatagramPacket
}
nozveja (Izņēmums e)
{
ehousecommunication . l ( ” Pārraidīt datagramma pakešu kļūda: ” + E . getMessage ()) ;
}
* /
MulticastLock ml = wifi . createMulticastLock ( ” Multicast ļāva atslēga ” ) ;
/ / Izveidot gadījums bloka multicast un broadcastu
ml . Iegūt () ; / / Multiraides slēdzene Enable UDP apraides saņemšanu – To var atslēgt Dažas Android viedtālruņus batery taupīšanas nolūkos –
broadcastu UDP atbalsts aktivizē tālruni, ja tas ir bloķēts, un tikai invalīdiem
bet (! ehousecommunication . Pārtraukt) / / bezgalīga cilpa UDP uztveršanai
{/ / Bezgalības cilpas saņem UDP statusu
DatagramPacket DP = jauns DatagramPacket (ziņu , ziņa . garums) ; / / Izveidot UDP datagrammu pakešu buferis, izmantojot datu – izmanto UDP paketes
buferis ” ziņa ”
mēģiniet {
DS . saņemt (DP) ; / / UDP pakešu uztveršana no eHouse sistēmas – saņem pakešu UDP portu UDP socket
ja (DP . getLength ()> ; 0) / / ja izmērs paku lielāka par nulli – kaut saņēma
{
EhouseTCP . QueryBuff = DP . getData () ; / / Piešķirt UDP raidījums recepition querybuffer – iekrauj bufera statusa ehouse
/ / DP . setLength (0) ; – paketes izmērs ir iestatīts uz nulli tā, lai apstrādātu pašus datus atkārtoti
EhouseTCP . QueryReceived () ; / / Decode vaicājuma datu masīvi un aizpildīt ierīces – dekodē statusu kontrolieriem un slodzes pieteikuma statusu galda
}
}
nozveja (Izņēmums os)
{/ / Ignorēt kļūdas
/ / Ehousecommunication . l ( ” asdfasdfsafsa ” + OS . getMessage ()) ; / / Par testu tikai
}
}
ml . atbrīvošanas () ; / / Multiraides UDP slēdzene bezmaksas uzņemšanai eHouse pieteikumu – izlaidumi bloķēšanas multicast
DS . tuvu () ; / / Aizvērt datagrammu ligzdu beigās – aizver ligzdu beigās
}
Multicast atslēga var būt nepieciešama dažos Android ierīcēm .
Vietējais Raidījums UDP gadījumā mobilo telefonu var ieslēgt vai ne atkarībā no mobilo telefonu firmware .
To var arī pastāvīgi atslēgts akumulatora taupīšanas un drošības apsvērumu dēļ vai lai samazinātu CPU slodzi uz tīklu darbā .
(Piezīme kodola konfigurācija: CONFIG_IP_MULTICAST nav noteikts) .
Turklāt , daži modeļi var tikt bloķēta ar vietējo ugunsmūri un nepieciešams, lai aktivizētu nosūtīšanu uz konkrētu portu (noklusējums 6789) .
Ārpus Broadcast kad, izmantojot GPRS interneta savienojumus , EDGE , 3G , 4G var aizslēgt un atslēgt no tīkla operatora . Biežāk , tomēr , būtu sagaidāms , ka tā ir noteikta, lai samazinātu izmantošanu saites .
Dažos mobilo tālruņu modeļiem , Programmatūras ieviešanas statuss kontrolieru saņēma UDP var būt ļoti grūti vai pat neiespējami . Var būt nepieciešams izmantot īpašu firmware niebrandowanego vai viedtālrunis .
Turklāt , jāuzmanās, kad upgradowaniu programmaparatūras un pārbaudiet, vai visas funkcijas strādā pareizi no kastes , citādi no kļūdām diagnoze būs ļoti grūti .
Pamatojoties uz dažiem HTC telefoniem un citiem produktiem, kas satur Android operētājsistēmas versija zemāka par 2 . 3 . 3 novēroja kopējo bloku UDP uzņemšana broadcastu .
Tas bija Android versija (2 . 1 – 2 . 3 perioda 01 . 01 . 2010 – 14 . 06 . 2011)
Ja jūs nevarat saņemt UDP broadcastu lejupielādēt un instalēt , Jaunais Android ROM versija vismaz 2 . 3 . 3 (14 jūnijs , 2011) , kas pārbaudīta pareizību darba slodzes UDP raidījuma .
Kodola versija 2 . 6 . 35 . 10 – htcg3ef43272 – kodolu @ and18 – 2 # 1 .
Nē . 3Programmatūras . 14 . 405 . 1 .
Par citiem zīmoliem tālruņiem ar līdzīgām problēmām , lūdzu, lejupielādējiet programmaparatūras Android Rom no ražotāja , versija vismaz 2 . 3 . 3 .
Ievērojiet arī būtiskās pazīmes UDP paketes .
Tie ir asinhronā un prasa lasot par to, kas var izraisīt datu lasīšanas kļūdas , to zaudējumu (izplatīšanos) , it īpaši ar lēnu aprīkojumu , saites , apvieno lielu slodzi un CPU okupācijas smartphones un tabletes .
UDP statusa dati ir aprīkots ar kontrolsummu, lai pārbaudītu derīgumu datu .
Mājas automatizācijas Producents ehouse Mājas automatizācijas ehouse
ehouse kontrolieri – Mājas automatizācijas ehouse