हाउस व्यक्तिगत दृश्य और eHouse प्रणाली स्वचालन से चित्रमय नियंत्रण – जावा

ग्राफ़िकल दृश्य eHouse घर स्वचालन प्रणाली के लिए विकास के वातावरण प्रदान करता है और अंत उपयोगकर्ताओं ofeHouse प्रणाली के लिए एक स्वतंत्र सॉफ्टवेयर विकास की संभावना बनाता है , संबद्ध कंपनियों और कारोबार करने के लिए व्यक्तिगत योगदान करने के इच्छुक JSE वातावरण में प्रोग्रामिंग (जावा) . जावा के लिए eHouse (eHouse4Java) Android और Windows मोबाइल पुस्तकालयों के लिए संगत है , आप अपने नियंत्रण पैनलों और गोलियों के लिए खुद का सॉफ्टवेयर बनाने के लिए अनुमति .
पुस्तकालय आवेदन टेम्पलेट है और सक्षम बनाता है:

  • विन्यास लोड , नियंत्रकों के नाम , Outputs , निविष्टियां , सेंसर , आदि .
  • संचार प्रणाली नियंत्रक सुनिश्चित
  • प्राप्त करने के लिए और decoding डेटा नियंत्रक का दर्जा
  • नियंत्रण आदेश (वस्तुओं के दृश्य के साथ) रेखांकन या पाठ रूप से भेज (क्षेत्र चयन के साथ)
  • वाईफ़ाई के माध्यम से व्यवस्था पर नियंत्रण , इंटरनेट , एसएमएस , ईमेल
  • ग्राफ़िकल दृश्य और नियंत्रण – ग्राफिक निष्पादित करने की घटनाओं (eHouse प्रणाली के) और उपकरण स्थितियों के साथ जुड़े वस्तुओं का पाठ फ़ाइल लोड
  • नियंत्रक के लिए स्वत: दृश्य (कमरे)

विज़ुअलाइज़ेशन जावा पुस्तकालय का उपयोग कर बनाया जाता है ” स्विंग ” एक के तत्वों के साथ ” JPanel ” , ” JButton ” आदि .
इन वस्तुओं को स्वतः ” डबल – buffered ” , इतना है कि झिलमिलाहट के प्रभाव को समाप्त हो रहा है , जो उपयोगकर्ता के लिए बहुत कष्टप्रद है .
उपयोगकर्ता भी छवि को नियंत्रित कर सकते हैं:

  • में और बाहर ज़ूम
  • ऊपर ले जाएँ , नीचे और पक्ष की ओर से
  • चयन करके वर्तमान दृश्य बदल ” विकल्प ”
  • चयन करके प्रणाली की चित्रमय दृश्य के लिए वापस ” देखना ”

दृश्य eHouse प्रणाली का उदाहरण:
 इंटेलिजेंट होम नियंत्रण eHouse ऑनलाइन ग्राफिक्स और दृश्य - जावा खुला स्रोत
 इंटेलिजेंट होम नियंत्रण eHouse ऑनलाइन ग्राफिक्स और दृश्य - जावा खुला स्रोत
में zooming और बाहर स्केलेबल वेक्टर ग्राफिक्स (एसवीजी) के उपयोग के साथ किया गया था , इतना है कि छवि पैमाने के परिवर्तन के बाद इसकी गुणवत्ता नहीं खोना पड़ता है:
 संपादन पूर्ववत करें

नया! ;
नियंत्रकों स्थिति स्वचालित रूप से प्रदर्शित कर रहे हैं:
यह एक कंप्यूटर नेटवर्क या इंटरनेट के माध्यम से अद्यतन किया जाता है (TCP या UDP) – ऑनलाइन (वास्तविक समय में)
 इंटेलिजेंट होम नियंत्रण eHouse ऑनलाइन ग्राफिक्स और दृश्य - जावा खुला स्रोत
 इंटेलिजेंट होम नियंत्रण eHouse ऑनलाइन ग्राफिक्स और दृश्य - जावा खुला स्रोत
 इंटेलिजेंट होम नियंत्रण eHouse ऑनलाइन ग्राफिक्स और दृश्य - जावा खुला स्रोत
 इंटेलिजेंट होम नियंत्रण eHouse ऑनलाइन ग्राफिक्स और दृश्य - जावा खुला स्रोत
