Grafis visualisasi eHouse Home Automation memperluas lingkungan pengembangan untuk sistem dan menciptakan kemungkinan pengembangan perangkat lunak independen untuk sistem pengguna akhir ofeHouse , perusahaan asosiasi dan bisnis yang ingin berkontribusi secara individual pemrograman di BEJ (Jawa) lingkungan . eHouse Java (eHouse4Java) kompatibel dengan Android dan Windows Mobile perpustakaan , memungkinkan Anda untuk membuat perangkat lunak Anda sendiri untuk panel kontrol dan tablet .
Perpustakaan adalah template aplikasi dan memungkinkan:
- memuat konfigurasi , nama-nama kontroler , Output , Masukan , sensor , dll .
- memastikan pengontrol sistem komunikasi
- menerima dan decoding status pengontrol data
- mengirim perintah kontrol grafis (dengan visualisasi benda) atau dari bentuk teks (dengan dipilih lapangan)
- mengendalikan sistem melalui WiFi , Internet , SMS , eMail
- Grafis visualisasi dan kontrol – memuat file teks dari objek grafis terkait dengan peristiwa yang akan dieksekusi (sistem eHouse) dan status peralatan
- Otomatis visualisasi untuk controller (kamar)
Visualisasi dibuat menggunakan java perpustakaan ” ayunan ” dengan unsur-unsur dari ” JPanel ” , ” JButton ” dll .
Benda-benda ini secara otomatis ” dua kali lipat – buffered ” , sehingga efek dari flicker dihilangkan , yang sangat menjengkelkan bagi pengguna .
Pengguna juga dapat mengontrol gambar:
- memperbesar dan memperkecil
- naik pangkat , ke bawah dan dari sisi ke sisi
- mengubah tampilan saat ini dengan memilih ” Pilihan ”
- kembali ke visualisasi grafis dari sistem dengan memilih ” Melihat ”
Contoh dari sistem visualisasi eHouse:
Zooming masuk dan keluar dilakukan dengan menggunakan scalable vector graphics (SVG) , sehingga gambar tidak kehilangan kualitas setelah perubahan skala:
Undo suntingan
Status pengendali secara otomatis ditampilkan:
Hal ini diperbarui melalui jaringan komputer atau internet (TCP atau UDP) – secara online (real time)
Dengan memilih ” Pilihan ” dan ruang dapat dilihat pengendali negara dan pilih program .
Mengubah status UDP masuk secara otomatis akan rewizualizacjÄ ™:
Selain visualisasi dirancang secara individual berdasarkan pada desain arsitektur dan instalasi rumah pintar secara otomatis menciptakan visualisasi secara independen untuk setiap controller dalam sistem (khususnya untuk RoomManagers dan EthernetRoomManager – untuk kamar individu) .
Hal ini memungkinkan untuk panel kontrol independen dan visualisasi untuk setiap kamar secara individual , tanpa membosankan untuk membuat proyek – berbasis sistem visualisasi .
Untuk CommManager (negara sensor alarm , Ouputs)
Untuk RoomManager dan EthernetRoomManager:
Kontroler boiler , pemulihan CO (HeatManagera)
Informasi lebih lanjut dapat ditemukan dalam artikel yang ditujukan untuk eHouse4Android pemrograman perpustakaan (eHouse untuk Android – Android Java) , yang telah diterjemahkan ke dalam Java SE untuk kompatibilitas dan kemudahan pengembangan perangkat lunak pada sistem operasi yang berbeda .
KODE SUMBER
/ *
* Template aplikasi untuk sistem visualisasi grafis , eHouse rumah pintar
* Hanya untuk pengguna terdaftar dari sistem eHouse , Bekerja sama perusahaan All Rights Reserved
*
* Membutuhkan Kelas:
* Ehousecommunication . kelas – mengirim peristiwa ke sistem
* EhouseTCP . kelas – Inisialisasi dan pemeliharaan komunikasi melalui TCP / IP pengontrol , Diperbarui data dari input dan output sistem
* StatusEhouse . kelas – penyimpanan data dan pengontrol pengaturan , diperbarui secara berkelanjutan melalui TCP / IP pengendali ehouse1 (485)
* StatusCommManager . kelas – menyimpan data saat ini dan pengaturan pengendali , diperbarui secara berkelanjutan melalui TCP / IP pengendali ehouse2 (Ethernet)
* GraphicObject . kelas – penyimpanan objek grafis
* Visualisasi . kelas – menggambar objek grafis (garis , elips , persegi panjang) dan acara jasa terkait
*
* Aplikasi template yang dirancang visualisasi grafis Sistem eHouse
* HANYA UNTUK PENGGUNA TERDAFTAR , Vendor , KOPERASI Copyright ISYS . En All Rights Reserved
*
* Diperlukan kelas:
* Ehousecommunication . kelas – mengirimkan peristiwa ke sistem
* EhouseTCP . kelas – inisialisasi dan pemeliharaan TCP / IP komunikasi dengan kontroler , memperbarui status pengendali
* StatusEhouse . kelas – pengendali pengaturan dan penyimpanan data , pemutakhiran data (TCP / IP) untuk ehouse1 pengendali (485)
* StatusCommManager . kelas – pengendali pengaturan dan penyimpanan data , pemutakhiran data (TCP / IP) untuk ehouse2 pengendali (Ethernet)
* GraphicObject . kelas – grafis penyimpanan data objek
* Visualisasi . kelas – menggambar grafik benda (baris , Elips , persegi panjang) dan acara penanganan berhubungan dengan mereka
* /
ehouse4java paket ;
impor java . awt . * ;
impor java . awt . peristiwa . * ;
impor javax . ayunan . * ;
impor javax . ayunan . peristiwa . Changeevent ;
impor javax . ayunan . peristiwa . ChangeListener ;
Ehouse4java public class extends JFrame ActionListener alat , ChangeListener {
/ **
* Bertanggung jawab untuk menginisialisasi status sistem Kelas , dan menciptakan
* Jendela utama aplikasi . Mengimplementasikan interface yang mendukung acara
* Terkait dengan tombol .
*
* Bertanggung jawab untuk menginisialisasi status kelas dan menciptakan Kelas
* Jendela utama aplikasi . Itu Implements peristiwa antarmuka dukungan
* Terkait dengan tombol .
* /
/ **
* Visualisasi objek yang mengandung pandangan saat Tampilkan
* /
publik visualisasi Visualisasi ;
/ / Pilihan visualisasi Publik ;
/ / TextEvents visualisasi Publik ;
/ **
* Pallete tombol pendukung zooming , bergerak dan berubah
* Tampilkan pandangan
* /
JButton ZoomPlusButton ;
JButton ZoomMinusButton ;
JButton LeftShiftButton ;
JButton RightShiftButton ;
JButton UpButton ;
JButton DownButton ;
JButton ExitB = null ;
JButton Pilihan ;
JButton View ;
JButton Kembali ;
JButton [] = new JButton ViewsB [MAX_VIEWS_COUNT] ;
/ **
* Panel dengan semua tombol
* /
JPanel ZoomPanel ;
/ **
* Panel ditampilkan saat mengandung visualisasi
* /
JPanel viewpanel ;
/ **
* Panel berisi sekelompok tombol yang digunakan untuk mengakses negara pengendali ,
* Sistem jadwal dll . .
* /
JPanel optionspanel ;
/ **
* Oprional scrollpanes
* /
JScrollPane jsp1 ;
JScrollPane jsp2 ;
public int buttonscounter static ;
public int centerX ;
public int Centery ;
public int prevCenterX ;
public int prevCenterY ;
public int Ycompensation ;
prevOffsetX int = 0 , prevOffsetY = 0 ;
ganda prevScaleX ;
ganda prevScaleY ;
publik zoomfactor ganda akhir = 0 . 3 ;
public static String previousoptionsview = ” ” ;
/ **
* Membuat Ehouse4java bentuk baru . Memulai status kelas dan grafis
* Komponen dengan jendela utama .
* /
public Ehouse4java () {
super ( ” EHouse ” ) ;
OnCreate () ;
setDefaultCloseOperation (JFrame . EXIT_ON_CLOSE) ;
/ **
* Memulai semua komponen grafis
* /
addComponentToPane (getContentPane ()) ;
setSize (400 , 400) ;
setLocation (200 , 0) ;
setMinimumSize (Dimensi baru (200 , 200)) ;
setVisible (true) ;
prevCenterX = (int) Visualisasi . getBounds () . getCenterX () ;
prevCenterY = (int) Visualisasi . getBounds () . getCenterY () ;
}
/ **
* Memulai semua komponen kering sebagai panel grafis , kancing-kancing , scrollbars , dll . .
*
* @ Param pane
* /
public void addComponentToPane (pane Container) {
optionfirsttime = true ;
ExitB = new JButton ( ” Keluar ” ) ;
ExitB . setActionCommand ( ” Keluar ” ) ;
ExitB . addActionListener (ini) ;
. . .
indexView int = 0 ;
ZoomPanel = new JPanel (new 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) ;
. . .
}
/ **
* Inisiat dan StatusCommManager StatusEhouse kelas oleh pengendali pemuatan
* Status
* /
public void OnCreate () { . . . }
/ **
* @ Param args argumen perintah baris
* /
public static void main (String args []) {
/ *
* Membuat dan menampilkan form
* /
java . awt . EventQueue . invokeLater (new Runnable () {
public void run () {
Ehouse4java baru () . setVisible (true) ;
}
}) ;
}
/ **
* Mendukung peristiwa dipanggil dengan mengklik tombol
*
* @ Param e
* /
@ Override
public void actionPerformed (ActionEvent e) {
switch (e . getActionCommand ()) {
kasus ” ZoomPlus ” :
prevOffsetX = ehousecommunication . Offsetx ;
prevOffsetY = ehousecommunication . Offset ;
ehousecommunication . ScaleX * = (1 + zoomfactor) ; / / * 100/zoomleve ;
ehousecommunication . ScaleY * = (1 + zoomfactor) ; / / * 100/zoomleve ;
/ / Centering tampilan setelah rescalling
ehousecommunication . Offsetx + = (int) ((Visualisasi . getBounds () . getCenterX () + prevOffsetX) * zoomfactor) ;
ehousecommunication . Offset + = (int) ((Visualisasi . getBounds () . getCenterY () + prevOffsetY) * zoomfactor) + Ycompensation / (1 / (2 * zoomfactor)) ;
EhouseTCP . ReadViewFile (ehousecommunication . currentview) ; / / Hitung zoom
Visualisasi . repaint () ;
kembali ;
. . .
}
}
}