घर स्वचालन नियंत्रकों के द्विआधारी स्थिति Decoding – मुक्त स्रोत कोड

गृह स्वचालन , बिल्डिंग प्रबंधन eHouse – माइक्रोप्रोसेसर नियंत्रकों की स्थिति Decoding
गृह स्वचालन नियंत्रण लैन या वाईफ़ाई जुड़ा पैनल द्वारा प्राप्त , के माध्यम से UDP (प्रयोक्ता आंकड़ारेख प्रोटोकॉल) .
द्विआधारी के रूप में मानक फ्रेम स्वागत स्थिति , साथ नियंत्रक लेख में चर्चा किया गया था ” इंटेलिजेंट बिल्डिंग eHouse नियंत्रक स्थिति पैकेज ” .
Decoding फ्रेम पैक से डेटा के हर बिट का विश्लेषण करने की जरूरत है .
इसके अलावा , नियंत्रक के प्रत्येक प्रकार:

  • RoomManager
  • ExternalManager
  • HeatManager
  • InputExtender
  • CommManager
  • LevelManager
  • EthernetRoomManager

डिजिटल आदानों की राशि में एक फर्क है , माप आदानों , डिजिटल outputs , dimmers , निगरानी कार्यों और एल्गोरिदम कि परिणाम , कि मानक फ्रेम बदलना में डेटा नियंत्रक के प्रकार पर निर्भर करता है .
बिट द्वारा बिट decoding के लिए नियंत्रक के प्रत्येक प्रकार के लिए स्वतंत्र रूप से की जरूरत में यह परिणाम .
माइक्रोप्रोसेसर नियंत्रकों के सभी प्रकार के कार्यान्वयन के लिए बना सकते हैं और फ्रेम decoding एल्गोरिथ्म परीक्षण के मामले में एक महीने तक लग सकते हैं .
करने के लिए एक न्यूनतम करने के लिए इस समय कम से कम , eHouse से उधार एल्गोरिथ्म पेश करने के लिए तैयार को सुविधाजनक बनाने के . exe आवेदन , स्वचालित रूप से स्पर्श पैनल के टेम्पलेट के रिकॉर्ड (गोलियों के लिए) Windows XP में नियंत्रक और लोड डेटा से सभी जानकारी व्याख्या , विस्टा , 7 , 8 .
स्वतः eHouse सॉफ्टवेयर पुस्तकालयों में डेटा लोड करने के बाद , कोड की कुछ लाइनों के साथ , आप कुछ ही मिनटों में अपने नियंत्रण एल्गोरिदम eHouse प्रणाली बना सकते हैं .
EHouse स्थिति मानक के द्विचर फ्रेम decoding सॉफ्टवेयर टेम्पलेट लायब्रेरी में पैनल के लिए लागू किया जाता है . यह बाइनरी किया जाना चाहिए , eHouse बिना ईथरनेट नियंत्रकों से प्रत्यक्ष decoding स्थिति के लिए . Exe आवेदन पर्यवेक्षण .
पूरे फ्रेम (माइक्रोप्रोसेसर नियंत्रकों लिए eHouse1 RM Decoding , EM , ) एचएम प्रक्रिया set_rm समारोह से बाहर किया जाता है (str: array_of_char ; TCP_INDEX_INC: पूर्णांक) ;
मानकों बफर की स्थिति और पाली (भरपाई) का कार्य कर रहे हैं . बफर की स्थिति से सभी डेटा प्राप्त होता है . ऑफसेट संचरण के प्रकार पर निर्भर करता है (विस्तारित पते , साधारण , और अन्य भविष्य संचार एल्गोरिदम पर निर्भर अनुप्रयोगों) .
यह स्वचालित रूप से प्रत्येक नियंत्रक के लिए सरणी स्थिति व्यक्तिगत भरता और फिर सीधे डेटा या अद्यतन डेटा में हेरफेर कर सकते हैं स्क्रीन स्पर्श पैनल पर स्वत: .
इस समारोह में UDP सॉकेट घटक से प्राप्त डेटा की घटना प्रक्रिया (TNMUDP में सक्रिय है – बाइनरी onDataReceived घटना में) कहा जाता है .
स्वागत इस प्रकार है:
TForm1 प्रक्रिया . binaryDataReceived (प्रेषक: TComponent ;
NumberBytes: पूर्णांक ; FromIP: स्ट्रिंग ; पोर्ट: पूर्णांक) ;
var सी: सरणी [0 . . चार के 1024] ;
MyStream: TMemoryStream ;
शुरू करना
अगर filesystem_status फिर से बाहर निकलें ; / / कोई फाइल सिस्टम filesystem_status यदि
MyStream: = TMemoryStream . बनाना ; / / डेटा की एक धारा बनाएँ
द्विचर . ReadStream (MyStream) ; / / डेटा स्ट्रीम पढ़ें
MyStream . पढ़ें (सी [0] , NumberBytes) ; / / बफर सी भार
set_rm (सी , 1) ; / / धर्मान्तरित द्विआधारी डेटा और भार 1 eHouse नियंत्रकों के लिए रजिस्टरों rm [सूचकांक]
Test_save ; / टेस्ट / आसान ऑपरेशन के लिए एक पाठ फ़ाइल के लिए उत्पादन में रिकार्ड
update_panel ; नियंत्रण कक्ष के लिए / / लोड डेटा
अंत ;
यह आप के लिए स्वचालित रूप से और गैर की अनुमति देता है – एक वायरलेस या वाई पर डेटा की आक्रामक संग्रह – UDP (प्रयोक्ता आंकड़ारेख प्रोटोकॉल) के माध्यम से पैकेज के प्रसारण के साथ फाई .
क्या और अधिक सर्वर के लिए एक खुला कनेक्शन की आवश्यकता नहीं है केवल बंदरगाह के प्रसारण पर सुनता है ‘ 6789 ‘ डिफ़ॉल्ट या अन्य .
त्रुटियाँ लिंक , संजाल , routers एक निलंबन या अनिर्दिष्ट सॉफ्टवेयर त्रुटियों में परिणाम नहीं (टीसीपी सर्वर के साथ संचार के मामले में के रूप में) , लेकिन बस डेटा या उपयुक्त सर्वर UDP क्लाइंट अनुप्रयोग को प्रभावित किए बिना डेटा अद्यतन करने के लिए गायब हो जाता है .

