Visualisasi grafik eHouse Home Automation memanjangkan persekitaran pembangunan untuk sistem dan mencipta kemungkinan pembangunan perisian bebas untuk pengguna akhir sistem ofeHouse , syarikat bersekutu dan perniagaan yang ingin menyumbang secara individu pengaturcaraan dalam persekitaran JSE (Jawa) . eHouse untuk Java (eHouse4Java) adalah serasi untuk perpustakaan Android dan Windows Mobile , membolehkan anda untuk mencipta perisian anda sendiri untuk panel kawalan dan tablet .
Perpustakaan adalah template permohonan dan membolehkan:
- memuatkan konfigurasi , nama pengawal , Output , Input , sensor , dan sebagainya .
- memastikan kawalan sistem komunikasi
- menerima dan menyahkod data status pengawal
- menghantar arahan kawalan grafik (dengan visualisasi objek) atau dari bentuk teks (dengan bidang dipilih)
- mengawal sistem melalui WiFi , Internet , SMS , eMail
- Visualisasi grafik dan kawalan – memuatkan fail teks objek grafik yang dikaitkan dengan peristiwa-peristiwa yang akan dilaksanakan (eHouse sistem) dan status peralatan
- Visualisasi automatik untuk pengawal (bilik)
Visualisasi dicipta menggunakan java perpustakaan ” swing ” dengan unsur-unsur ” JPanel ” , ” JButton ” dan sebagainya .
Objek ini secara automatik ” menggandakan – buffered ” , supaya kesan kerlipan dihapuskan , yang sangat menjengkelkan untuk pengguna .
Pengguna juga boleh mengawal imej:
- mengezum masuk dan keluar
- bergerak ke atas , ke bawah dan dari sisi ke sisi
- menukar pandangan semasa dengan memilih ” Pilihan ”
- kembali kepada visualisasi grafik sistem dengan memilih ” Lihat ”
Contoh eHouse sistem visualisasi:
Zoom masuk dan keluar telah dijalankan dengan penggunaan grafik vektor boleh skala (SVG) , supaya imej tidak kehilangan kualiti selepas perubahan skala:
Undo suntingan
status pengawal secara automatik dipaparkan:
Ia dikemaskini melalui rangkaian komputer atau Internet (TCP atau UDP) – talian (dalam masa sebenar)
Dengan memilih ” Pilihan ” dan bilik boleh melihat negeri pengawal dan pilih program .
Menukar status UDP masuk akan secara automatik rewizualizacjÄ ™:
Di samping visualisasi yang direka secara individu berdasarkan reka bentuk seni bina dan pemasangan rumah pintar secara automatik mencipta visualisasi bebas setiap untuk pengawal dalam sistem (khususnya untuk RoomManagers dan EthernetRoomManager – untuk bilik individu) .
Ini membolehkan untuk panel kawalan bebas dan visualisasi untuk setiap bilik individu , tanpa membosankan untuk mewujudkan projek – visualisasi sistem berasaskan .
Untuk CommManager (negeri sensor penggera , Output)
Bagi RoomManager dan EthernetRoomManager:
Pengawal dandang , pemulihan CO (HeatManagera)
Maklumat lanjut boleh didapati di artikel yang dikhaskan untuk perpustakaan pengaturcaraan eHouse4Android (eHouse untuk Android – Android Jawa) , yang telah diterjemahkan ke dalam Java SE untuk keserasian dan memudahkan pembangunan perisian pada sistem operasi yang berbeza .
KOD SOURCE
/ *
Aplikasi * Template untuk sistem visualisasi grafik , rumah eHouse pintar
* Hanya untuk pengguna berdaftar eHouse sistem , Kerjasama syarikat All Rights Reserved
*
* Memerlukan Kelas:
* Ehousecommunication . kelas – menghantar acara untuk sistem
* EhouseTCP . kelas – Pengawalan dan penyelenggaraan komunikasi over TCP / IP pengawal , Dikemaskini data dari input dan output sistem
* StatusEhouse . kelas – Tetapan data penyimpanan dan pengawal , dikemaskini secara berterusan over TCP / pengawal IP ehouse1 (485)
* StatusCommManager . kelas – menyimpan data semasa dan pengawal tetapan , dikemaskini secara berterusan over TCP / pengawal IP ehouse2 (Ethernet)
* GraphicObject . kelas – penyimpanan objek grafik
* Visualisasi . kelas – menarik objek grafik (garis , elips , segiempat tepat) dan perkhidmatan acara berkaitan
*
* Template Permohonan direka visualisasi grafik Sistem eHouse
* HANYA UNTUK PENGGUNA BERDAFTAR , Vendor , Copyright ISYS KOPERASI . En All Rights Reserved
*
Kelas * Diperlukan:
* Ehousecommunication . kelas – menghantar acara untuk sistem
* EhouseTCP . kelas – pengawalan dan penyelenggaraan komunikasi TCP / IP dengan pengawal , mengemaskini status semasa pengawal
* StatusEhouse . kelas – pengawal tetapan dan penyimpanan data , pengemaskinian data (TCP / IP) untuk ehouse1 pengawal (485)
* StatusCommManager . kelas – pengawal tetapan dan penyimpanan data , mengemas kini data (TCP / IP) untuk ehouse2 pengawal (Ethernet)
* GraphicObject . kelas – objek penyimpanan data grafik
* Visualisasi . kelas – melukis objek grafik (garis , Elips , segiempat tepat) dan acara pengendalian yang berkaitan dengan mereka
* /
pakej ehouse4java ;
import java . AWT . * ;
import java . AWT . acara . * ;
import javax . swing . * ;
import javax . swing . acara . Changeevent ;
import javax . swing . acara . ChangeListener ;
Ehouse4java kelas awam memanjangkan JFrame ActionListener melaksanakan , ChangeListener {
/ **
* Kelas bertanggungjawab untuk Memulakan status sistem , dan mewujudkan
* Permohonan tetingkap utama . Melaksanakan antara muka yang menyokong acara
* Bersekutu dengan butang .
*
* Kelas Bertanggungjawab untuk Memulakan status kelas dan mewujudkan
* Permohonan tetingkap utama . Itu Laksana acara sokongan antara muka
* Berkaitan dengan butang .
* /
/ **
* Visualisasi objek mengandungi pandangan kini Dipapar
* /
visualisasi Visualisasi awam ;
/ / Pilihan visualisasi Awam ;
/ / Visualisasi TextEvents Awam ;
/ **
* Pallete butang sokongan zoom , peralihan dan perubahan
* Pandangan Dipapar
* /
JButton ZoomPlusButton ;
JButton ZoomMinusButton ;
JButton LeftShiftButton ;
JButton RightShiftButton ;
JButton UpButton ;
JButton DownButton ;
JButton ExitB = null ;
JButton Pilihan ;
JButton View ;
Kembali JButton ;
JButton [] = new JButton ViewsB [MAX_VIEWS_COUNT] ;
/ **
* Panel dengan semua butang
* /
ZoomPanel JPanel ;
/ **
Panel * dipaparkan kini mengandungi visualisasi
* /
Viewpanel JPanel ;
/ **
* Panel yang mengandungi kumpulan butang yang digunakan untuk mengakses pengawal negeri ,
* Sistem jadual dll . .
* /
Optionspanel JPanel ;
/ **
* Scrollpanes Oprional
* /
JScrollPane jsp1 ;
JScrollPane jsp2 ;
awam statik int buttonscounter ;
awam int centerX ;
awam CenterY int ;
awam int prevCenterX ;
awam prevCenterY int ;
awam Ycompensation int ;
prevOffsetX int = 0 , prevOffsetY = 0 ;
double prevScaleX ;
double prevScaleY ;
awam akhir zoomfactor double = 0 . 3 ;
awam statik String previousoptionsview = ” ” ;
/ **
* Mencipta Ehouse4java bentuk baru . Memulakan status kelas dan grafik
* Komponen dengan tetingkap utama .
* /
Ehouse4java awam () {
super ( ” EHouse ” ) ;
OnCreate () ;
setDefaultCloseOperation (JFrame . EXIT_ON_CLOSE) ;
/ **
* Memulakan semua komponen grafik
* /
addComponentToPane (getContentPane ()) ;
setSize (400 , 400) ;
setLocation (200 , 0) ;
setMinimumSize (Dimensi baru (200 , 200)) ;
setVisible (benar) ;
prevCenterX = (int) Visualisasi . getBounds () . getCenterX () ;
prevCenterY = (int) Visualisasi . getBounds () . getCenterY () ;
}
/ **
* Memulakan semua komponen kering sebagai panel grafik , butang , scrollbar , dan sebagainya . .
*
* @ Param pane
* /
addComponentToPane terbatal awam (Kontena pane) {
optionfirsttime = true ;
ExitB = new JButton ( ” Keluar ” ) ;
ExitB . setActionCommand ( ” Keluar ” ) ;
ExitB . addActionListener (ini) ;
. . .
indexView int = 0 ;
ZoomPanel = new JPanel (baru FlowLayout ()) ;
viewpanel . add (ZoomPanel , BorderLayout . PAGE_END) ;
ZoomPlusButton = new JButton ( ” + ” ) ;
ZoomPlusButton . setActionCommand ( ” ZoomPlus ” ) ;
ZoomPlusButton . addActionListener (ini) ;
ZoomPanel . add (ZoomPlusButton) ;
ZoomMinusButton = new JButton ( ” – ” ) ;
ZoomMinusButton . setActionCommand ( ” ZoomMinus ” ) ;
ZoomMinusButton . addActionListener (ini) ;
ZoomPanel . add (ZoomMinusButton) ;
. . .
}
/ **
* Dimulakannya dan StatusEhouse StatusCommManager kelas oleh pengawal loading
* Taraf
* /
terbatal OnCreate awam () { . . . }
/ **
* Args Param @ hujah baris arahan
* /
awam statik tidak sah utama (String args []) {
/ *
* Buat dan memaparkan bentuk
* /
java . AWT . EventQueue . invokeLater (baru Runnable () {
terbatal jangka awam () {
Ehouse4java baru () . setVisible (benar) ;
}
}) ;
}
/ **
* Menyokong peristiwa yang disembelih dengan mengklik butang
*
* @ Param e
* /
@ Override
awam tidak sah actionPerformed (ActionEvent e) {
suis (e . getActionCommand ()) {
kes ” ZoomPlus ” :
prevOffsetX = ehousecommunication . OffsetX ;
prevOffsetY = ehousecommunication . Ofset ;
ehousecommunication . ScaleX * = (1 + zoomfactor) ; / / * 100/zoomleve ;
ehousecommunication . ScaleY * = (1 + zoomfactor) ; / / * 100/zoomleve ;
/ / Memusatkan pandangan selepas rescalling
ehousecommunication . OffsetX + = (int) ((Visualisasi . getBounds () . getCenterX () + prevOffsetX) * zoomfactor) ;
ehousecommunication . Ofset + = (int) ((Visualisasi . getBounds () . getCenterY () + prevOffsetY) * zoomfactor) + Ycompensation / (1 / (2 * zoomfactor)) ;
EhouseTCP . ReadViewFile (ehousecommunication . currentview) ; / / Kira zoom
Visualisasi . mengecat semula () ;
kembali ;
. . .
}
}
}