चयन करके ” विकल्प ” और कमरे राज्यों नियंत्रकों को देखा जा सकता है और कार्यक्रमों का चयन करें .
आवक UDP की स्थिति बदलने से स्वतः rewizualizacjÄ ™:  इंटेलिजेंट होम नियंत्रण eHouse ऑनलाइन ग्राफिक्स और दृश्य - जावा खुला स्रोत
 इंटेलिजेंट होम नियंत्रण eHouse ऑनलाइन ग्राफिक्स और दृश्य - जावा खुला स्रोत
वास्तु डिजाइन और स्मार्ट घर की स्थापना के आधार पर डिजाइन व्यक्तिगत रूप के दृश्य के अलावा स्वचालित रूप से प्रत्येक नियंत्रक के लिए स्वतंत्र रूप से प्रणाली में दृश्य (RoomManagers और EthernetRoomManager के लिए विशेष रूप से बनाया है – अलग – अलग कमरों के लिए) .
यह प्रत्येक कमरे के लिए स्वतंत्र नियंत्रण और पैनलों दृश्य के लिए सकें , परियोजना बनाने के लिए थकाऊ बिना – आधारित दृश्य प्रणाली .
CommManager (अलार्म सेंसरों के राज्यों के लिए , Ouputs)
 बुद्धिमान घर नियंत्रण eHouse ग्राफिक्स और दृश्य स्वत: ऑनलाइन - जावा खुला स्रोत
RoomManager और EthernetRoomManager के लिए:
 बुद्धिमान घर नियंत्रण eHouse ग्राफिक्स और दृश्य स्वत: ऑनलाइन - जावा खुला स्रोत
 बुद्धिमान घर नियंत्रण eHouse ग्राफिक्स और दृश्य स्वत: ऑनलाइन - जावा खुला स्रोत
 बुद्धिमान घर नियंत्रण eHouse ग्राफिक्स और दृश्य स्वत: ऑनलाइन - जावा खुला स्रोत
बायलर नियंत्रक , सीओ की वसूली (HeatManagera)
 बुद्धिमान घर नियंत्रण eHouse ग्राफिक्स और दृश्य स्वत: ऑनलाइन - जावा खुला स्रोत
 बुद्धिमान घर नियंत्रण eHouse ग्राफिक्स और दृश्य स्वत: ऑनलाइन - जावा खुला स्रोत
