Casa Vizualizarea individuală și de control grafic de la automatizarea eHouse – Java

Vizualizare grafică a eHouse Home Automation extinde mediul de dezvoltare pentru sistemul și creează posibilitatea unei dezvoltare de software independent pentru sistemul ofeHouse utilizatorilor finali , societăți asociate și întreprinderi care doresc să contribuie în mod individual de programare, în JSE (Java) mediu . eHouse pentru Java (eHouse4Java) este compatibil cu Android și bibliotecile Windows Mobile , permițându-vă să creați propriul software pentru panouri de control și tablete .
Biblioteca este șablonul aplicare și permite:

  • încărcați configurația , numele controlorilor , Ieșiri , Intrări , Senzori , etc .
  • asigurarea sistemului de controler de comunicare
  • primirea și decodare starea operator de date
  • trimite comenzile de control grafic (cu vizualizarea obiectelor) sau din sub formă de text (cu posibilitatea selectării în câmp)
  • sistemului de control prin WiFi , Internet , SMS , eMail
  • Vizualizare grafică și de control – încărcați fișierul text al obiectelor grafice asociate cu evenimentele care urmează să fie executate (a sistemului de eHouse) și stările echipamente
  • Vizualizare automată pentru regulatorul (cameră)

Vizualizarea este creat folosind java bibliotecă ” leagăn ” , cu elemente de ” JPanel ” , ” JButton ” etc .
Aceste obiecte sunt în mod automat ” dublu – tamponat ” , astfel încât efectul de flicker este eliminat , care este foarte enervant pentru utilizator .
Utilizatorul poate controla, de asemenea, imaginea:

  • zoom in și out
  • deplasa în sus , în jos și dintr-o parte în alta
  • a schimba vizualizarea curentă selectând ” Opțiuni ”
  • a reveni la vizualizarea grafică a sistemului prin selectarea ” Vedere ”

Exemplu de sistem de vizualizare eHouse:
 Inteligente de control acasă eHouse grafică on-line și de vizualizare - java open source
 Inteligente de control acasă eHouse grafică on-line și de vizualizare - java open source
Mărirea și în afară a fost efectuată cu utilizarea de grafică vectorială scalabilă (SVG) , astfel încât imaginea să nu piardă calitatea acestuia după schimbarea de scară:
 Anulați modificările

Nou! ;
controlere de stare sunt afișate automat:
Acesta este actualizat printr-o rețea de calculatoare sau de pe Internet (TCP sau UDP) – on-line (în timp real)
 Inteligente de control acasă eHouse grafică on-line și de vizualizare - java open source
 Inteligente de control acasă eHouse grafică on-line și de vizualizare - java open source
 Inteligente de control acasă eHouse grafică on-line și de vizualizare - java open source
 Inteligente de control acasă eHouse grafică on-line și de vizualizare - java open source
Prin selectarea ” Opțiuni ” și cameră poate fi văzut controlorilor de state și selectați programe .
Schimbarea statutului de UDP de intrare vor automat rewizualizacjÄ ™:  Inteligente de control acasă eHouse grafică on-line și de vizualizare - java open source
 Inteligente de control acasă eHouse grafică on-line și de vizualizare - java open source
În plus față de vizualizare de design individual bazat pe design arhitectural și instalarea de acasă inteligente este creat în mod automat de vizualizare independent pentru fiecare operator în sistem (în special pentru RoomManagers și EthernetRoomManager – pentru camere individuale) .
Acest lucru permite pentru panouri de control independente și de vizualizare pentru fiecare cameră în mod individual , fără obositor pentru a crea proiect – bazat pe sistemul de vizualizare .
Pentru CommManager (stări de senzori de alarmă , Realizări)
 Inteligente de control grafică eHouse acasă și vizualizarea automată on-line - java open source
Pentru RoomManager și EthernetRoomManager:
 Inteligente de control grafică eHouse acasă și vizualizarea automată on-line - java open source
 Inteligente de control grafică eHouse acasă și vizualizarea automată on-line - java open source
 Inteligente de control grafică eHouse acasă și vizualizarea automată on-line - java open source
