eHouse շենք Ավտոմատացման համակարգեր – Android Software ստանալ կարգավիճակ Կարգավորիչներ միջոցով UDP

Ethernet Home Automation eHouse հնարավորություն է տալիս Ձեզ ինքնաբերաբար ուղարկել կարգավիճակ broadcastu UDP (տարբ Datagram արձանագրություն) , որը կարող է ստանալ բոլոր սարքերը ձեր LAN կամ WiFi եւ IP պայմանին բավարարելու – Գտնվել է 255 տեղական դիմակ . 255 . 255 . 0 , որը հեռարձակել Off կարգավիճակի IP-հասցեները վերահսկողները 192 . 168 . 0 . x . UDP Հեռարձակման Ձեզ թույլ է տալիս անջատել ստանալ կարգավիճակ TCP / IP հաճախորդին , որը պահանջում է հետ կապ վերահսկիչ . UDP Հեռարձակման է connectionless արձանագրությունը , տարածման համար տվյալների եւ անկախ համարը ստացող սարքերի չի Բեռնել այլ պրոցեսորը կամ ցանցային հղումներ .
Simple UDP հեռարձակվող ընդունարան ֆունկցիան սմարթֆոնների , վահանակներ եւ Android Ցուցանակներ է ներքո .
Ուստի անվերջ LOOP հիման վրա այս գործառույթը , Ձեզ անհրաժեշտ է ստեղծել մի թեմա (Thread) աշխատում է հետին , տալով այն ամենացածր առաջնահերթ աշխատանքներ .
Այլապես , կատարումը: Այս գործառույթը արգելափակել կատարումը այլ գործունեության ծրագրի .
Ելակետային կոդը ստանալու համար UDP հեռարձակվող Android հարթակ:
հասարակական անվավեր UDP (int նավահանգիստ) / / պարամետր Պորտ վերցնել նախնական հեռարձակվել 6789 – կարգավիճակը երկուական վերահսկիչ
{
բայտ [] = broadcastadr նոր բայտ [4] ;
բայտ [] = localadr նոր բայտ [4] ;
WifiManager WiFi = (WifiManager) getSystemService (Համատեքստ . WIFI_SERVICE) ; / / Wifi Manager
DhcpInfo DHCP = WiFi . getDhcpInfo () ; / / Get մասին է WiFi DHCP
եթե (DHCP առ ==) / / ստանալ նախնական արժեքը հաշմանդամ է, եթե DHCP ցանցը eHouse
{/ / Ոչ DHCP կամ սխալ է սարքի
broadcastadr [0] = (բայտ) 192 ;
broadcastadr [1] = (բայտ) 168 ;
broadcastadr [2] = (բայտ) 0 ;
broadcastadr [3] = (բայտ) 255 ;
}
ԱՅԼ / / DHCP
{
հեռարձակվող = int (DHCP . IPAddress & ; ; DHCP . netmask) | ~ DHCP . netmask ; / / UDP հեռարձակման համար – Եթե ​​դուք ցանկանում եք հեռարձակելու մասին տվյալների գործառույթը
վերահսկիչ միայն ստանում կարգավիճակ
համար (int k = 0 ; k < ; 4 ; k + +) broadcastadr [K] = (բայտ) ((հեռարձակվում> ; > ; K * 8) & ; 0xFF) ;
Տեղական. int = (DHCP . ipaddress) ; / / Տեղական IP հասցեն DHCP
համար (int k = 0 ; k < ; 4 ; k + +) localadr [K] = (բայտ) ((տեղական> ; > ; K * 8) & ; 0xFF) ; / / Տեղական IP հասցեն
}
փորձել
{
DS = նոր DatagramSocket (նավահանգիստ) ; / / / Լսողական եւ UDP նավահանգիստ տվյալները ցանկացած ՄՍ
ներսում դիմակ – UDP socket ստեղծել ատյանի տեղական պորտի համարը
}
catch (բացառությունները, ե)
{
/ / Ehousecommunication . l ( ” Սխալ inet: get հասցեն ” + E . getMessage ()) ; test-
}
փորձել
{
DS . setBroadcast (իսկական) ; / / Թույլատրել ուղարկել հեռարձակման հաղորդագրություն – փոխանցման համար
DS . setReuseAddress (իսկական) ; / / Միացնել բազմակի socket օգտագործել նույն IP հասցեն,
/ / Ds . setSoTimeout (400) ; / / Ընդունելություն timeout
}
catch (բացառությունները IO)
{/ / Անտեսել սխալները, բայց մենք պաշտպանել դեմ դիմումը եւ համակարգը սխալներով
}
/ / * UDP հեռարձակվող TEST – broadcastu test UDP հեռարձակվել են հեռախոսի կամ դեղահատ – հետագա կապի հետ կիրառման
/ * Փորձեք
{
DatagramPacket dd = նոր DatagramPacket ( ” Բարեւ բառն Android upd Test ” . getBytes () , 0 , ” Բարեւ բառն Android upd Test ” . երկարություն () ,
InetAddress . getByAddress (broadcastadr) , Պորտ) ;
DS . ուղարկել (dd) ; / / Ուղարկում է DatagramPacket
}
catch (բացառությունները, ե)
{
ehousecommunication . l ( ” Փոխանցելու Datagram փաթեթային խմբին: ” + E . getMessage ()) ;
}
* /
MulticastLock մլ = WiFi . createMulticastLock ( ” Multicast հնարավորություն կողպեք ” ) ;
/ / Ստեղծել ատյանի շրջափակման եւ multicast broadcastu
մլ . Ձեռք բերել () ; / / UDP Multicast Կողպեքը ընձեռել հեռարձակվող ընդունելություն – Այն կարող է անջատված որոշ Android սմարթֆոններ համար batery փրկելու նպատակով –
broadcastu UDP Աջակցություն ակտիվացնում է հեռախոսը, եթե այն փակ է, եւ միայն հաշմանդամ
իսկ (! ehousecommunication . Դադարեցնել) / / անսահման LOOP համար UDP ընդունելության
{/ / Անսահման LOOP ստանալու UDP կարգավիճակ
DatagramPacket DP = նոր DatagramPacket (հաղորդագրությունը , հաղորդագրություն . երկարություն) ; / / Ստեղծել UDP datagram փաթեթային տվյալների բուֆերային օգտագործելով – օգտվում է UDP փաթեթ
բուֆեր ” հաղորդագրություն ”
try {
DS . ստանալու համար (DP) ; / / UDP փաթեթների ընդունելություն է eHouse համակարգ – ստանում է փաթեթային UDP նավահանգիստ է UDP socket ա
եթե (DP . getLength ()> ; 0) / / եթե չափը մեծ է զրոյից ծանրոցների – ինչ – որ բան է ստացել
{
EhouseTCP . QueryBuff = DP . getData () ; / / Վերագրելու UDP հեռարձակման recepition querybuffer – բեռնվել մեջ բուֆերային կարգավիճակի eHouse
/ / DP . setLength (0) ; – փաթեթային չափը սահմանվում է զրոյի որպեսզի գործընթացում նույն տվյալներն անգամ
EhouseTCP . QueryReceived () ; / / Վերծանել հարցումների տվյալների arrays եւ լրացնել սարքեր – decodes կարգավիճակը կարգավարների եւ բեռների դիմումի կարգավիճակը սեղանների
}
}
catch (բացառությունները ՕՀ)
{/ / Անտեսել սխալները
/ / Ehousecommunication . l ( ” asdfasdfsafsa ” + Ելքի . getMessage ()) ; / / Test համար միայն
}
}
մլ . ազատ () ; / / UDP Multicast Կողպեքը անվճար ընդունելության eHouse դիմումը – Հաղորդագրություններ արգելափակման multicast
DS . փակել () ; / / Փակել datagram socket վերջում – փակում է socket վերջում
}
Multicast կողպեքը կարող են պահանջվել որոշ Android սարքերի համար .
Տեղական. Հեռարձակման UDP դեպքում բջջային հեռախոսների կարող է հնարավորություն տալ, թե ոչ, կախված բջջային հեռախոսի որոնվածը .
Այն կարող է նաեւ մշտապես անջատված մարտկոցի էներգախնայողության եւ անվտանգության նկատառումներից ելնելով, կամ կրճատել բեռի պրոցեսորի վրա ցանցի աշխատանքին .
(Նշենք, որ միջուկը կոնֆիգուրացիայից CONFIG_IP_MULTICAST չէ) .
Ի լրումն , որոշ մոդելներ կարող է կասեցվել է տեղական firewall եւ պետք է ակտիվացնել փոխանցումը մի տվյալ նավահանգիստ (լռելյայն 6789) .
Դրսում հեռարձակել օգտվելիս GPRS ինտերնետային կապի , EDGE , 3G , 4G կարող է փակել կամ վերաբացված է ցանցային օպերատորի . Ավելի հաճախ , սակայն , Պետք է սպասել , որ դա ամրագրված է, որպեսզի նվազագույնի հասցնել օգտագործումը հղումը .
Որոշ մոդելների բջջային հեռախոսների համար , Ծրագրային ապահովման իրականացման կարգավիճակը կարգավարների ստացող UDP կարող են լինել շատ դժվար է կամ նույնիսկ անհնարին է . Կարող են պահանջել օգտագործման հատուկ որոնվածը niebrandowanego կամ սմարթֆոն .
Ի լրումն , Խնամք պետք է ձեռնարկվեն, երբ upgradowaniu որոնվածը ու ստուգել, ​​որ բոլոր հատկանիշները են պատշաճ դուրս է վանդակում , այլապես ախտորոշմամբ սխալները շատ դժվար կլինի .
Հիման վրա որոշ HTC հեռախոսների եւ այլ ապրանքների պարունակող Android օպերացիոն համակարգի տարբերակը ավելի ցածր է, քան 2 . 3 . 3 դիտարկել ընդհանուր բլոկ UDP ընդունարան broadcastu .
Այս տարբերակը Android (2 . 1 – 2 . 3 – րդ շրջանում 01 . 01 . 2010 – 14 . 06 . 2011)
Եթե ​​դուք չեք կարող ստանալ UDP broadcastu թարմացումը ներլցնելու եւ տեղադրելու , Նոր Android ROM Ծանոթություններ առնվազն 2 . 3 . 3 (June 14 , 2011) , որը փորձարկվում է կոռեկտության աշխատանքի ծանրաբեռնվածության UDP հեռարձակումը .
Kernel տարբերակ 2 . 6 . 35 . 10 – htcg3ef43272 – kernel @ and18 – 2 # 1 .
Ոչ . 3software . 14 . 405 . 1 .
Այլ ապրանքանիշեր հեռախոսների հետ նմանատիպ խնդիրներ , խնդրում ենք ներբեռնել Android որոնվածը ROM արտադրողի , Ծանոթություններ առնվազն 2 . 3 . 3 .
Նշենք նաեւ, որ հիմնական հատկանիշները են UDP փաթեթների .
Նրանք պահանջում են կարդում, թե ինչ կարող է առաջացնել տվյալների asynchronous եւ կարդալ սխալները , նրանց կորուստը (shedding) , հատկապես դանդաղ սարքավորումներ , Հղումներ , համատեղել բարձր բեռը եւ պրոցեսորի Զբաղմունք սմարթֆոնների եւ Ցուցանակներ .
UDP կարգավիճակը տվյալների equiped է checksum ստուգելու գործողությունը տվյալները .
Home Automation պրոդյուսեր eHouse Home Automation eHouse
eHouse Կարգավորիչներ – Home Automation eHouse