चेतावनी! . यदि आप eHouse घर स्वचालन के लिए एक विंडोज पर नियंत्रण सॉफ्टवेयर , यह करने के लिए एक आवेदन पत्र में सभी एल्गोरिदम को लागू करने के लिए आवश्यक है , जो डेटा का विश्लेषण करता है और सभी एल्गोरिदम और उन्हें कल्पना . हम कभी – कभी एक ही पीसी पर है कि 2 UDP श्रोता सॉकेट मौजूद नहीं कर सकते मनाया .
पुस्तकालय बाइनरी में सबसे महत्वपूर्ण चर:
boiler_alarm: बूलियन = झूठी ; / / बॉयलर अलार्म अलार्म क्रमादेशित तापमान ऊपर
/ / ओवर – तापमान अलार्म बॉयलर
bonfire_stat: पूर्णांक ; अलाव / / हीटिंग 0 स्तर – 7 द्विआधारी मोड के लिए – रोजगार की स्थिति आग
/ / 0 – आग से – गर्मी नहीं करता
/ / 1 – आग बुझाने / पर => ; ; हरी स्तर < ; ; अस्थायी जैकेट (हरी निमिष एलईडी) – चमक हरे रंग की समय सीमा समाप्त
/ / 2 – => पर आग ; ; हरी स्तर> ; ; = अस्थायी जैकेट> ; ; पीले स्तर – histeressis (हरी एलईडी) – हरा
/ / 3 – => पर आग ; ; पीले स्तर – histeressis> ; ; अस्थायी जैकेट> ; ; histeressis स्तर + पीला) (ग्रीन + पीला एल ई डी) – हरा – पीला
/ / 4 – => पर आग ; ; पीले स्तर + histeressis> ; ; अस्थायी जैकेट> ; ; लाल स्तर – histeressis (पीला) – पीला
/ / 5 – बिना शर्त => ; ; लाल स्तर – histeressis < ; ; अस्थायी जैकेट < ; ; histeressis स्तर + लाल (लाल + पीला एल ई डी) पीला – लाल
/ / 6 – बिना शर्त => ; ; अस्थायी जैकेट> ; ; histeressis स्तर + लाल (लाल एलईडी निरंतर) – लाल
/ / 7 – बिना शर्त => ; ; अस्थायी जैकेट> ; ; अलाव अलार्म अलार्म (लाल निमिष एलईडी) – लाल चमक
bonfire_sensor_error: बूलियन = झूठी ; त्रुटि / / अलाव सेंसर बहुत ज्यादा अलग दोनों के बीच पानी जैकेट तापमान सेंसरों
/ / त्रुटि चिमनी पोशिश तापमान बहुत बड़ा अंतर सेंसर
recuperator_status: स्ट्रिंग ; / / आरोग्यलाभ की स्थिति , वेंटिलेशन , हवा हीटिंग – अच्छा हो जानेवाला और वेंटिलेशन स्थिति
recu_winter: बूलियन = झूठी ; / / अच्छा हो जानेवाला गर्मी / सर्दी, गर्मी एक्सचेंजर मोड सक्षम / अक्षम – अच्छा हो जानेवाला सर्दियों / गर्मियों
recu_manual_amalva: बूलियन = सच ; / / Amalva अच्छा हो जानेवाला के लिए अच्छा हो जानेवाला मोड ऑटो / पुस्तिका (आंतरिक controler amalva द्वारा प्रबंधित ऑटो , eHouse HeatManager के लिए मैनुअल) / /
अच्छा हो जानेवाला amalva मैनुअल / ऑटो
went_cooler: बूलियन = सच ; / जल / / वेंटिलेशन या प्रणाली आरोग्यलाभ आरोग्यलाभ या बंद / GWC में कूलर के लिए कूलर
went_gwc: बूलियन = झूठी ; / / GHE (जमीन गर्मी eXchanger) पर / बंद servomotor – जमीन गर्मी eXchanger मोटर पर / बंद
went_aux_gwc_fan: बूलियन = झूठी ; / / सहायक GWC / जमीन गर्मी eXchanger के लिए वेंटीलेटर पर / स्विच बंद प्रशंसक – GWC सहायता प्रदान की प्रशंसक
bonfire_dgp: बूलियन = झूठी ; / / अलाव गर्म हवा के वितरण प्रणाली सक्षम / अक्षम – गर्म हवा के चिमनी डीजीपी से फैन वितरण
ventilation_on: बूलियन = झूठी ; / / वेंटिलेशन वर्तमान में / पर काम कर रहा है बंद – वेंटिलेशन और गर्मी वसूली शामिल
heater_pump: बूलियन = सच ; / / पर / बंद वेंटिलेशन के लिए हीटर के लिए पम्प – पंप और radiators के लिए वेंटिलेशन सर्किट हीटिंग
three_ways_cutoff: पूर्णांक = 0 ; / / तीन cutoff 0 बंद दिशा तरीके , 1 के स्तर में वृद्धि , – 1 स्तर कम) रोटेशन विद्युत की दिशा – रास्ता वाल्व
solar_pump: बूलियन = झूठी ; / / / बंद सौर पंप – सौर पंप
boiler_on: बूलियन = झूठी ; / / बॉयलर सक्षम / अक्षम – पर / बंद बायलर
boiler_pump: बूलियन = झूठी ; / / पर / बंद बायलर पंप के स्थिति – पर / बंद बायलर पंप
boiler_fuel_out: बूलियन = झूठी ; / Aproximate ईंधन की / बॉयलर बाहर (हीटिंग के घंटे गिनती) – अनुमान के अनुसार ठोस ईंधन बॉयलर (बॉयलर के आपरेशन के घंटे के आधार पर गणना) के लिए ईंधन की कमी
boiler_power_on: बूलियन = झूठी ; / / बॉयलर / बंद पर supplay शक्ति ; – पर / बंद बॉयलर शक्ति
boiler_fuel_supply_override: बूलियन = झूठी ; / / ओवरराइड सप्लायर ईंधन बायलर (eHouse / आंतरिक बॉयलर नियंत्रक द्वारा नियंत्रण) – माता – पिता / बंद पर नियंत्रित ईंधन वितरण प्रणाली eHouse
bonfire_pump: बूलियन = झूठी ; / / अलाव पंप पर / बंद की स्थिति – आग पंप पर / बंद
recu_speed: पूर्णांक = 0 ; / / अच्छा हो जानेवाला 0 Speeed . . 3 – अच्छा हो जानेवाला गति
recu_temperature: पूर्णांक ; / / 0 RECU के तापमान स्तर . . Amalwa 30C तापमान अच्छा हो जानेवाला
_recu_mode: स्ट्रिंग = ‘ ‘ ; आरोग्यलाभ / / पाठ के रूप में यह HEatManager नियंत्रण कक्ष (eHouse मोड में . exe) – नियंत्रण कक्ष आवेदन HeatMAnagerem eHouse के रूप में अच्छा हो जानेवाला मोड . exe
चला गया: स्ट्रिंग ; / / पाठ एक HeatManager नियंत्रण कक्ष (eHouse के रूप में वेंटिलेशन की स्थिति . exe) – वेंटिलेशन स्थिति eHouse की HeatManager पैनल में के रूप में एक ही . exe
बायलर , सौर स्ट्रिंग ; बॉयलर / / , एक नियंत्रण कक्ष के रूप में सौर पाठ HeatManager स्थिति (eHouse . exe) – बायलर की स्थिति और सौर पैनल नियंत्रण eHouse (HeatManager) . exe
कोमी: स्ट्रिंग ; / / पाठ एक HeatManager नियंत्रण कक्ष (eHouse के रूप में अलाव की स्थिति . exe) – आग नियंत्रण कक्ष आवेदन heatmanager eHouse के रूप में स्थिति . exe
नियंत्रण रोशनी