Cazanul controler , recuperarea de CO (HeatManagera)
 Inteligente de control grafică eHouse acasă și vizualizarea automată on-line - java open source
 Inteligente de control grafică eHouse acasă și vizualizarea automată on-line - java open source
Mai multe informații pot fi găsite în articolele dedicate eHouse4Android programare biblioteci (eHouse pentru Android – Android Java) , care au fost traduse în Java SE pentru compatibilitatea și ușurința de dezvoltare de software pe sisteme de operare diferite .
Source Code
/ *
* Cererile de șabloane pentru sistemul de vizualizare grafică , inteligent acasă eHouse
* Doar pentru utilizatorii inregistrati ai sistemului eHouse , Societăți care au cooperat Toate drepturile rezervate
*
* Necesită Clase:
* Ehousecommunication . clasă – trimite evenimente la sistemul de
* EhouseTCP . clasă – Inițializarea și întreținerea comunicațiilor peste TCP / IP controler , Datele actualizate de la intrările și ieșirile sistemului
* StatusEhouse . clasă – de stocare a datelor și controler setările , actualizat în mod continuu peste TCP / IP controlere ehouse1 (485)
* StatusCommManager . clasă – stoca datele curente și setările controlere , actualizat în mod continuu peste TCP / IP controlere ehouse2 (Ethernet)
* GraphicObject . clasă – depozitarea de obiecte grafice
* Vizualizare . clasă – egal obiecte grafice (linii , elipse , dreptunghiuri) si evenimente legate de servicii
*
* Aplicarea șablon conceput o reprezentare grafică a sistemului eHouse
* DOAR pentru utilizatorii inregistrati , Distribuitori , COOPERATIVELOR Copyright ISYS . Ro Toate drepturile rezervate
*
* Clase obligatorii:
* Ehousecommunication . clasă – trimiterea la evenimentele de sistem
* EhouseTCP . clasă – Inițializarea și TCP / IP de comunicare cu controlerele de întreținere , actualizarea stadiului actual al controlorilor
* StatusEhouse . clasă – Setările și controlere de stocare de date , actualizarea datelor (TCP / IP) pentru ehouse1 controlere (485)
* StatusCommManager . clasă – Setările și controlere de stocare de date , actualizarea datelor (TCP / IP) pentru ehouse2 controlere (Ethernet)
* GraphicObject . clasă – imaginea de stocare a datelor obiecte
* Vizualizare . clasă – desen obiecte grafice (linii , Elipse , dreptunghiuri) si evenimente de manipulare legate de acestea
* /
ehouse4java pachet ;
de import java . AWT . * ;
de import java . AWT . eveniment . * ;
de import javax . leagăn . * ;
de import javax . leagăn . eveniment . Changeevent ;
de import javax . leagăn . eveniment . ChangeListener ;
Clasa de Ehouse4java publică extinde ActionListener JFrame implementează , ChangeListener {
/ **
* Responsabil pentru inițializarea starea sistemului de clasă , și de a crea
* Principalul aplicare fereastra . Implementează interfețe care susțin evenimentul
* Asociat cu butoane .
*
* Responsabil pentru inițializarea statutul de clase și crearea de clasa
* Principalul aplicare fereastra . Care pune în aplicare interfețe evenimente de sprijin
* Referitor la butoanele .
* /
/ **
* Vizualizare obiect care conține vedere în prezent Afișat
* /
publice de vizualizare Vizualizare ;
/ / Opțiuni de vizualizare publice ;
/ / TextEvents publice de vizualizare ;
/ **
* Palet de butoane justificative zoom , schimbător și schimbă
* Afișat vedere
* /
JButton ZoomPlusButton ;
JButton ZoomMinusButton ;
JButton LeftShiftButton ;
JButton RightShiftButton ;
JButton UpButton ;
JButton DownButton ;
JButton ExitB = null ;
JButton Opțiuni ;
Vezi JButton ;
JButton Înapoi ;
JButton [] = new JButton ViewsB [MAX_VIEWS_COUNT] ;
/ **
* Panou cu toate butoanele
* /
JPanel ZoomPanel ;
/ **
Panoul * Este afișat un conținut în prezent vizualizare
* /
JPanel viewpanel ;
/ **
* Panoul conține un grup de butoane folosite pentru a accesa state controlere ,
* Sistem de programe, etc . .
* /
JPanel optionspanel ;
/ **
* Scrollpanes Oprional
* /
JScrollPane jsp1 ;
JScrollPane jsp2 ;
buttonscounter public static int ;
public int centerX ;
public int CenterY ;
public int prevCenterX ;
public int prevCenterY ;
public int Ycompensation ;
prevOffsetX int = 0 , prevOffsetY = 0 ;
dublu prevScaleX ;
dublu prevScaleY ;
publice zoomfactor finala dublu = 0 . 3 ;
public static String previousoptionsview = ” ” ;
/ **
* Creează Ehouse4java nouă formă . Inițiază statutul de clase și grafice
* Componente cu fereastra principală .
* /
publică Ehouse4java () {
Super ( ” EHouse ” ) ;
OnCreate () ;
setDefaultCloseOperation (JFrame . EXIT_ON_CLOSE) ;
/ **
* Inițiază toate componentele grafice
* /
addComponentToPane (getContentPane ()) ;

setSize (400 , 400) ;
setLocation (200 , 0) ;
setMinimumSize (nouă dimensiune (200 , 200)) ;
setVisible (true) ;
prevCenterX = (int) Vizualizare . getBounds () . getCenterX () ;
prevCenterY = (int) Vizualizare . getBounds () . getCenterY () ;
}
/ **
* Inițiază toate componentele uscate ca panourile grafice , Butoane , scrollbar , etc . .
*
* @ Param panoul de
* /
addComponentToPane public void (panou de containere) {

optionfirsttime = true ;

ExitB = new JButton ( ” Ieșire ” ) ;
ExitB . setActionCommand ( ” Ieșire ” ) ;
ExitB . addActionListener (acest lucru) ;
. . .
indexView int = 0 ;
ZoomPanel = new JPanel (nou FlowLayout ()) ;
viewpanel . adăuga (ZoomPanel , BorderLayout . PAGE_END) ;
ZoomPlusButton = new JButton ( ” + ” ) ;
ZoomPlusButton . setActionCommand ( ” ZoomPlus ” ) ;
ZoomPlusButton . addActionListener (acest lucru) ;
ZoomPanel . adăuga (ZoomPlusButton) ;
ZoomMinusButton = new JButton ( ” – ” ) ;
ZoomMinusButton . setActionCommand ( ” ZoomMinus ” ) ;
ZoomMinusButton . addActionListener (acest lucru) ;
ZoomPanel . adăuga (ZoomMinusButton) ;
. . .
}
/ **
* Initiaza si clase de StatusEhouse StatusCommManager de către controlorii de încărcare
* Stare
* /
OnCreate public void () { . . . }
/ **
* @ Param args argumentele liniei de comandă
* /
public static void main (String args []) {
/ *
* Crearea și afișarea forma
* /
java . AWT . EventQueue . invokeLater (nou Runnable () {
public void run () {
Ehouse4java nou () . setVisible (true) ;
}
}) ;
}
/ **
* Sprijină evenimentele invocate, făcând clic pe butonul
*
* @ Param e
* /
@ Suprascriere
public void actionPerformed (ActionEvent e) {
Comutator (e . getActionCommand ()) {
caz ” ZoomPlus ” :
prevOffsetX = ehousecommunication . OffsetX ;
prevOffsetY = ehousecommunication . Compensează ;
ehousecommunication . ScaleX * = (1 + zoomfactor) ; / / * 100/zoomleve ;
ehousecommunication . ScaleY * = (1 + zoomfactor) ; / / * 100/zoomleve ;
/ / Centering vedere, după rescalling
ehousecommunication . OffsetX + = (int) ((Vizualizare . getBounds () . getCenterX () + prevOffsetX) * zoomfactor) ;
ehousecommunication . Decalează + = (int) ((Vizualizare . getBounds () . getCenterY () + prevOffsetY) * zoomfactor) + Ycompensation / (1 / (2 * zoomfactor)) ;
EhouseTCP . ReadViewFile (ehousecommunication . currentview) ; / / Calculeaza zoom
Vizualizare . vopsi din nou () ;
reveni ;
. . .
}
}
}