अधिक जानकारी के लिए प्रोग्रामिंग पुस्तकालयों eHouse4Android समर्पित (Android के लिए eHouse लेख में पाया जा सकता है – Android जावा) , जो संगतता और सॉफ्टवेयर के विकास में आसानी के लिए किया गया है अलग ऑपरेटिंग सिस्टम पर जावा एसई में अनुवाद .
स्रोत कोड
/ *
* ग्राफिक दृश्य प्रणाली के लिए खाका अनुप्रयोगों , स्मार्ट घर eHouse
प्रणाली eHouse के पंजीकृत उपयोगकर्ताओं के लिए केवल * , सहयोग कंपनियों सभी अधिकार सुरक्षित
*
* वर्ग: की आवश्यकता है
* Ehousecommunication . वर्ग – व्यवस्था करने के लिए घटनाओं भेजने
* EhouseTCP . वर्ग – प्रारंभीकरण और टीसीपी संचार के रखरखाव / आईपी नियंत्रक , प्रणाली निविष्टियाँ और outputs से नवीनीकृत डेटा
* StatusEhouse . वर्ग – डाटा संग्रहण और नियंत्रक सेटिंग्स , टीसीपी / आईपी नियंत्रकों ehouse1 (485) पर एक निरंतर आधार पर अद्यतन
* StatusCommManager . वर्ग – मौजूदा डेटा और सेटिंग्स के नियंत्रकों की दुकान , टीसीपी / आईपी नियंत्रकों ehouse2 (ईथरनेट) पर एक निरंतर आधार पर अद्यतन
* GraphicObject . वर्ग – ग्राफिकल वस्तुओं का भंडारण
* विज़ुअलाइज़ेशन . वर्ग – ग्राफिकल वस्तुओं (लाइनों आकर्षित , ellipses , ) आयतों और सेवा से संबंधित घटनाओं
*
* आवेदन eHouse प्रणाली के एक ग्राफिक दृश्य डिजाइन टेम्पलेट
* केवल पंजीकृत उपयोगकर्ताओं के लिए , विक्रेताओं , सहकारिता कॉपीराइट ISYS . एन सभी अधिकार सुरक्षित
*
* आवश्यक वर्गों:
* Ehousecommunication . वर्ग – व्यवस्था करने के लिए घटनाओं भेजने
* EhouseTCP . वर्ग – नियंत्रकों के साथ रखरखाव और टीसीपी / आईपी संचार initialization , नियंत्रकों की वर्तमान स्थिति अद्यतन
* StatusEhouse . वर्ग – नियंत्रकों सेटिंग्स और डेटा भंडारण , अद्यतन ehouse1 नियंत्रकों के लिए डेटा (टीसीपी / आईपी) (485)
* StatusCommManager . वर्ग – नियंत्रकों सेटिंग्स और डेटा भंडारण , डेटा ehouse2 नियंत्रकों के लिए (टीसीपी / आईपी) (ईथरनेट) को अद्यतन करने
* GraphicObject . वर्ग – ग्राफिक डेटा भंडारण वस्तुओं
* विज़ुअलाइज़ेशन . वर्ग – ड्राइंग ग्राफिक वस्तुओं (लाइनों , Ellipses , ) आयतों और हैंडलिंग उन से संबंधित घटनाओं
* /
ehouse4java पैकेज ;
आयात जावा . AWT . * ;
आयात जावा . AWT . घटना . * ;
आयात javax . स्विंग . * ;
आयात javax . स्विंग . घटना . Changeevent ;
आयात javax . स्विंग . घटना . ChangeListener ;
Ehouse4java सार्वजनिक वर्ग JFrame लागू करता ActionListener फैली , ChangeListener {
/ **
* सिस्टम स्थिति आरंभ करने के लिए जिम्मेदार कक्षा , बनाने के लिए और
* मुख्य आवेदन खिड़की . इंटरफेस है कि घटना का समर्थन इम्प्लीमेन्ट्स
* बटन के साथ जुड़े .
*
* कक्षा वर्गों की स्थिति आरंभ और बनाने के लिए जिम्मेदार
* मुख्य आवेदन खिड़की . यह इंटरफेस समर्थन घटनाओं इम्प्लीमेन्ट्स
* बटन के लिए संबंधित .
* /
/ **
* वर्तमान में प्रदर्शित दृश्य विज़ुअलाइज़ेशन युक्त वस्तु
* /
सार्वजनिक दृश्य विज़ुअलाइज़ेशन ;
/ / सार्वजनिक दृश्य विकल्प ;
/ / सार्वजनिक दृश्य TextEvents ;
/ **
* Pallete zooming का समर्थन बटन , स्थानांतरण और बदल रहा है
* प्रदर्शित दृश्य
* /
JButton ZoomPlusButton ;
JButton ZoomMinusButton ;
JButton LeftShiftButton ;
JButton RightShiftButton ;
JButton UpButton ;
JButton DownButton ;
JButton ExitB = अशक्त ;
JButton विकल्प ;
JButton देखें ;
JButton पीछे ;
[] = नई JButton ViewsB [MAX_VIEWS_COUNT] JButton ;
/ **
* सभी बटन के साथ पैनल
* /
JPanel ZoomPanel ;
/ **
* पैनल वर्तमान दृश्य शामिल प्रदर्शित
* /
JPanel viewpanel ;
/ **
* बटन के एक समूह नियंत्रकों राज्यों का उपयोग करने के लिए प्रयोग किया जाता है जिसमें पैनल ,
* सिस्टम कार्यक्रम आदि . .
* /
JPanel optionspanel ;
/ **
* Oprional scrollpanes
* /
JScrollPane jsp1 ;
JScrollPane jsp2 ;
सार्वजनिक स्थैतिक int buttonscounter ;
सार्वजनिक int centerX ;
सार्वजनिक int CenterY ;
सार्वजनिक int prevCenterX ;
सार्वजनिक int prevCenterY ;
सार्वजनिक int Ycompensation ;
prevOffsetX int = 0 , prevOffsetY = 0 ;
डबल prevScaleX ;
डबल prevScaleY ;
सार्वजनिक अंतिम डबल zoomfactor = 0 . 3 ;
सार्वजनिक स्थैतिक स्ट्रिंग previousoptionsview = ” ” ;
/ **
* नए रूप Ehouse4java बनाता है . वर्गों और ग्राफिक की स्थिति आरंभ
* मुख्य खिड़की के साथ अवयव .
* /
सार्वजनिक (Ehouse4java) {
सुपर ( ” EHouse ” ) ;
(OnCreate) ;
(setDefaultCloseOperation JFrame . EXIT_ON_CLOSE) ;
/ **
* सभी ग्राफिक घटकों आरंभ
* /
((getContentPane) addComponentToPane) ;

setSize (400 , ४००) ;
setLocation (200 , शून्य) ;
setMinimumSize (नया आयाम (200 , २००)) ;
setVisible (सच) ;
prevCenterX = विज़ुअलाइज़ेशन (int) . (getBounds) . (getCenterX) ;
prevCenterY = विज़ुअलाइज़ेशन (int) . (getBounds) . (getCenterY) ;
}
/ **
* सभी ग्राफिक पैनल के रूप में सूखी घटकों आरंभ , बटन , scrollbars , आदि . .
*
* @ परम फलक
* /
सार्वजनिक शून्य addComponentToPane (कंटेनर फलक) {

optionfirsttime = सच ;

ExitB = नई JButton ( ” निकास ” ) ;
ExitB . setActionCommand ( ” निकास ” ) ;
ExitB . addActionListener (इस) ;
. . .
int i = 0 indexView ;
ZoomPanel = नई JPanel (नई (FlowLayout)) ;
viewpanel . जोड़ सकते हैं (ZoomPanel , BorderLayout . PAGE_END) ;
ZoomPlusButton = नई JButton ( ” + ” ) ;
ZoomPlusButton . setActionCommand ( ” ZoomPlus ” ) ;
ZoomPlusButton . addActionListener (इस) ;
ZoomPanel . जोड़ने के (ZoomPlusButton) ;
ZoomMinusButton = नई JButton ( ” – ” ) ;
ZoomMinusButton . setActionCommand ( ” ZoomMinus ” ) ;
ZoomMinusButton . addActionListener (इस) ;
ZoomPanel . जोड़ने के (ZoomMinusButton) ;
. . .
}
/ **
* शुरू की और loading नियंत्रकों द्वारा StatusEhouse StatusCommManager वर्गों
* स्थिति
* /
सार्वजनिक शून्य (OnCreate) { . . . }
/ **
* @ परम args कमांड लाइन तर्क
* /
सार्वजनिक स्थैतिक शून्य मुख्य (String args []) {
/ *
* बनाएँ और फार्म का प्रदर्शन
* /
जावा . AWT . EventQueue . invokeLater (नया (runnable) {
सार्वजनिक शून्य (रन) {
Ehouse4java (नया) . setVisible (सच) ;
}
}) ;
}
/ **
* बटन पर क्लिक करके लागू की घटनाओं का समर्थन करता है
*
* @ परम ई
* /
@ ओवरराइड
सार्वजनिक actionPerformed शून्य (ActionEvent ई) {
स्विच (ई . getActionCommand ()) {
मामला ” ZoomPlus ” :
prevOffsetX = ehousecommunication . OffsetX ;
prevOffsetY = ehousecommunication . ऑफसेट ;
ehousecommunication . ScaleX * = (1 + zoomfactor) ; / / * 100/zoomleve ;
ehousecommunication . ScaleY * = (1 + zoomfactor) ; / / * 100/zoomleve ;
/ / Rescalling के बाद देखने एकत्रित
ehousecommunication . OffsetX + (int) = ((विज़ुअलाइज़ेशन . (getBounds) . getCenterX () prevOffsetX +) zoomfactor *) ;
ehousecommunication . ऑफसेट + (int) = ((विज़ुअलाइज़ेशन . (getBounds) . getCenterY () prevOffsetY +) zoomfactor *) + / Ycompensation (1 / (2 zoomfactor *)) ;
EhouseTCP . ReadViewFile (ehousecommunication . currentview) ; / / ज़ूम की गणना
विज़ुअलाइज़ेशन . (फिर से रंगना) ;
वापसी ;
. . .
}
}
}