eHouse बिल्डिंग स्वचालन प्रणाली – Android सॉफ्टवेयर UDP के माध्यम से नियंत्रकों की स्थिति प्राप्त करने के लिए

ईथरनेट गृह स्वचालन eHouse आप स्वचालित रूप से एक स्थिति broadcastu UDP (प्रयोक्ता आंकड़ारेख प्रोटोकॉल) भेजने के लिए अनुमति , जो अपने लैन या वाईफाई और आईपी में सभी उपकरणों को संतोषजनक स्थिति को प्राप्त कर सकते हैं – स्थानीय मुखौटा 255 में मिला . 255 . 255 . 0 , जो बंद प्रसारित होता है स्थिति नियंत्रकों 192 के आईपी पते . 168 . 0 . x . UDP प्रसारण आप टीसीपी / आईपी ग्राहक के डाउनलोड की स्थिति को निष्क्रिय करने के लिए अनुमति देता है , जो नियंत्रक करने के लिए एक कनेक्शन की आवश्यकता . UDP प्रसारण एक संयोजन प्रोटोकॉल , और प्रचार डेटा के लिए प्राप्त उपकरणों की संख्या की परवाह किए बिना अधिक CPU या नेटवर्क लिंक लोड नहीं करता है .
सरल smartphones साथ UDP प्रसारण स्वागत समारोह , पैनलों और Android गोलियाँ नीचे दिखाया गया है .
इसलिए यह इस समारोह के आधार पर एक अनंत लूप है , आप एक धागा (धागा) पृष्ठभूमि में काम बनाने की जरूरत है , यह सबसे कम प्राथमिकता काम दे .
अन्यथा , इस समारोह के निष्पादन कार्यक्रम की अन्य गतिविधियों के निष्पादन ब्लॉक .
UDP प्रसारण android मंच प्राप्त करने के लिए स्रोत कोड:
सार्वजनिक शून्य (int बंदरगाह) UDP / / पैरामीटर डिफ़ॉल्ट लेने बंदरगाह प्रसारण 6789 – बाइनरी नियंत्रक में स्थिति
{
बाइट [] broadcastadr = नए बाइट [4] ;
बाइट [] localadr = नए बाइट [4] ;
WifiManager वाईफ़ाई = (WifiManager) getSystemService (प्रसंग . WIFI_SERVICE) ; / / Wifi प्रबंधक
Dhcp वाईफ़ाई = DhcpInfo . (getDhcpInfo) ; / / वाईफ़ाई DHCP से जानकारी प्राप्त करें
अगर (dhcp == रिक्त) / / डिफ़ॉल्ट मान प्राप्त करने के लिए निष्क्रिय किया जाता है अगर eHouse डीएचसीपीको नेटवर्क
{/ / कोई DHCP या उपकरण के लिए एक त्रुटि
broadcastadr = [0] (बाइट) 192 ;
broadcastadr = [1] (बाइट) 168 ;
broadcastadr = [2] (बाइट) 0 ;
broadcastadr = [3] (बाइट) 255 ;
}
/ / और DHCP
{
प्रसारण = int (DHCP . IPAddress और ; ; dhcp . नेटमास्क) | ~ dhcp . नेटमास्क ; / / UDP प्रसारण के लिए – यदि आप समारोह पर डेटा प्रसारित करना चाहते हैं
नियंत्रक केवल स्थिति प्राप्त
के लिए (int k = 0 ; कश्मीर < ; 4 ; k + +) broadcastadr [k] (बाइट) = ((प्रसारित> ; > ; कश्मीर 8) और ; 0xFF) ;
स्थानीय int = (dhcp . ipaddress) ; / / स्थानीय आईपी पता dhcp
के लिए (int k = 0 ; कश्मीर < ; 4 ; k + +) localadr [k] (बाइट) = ((स्थानीय> ; > ; कश्मीर 8) और ; 0xFF) ; / / स्थानीय आईपी पते के लिए
}
कोशिश
{
डी एस = नई DatagramSocket (बंदरगाह) ; / / / किसी भी आईपी से UDP पोर्ट डेटा पर सुनकर
एक मुखौटा के अंदर – UDP सॉकेट स्थानीय पोर्ट संख्या का एक उदाहरण बनाने के लिए
}
पकड़ (अपवाद ई)
{
Ehousecommunication / / . एल ( ” त्रुटि मंत्रिमंडल: पते पाने के ” + E . (getMessage)) ; परीक्षण के लिए
}
कोशिश
{
डी एस . setBroadcast (सच) ; / / प्रसारण संदेश भेजने के लिए सक्षम – संचरण के लिए
डी एस . setReuseAddress (सच) ; / / सक्षम कई सॉकेट में एक ही आईपी पते का उपयोग
/ / डी एस . setSoTimeout (400) ; मध्यांतर / / रिसेप्शन
}
पकड़ (अपवाद io)
{/ / त्रुटियों पर ध्यान न दें, लेकिन हम आवेदन और सिस्टम त्रुटियों के खिलाफ की रक्षा
}
/ / * UDP प्रसारण टेस्ट – broadcastu परीक्षण udp अपने फ़ोन या टेबलेट से प्रसारित – के आवेदन के साथ ही भविष्य के संचार
/ * की कोशिश करो
{
तक DatagramPacket dd = नए DatagramPacket ( ” वर्ड Android UPD परीक्षण से नमस्ते ” . (getBytes) , 0 , ” वर्ड Android UPD परीक्षण से नमस्ते ” . (लम्बाई) ,
InetAddress . getByAddress (broadcastadr) , बंदरगाह) ;
डी एस . भेजने के (DD) ; / / एक DatagramPacket भेजता
}
पकड़ (अपवाद ई)
{
ehousecommunication . एल ( ” आंकड़ारेख पैकेट त्रुटि संचारित: ” + E . (getMessage)) ;
}
* /
MulticastLock मिलीलीटर = वाईफ़ाई . createMulticastLock ( ” मल्टीकास्ट सक्षम ताला ” ) ;
/ / ब्लॉक बहुस्त्र्पीय और broadcastu की एक उदाहरण बनाएँ
मिलीलीटर . (मोल) ; / / मल्टीकास्ट ताला सक्षम UDP प्रसारण स्वागत – यह batery बचत प्रयोजनों के लिए कुछ Android के smartphones अक्षम किया जा सकता है –
broadcastu UDP सहायता फोन को सक्रिय करता है, यदि यह बंद है और केवल अक्षम
जबकि (ehousecommunication! . ) बर्खास्त / / udp स्वागत के लिए अनंत लूप
{/ / अनंत udp स्थिति प्राप्त पाश
DatagramPacket dp = नई DatagramPacket (संदेश , संदेश . लंबाई) ; / / UDP आंकड़ारेख पैकेट बफर डेटा का उपयोग कर बनाएँ – UDP पैकेट का उपयोग करता है
बफर ” संदेश ”
try {
डी एस . प्राप्त (डीपी) ; / / EHouse प्रणाली से UDP पैकेट का स्वागत – UDP के पैकेट UDP पोर्ट गर्तिका प्राप्त
अगर (डीपी . (getLength)> ; ) 0 / / के पार्सल के आकार शून्य से अधिक अगर – कुछ प्राप्त किया
{
EhouseTCP . QueryBuff = dp . (getData) ; / / एक UDP प्रसारण recepition querybuffer आवंटित – बफर स्थिति eHouse में लोड
/ / डी पी . setLength (0) ; – पैकेट आकार शून्य पर कार्रवाई करने के लिए इतनी के रूप में नहीं एक ही बार बार डेटा को सेट कर दिया जाता है
EhouseTCP . (QueryReceived) ; / / क्वेरी डेटा arrays समझाना और उपकरणों को भरने – नियंत्रकों और भार आवेदन की स्थिति तालिका डीकोड स्थिति
}
}
पकड़ (अपवाद ओएस)
{/ / त्रुटियों को अनदेखा
Ehousecommunication / / . एल ( ” asdfasdfsafsa ” + ओएस . (getMessage)) ; / / केवल परीक्षण के लिए
}
}
मिलीलीटर . (जारी) ; / / मल्टीकास्ट eHouse आवेदन के स्वागत के लिए udp ताला मुक्त – ताला बहुस्त्र्पीय विज्ञप्ति
डी एस . (बंद) ; / / अंत में आंकड़ारेख गर्तिका – के अंत में गर्तिका बंद कर देता है
}
मल्टीकास्ट ताला कुछ Android उपकरणों में आवश्यक हो सकता है .
मोबाइल फोन के मामले में स्थानीय प्रसारण UDP या सक्षम किया जा सकता है, मोबाइल फोन फर्मवेयर पर निर्भर नहीं .
यह स्थायी रूप से बैटरी की बचत के लिए और सुरक्षा कारणों के लिए भी कर सकते हैं निष्क्रिय किया जा या नेटवर्क पर काम पर CPU लोड को कम .
(कर्नेल विन्यास नोट: CONFIG_IP_MULTICAST सेट नहीं है) .
इसके अलावा , कुछ मॉडलों के एक स्थानीय फ़ायरवॉल द्वारा अवरुद्ध किया जा सकता है और एक दिया बंदरगाह (6789 डिफ़ॉल्ट) पर संचरण को सक्रिय करने की जरूरत है .
प्रसारण जब GPRS इंटरनेट कनेक्शन का उपयोग कर बाहर , Edge के , 3 जी , 4G या बंद किया जा सकता है और नेटवर्क ऑपरेटर द्वारा खुला . अधिक बार , तथापि , उम्मीद की जानी चाहिए , कि यह आदेश में लिंक का उपयोग कम से कम करने के लिए तय हो गई है .
मोबाइल फोन के कुछ मॉडलों में , सॉफ्टवेयर UDP प्राप्त नियंत्रकों के कार्यान्वयन की स्थिति बहुत मुश्किल या असंभव भी हो सकता है . विशेष फर्मवेयर niebrandowanego या smartphone के उपयोग की आवश्यकता हो सकती है .
इसके अलावा , ध्यान जब upgradowaniu फर्मवेयर और है कि सभी सुविधाओं को ठीक बॉक्स के बाहर काम कर रहे हैं लिया जाना चाहिए , अन्यथा त्रुटियों के निदान बहुत मुश्किल हो जाएगा .
कुछ HTC फोन और अन्य उत्पादों एंड्रोइड ऑपरेटिंग सिस्टम संस्करण से कम 2 से युक्त के आधार पर . 3 . 3 एक कुल ब्लॉक UDP स्वागत broadcastu मनाया .
यह android के संस्करण (2 थी . 1 – 2 . 01 की अवधि के 3 . 01 . 2010 – 14 . 06 . +२,०११)
यदि आप UDP broadcastu डाउनलोड और स्थापित नहीं प्राप्त कर सकते हैं , न्यूनतम 2 नई Android ROM संस्करण . 3 . 3 (14 जून , +२,०११) , जो काम के बोझ UDP प्रसारण की शुद्धता का परीक्षण किया .
कर्नेल संस्करण 2 . 6 . 35 . 10 – htcg3ef43272 – कर्नेल @ and18 – # 2 1 .
नहीं . 3software . 14 . 405 . 1 .
इसी तरह की समस्याओं के साथ फोन के अन्य ब्रांडों के लिए , निर्माता से फर्मवेयर Android रोम डाउनलोड करें , कम से कम 2 के संस्करण . 3 . 3 .
यह भी नोट UDP पैकेट के आवश्यक विशेषताओं .
वे अतुल्यकालिक कर रहे हैं और क्या कारण हो सकता है डेटा त्रुटियां पढ़ने के बारे में पढ़ने की आवश्यकता होती है , उनके नुकसान (बहा) , विशेष रूप से धीमी गति से उपकरणों के साथ , लिंक , उच्च लोड और सीपीयू कब्जे smartphones और गोलियों गठबंधन .
UDP स्थिति डेटा checksum में सुसज्जित है डेटा की वैधता की जांच .
गृह स्वचालन निर्माता eHouse गृह स्वचालन eHouse
eHouse नियंत्रकों – गृह स्वचालन eHouse