ईथरनेट गृह स्वचालन 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