Casa Visualizzazione individuale e controllo grafico Automation eHouse sistema – Giava

Visualizzazione grafica dei eHouse Home Automation estende l'ambiente di sviluppo per il sistema e crea la possibilità di uno sviluppo di software indipendente per fine ofeHouse sistema utenti , imprese collegate e le imprese che desiderano contribuire individualmente programmazione in JSE (Java) ambiente . eHouse per Java (eHouse4Java) è compatibile con Android e Windows biblioteche mobili , che consente di creare il proprio software per pannelli di controllo e compresse .
La biblioteca è il modello di applicazione e consente di:

  • caricare la configurazione , i nomi dei controller , Uscite , Ingressi , sensori , ecc .
  • assicurando sistema di controllo di comunicazione
  • ricezione e la decodifica lo stato responsabile del trattamento
  • inviare comandi di controllo graficamente (con la visualizzazione di oggetti) o sotto forma di testo (con selezionabile campo)
  • sistema di controllo via WiFi , Internet , SMS , eMail
  • Visualizzazione grafica e controllo – caricare il file di testo di oggetti grafici associati con gli eventi da eseguire (di sistema eHouse) e gli stati di attrezzature
  • Visualizzazione automatica per il controller (camera)

La visualizzazione viene creato utilizzando libreria Java ” swing ” con elementi di un ” JPanel ” , ” JButton ” ecc .
Questi oggetti sono automaticamente ” doppio – tamponata ” , in modo che l'effetto di sfarfallio viene eliminato , che è molto fastidioso per l'utente .
L'utente può anche controllare l'immagine:

  • zoom in e out
  • spostarsi verso l'alto , giù e da lato a lato
  • cambiare la vista corrente selezionando l' ” Opzioni ”
  • tornare alla visualizzazione grafica del sistema selezionando l' ” Vista ”

Esempio di sistema di visualizzazione eHouse:
 Casa intelligente controllo eHouse grafica on-line e la visualizzazione - java open source
 Casa intelligente controllo eHouse grafica on-line e la visualizzazione - java open source
Zoom avanti e indietro è stata effettuata con l'uso di Scalable Vector Graphics (SVG) , in modo che l'immagine non perde la sua qualità dopo il cambiamento di scala:
 Annulla le modifiche

Nuovo! ;
stato di controller vengono visualizzati automaticamente:
Viene aggiornato tramite una rete informatica o Internet (TCP o UDP) – in linea (in tempo reale)
 Casa intelligente controllo eHouse grafica on-line e la visualizzazione - java open source
 Casa intelligente controllo eHouse grafica on-line e la visualizzazione - java open source
 Casa intelligente controllo eHouse grafica on-line e la visualizzazione - java open source
 Casa intelligente controllo eHouse grafica on-line e la visualizzazione - java open source
Selezionando l' ” Opzioni ” e la camera può essere visto controllori stati e la selezione dei programmi .
Modifica dello stato di UDP in entrata automaticamente rewizualizacjÄ ™:  Casa intelligente controllo eHouse grafica on-line e la visualizzazione - java open source
 Casa intelligente controllo eHouse grafica on-line e la visualizzazione - java open source
Oltre alla visualizzazione di un design personalizzato in base alla progettazione architettonica e l'installazione di casa intelligente viene creata automaticamente la visualizzazione in modo indipendente per ciascun controller del sistema (in particolare per RoomManagers e EthernetRoomManager – per le camere singole) .
Questo permette di pannelli di controllo indipendenti e visualizzazione per ogni camera singolarmente , senza noioso per creare il progetto – sistema di visualizzazione basato su .
Per CommManager (stato di sensori di allarme , USCITE)
 Casa intelligente controllo eHouse grafica e visualizzazione automatica on-line - java open source
Per RoomManager e EthernetRoomManager:
 Casa intelligente controllo eHouse grafica e visualizzazione automatica on-line - java open source
 Casa intelligente controllo eHouse grafica e visualizzazione automatica on-line - java open source
 Casa intelligente controllo eHouse grafica e visualizzazione automatica on-line - java open source
La caldaia controllore , recupero di CO (HeatManagera)
 Casa intelligente controllo eHouse grafica e visualizzazione automatica on-line - java open source
 Casa intelligente controllo eHouse grafica e visualizzazione automatica on-line - java open source
Ulteriori informazioni possono essere trovate negli articoli dedicati alla programmazione eHouse4Android librerie (eHouse per Android – Android Java) , che sono stati tradotti in Java SE per la compatibilità e la facilità di sviluppo software su sistemi operativi diversi .
Il codice sorgente
/ *
Applicazioni dei modelli * per il sistema di visualizzazione grafica , eHouse casa intelligente
* Solo per utenti registrati del sistema eHouse , Società che hanno collaborato Tutti i diritti riservati
*
* Richiede Classi:
* Ehousecommunication . classe – inviare gli eventi al sistema
* EhouseTCP . classe – Inizializzazione e manutenzione di comunicazione su TCP / IP del controller , Dati aggiornati dal sistema ingressi e le uscite
* StatusEhouse . classe – di memorizzazione dei dati e delle impostazioni del controller , aggiornati su base continuativa su TCP / IP controller ehouse1 (485)
* StatusCommManager . classe – memorizzare i dati e le impostazioni correnti controller , aggiornati su base continuativa su TCP / IP controller ehouse2 (Ethernet)
* GraphicObject . classe – stoccaggio di oggetti grafici
* Visualizzazione . classe – disegnare oggetti grafici (linee , ellissi , rettangoli) e gli eventi relativi servizi
*
* Modello Applicazione progettata una visualizzazione grafica del sistema eHouse
* SOLO PER UTENTI REGISTRATI , Fornitori , COOPERATIVE Copyright ISYS . It Tutti i diritti riservati
*
* Classi richieste:
* Ehousecommunication . classe – l'invio di eventi al sistema
* EhouseTCP . classe – inizializzazione e manutenzione TCP / IP comunicazione con controllori , aggiornare lo stato corrente del controller
* StatusEhouse . classe – impostazioni controller e memorizzazione dei dati , aggiornamento dei dati (TCP / IP) per ehouse1 controller (485)
* StatusCommManager . classe – impostazioni controller e memorizzazione dei dati , aggiornamento di dati (TCP / IP) per ehouse2 controllori (Ethernet)
* GraphicObject . classe – grafici di memorizzazione dei dati oggetti
* Visualizzazione . classe – Disegno di oggetti grafici (linee , Ellissi , rettangoli) e Gestione degli eventi ad essi correlati
* /
ehouse4java pacchetto ;
import java . AWT . * ;
import java . AWT . evento . * ;
import javax . swing . * ;
import javax . swing . evento . ChangeEvent ;
import javax . swing . evento . ChangeListener ;
Ehouse4java public class estende JFrame implements ActionListener , ChangeListener {
/ **
* Classe responsabile dell'inizializzazione lo stato del sistema , e creare
* La finestra principale dell'applicazione . Implementa le interfacce che supportano l'evento
* Associata con pulsanti .
*
* Classe Responsabile per inizializzare lo stato delle classi e la creazione di
* La finestra principale dell'applicazione . Che implementa gli eventi di supporto interfacce
* Relativo ai pulsanti .
* /
/ **
* Oggetto di visualizzazione contenente visualizzata visualizza
* /
visualizzazione visualizzazione pubblica ;
/ / Opzioni di visualizzazione pubblici ;
/ / Visualizzazione TextEvents pubblici ;
/ **
* Pallete di pulsanti che supportano lo zoom , spostando e cambiando
* Vista visualizzata
* /
JButton ZoomPlusButton ;
JButton ZoomMinusButton ;
JButton LeftShiftButton ;
JButton RightShiftButton ;
JButton UpButton ;
JButton DownButton ;
JButton ExitB = null ;
JButton Opzioni ;
JButton Vista ;
JButton Indietro ;
JButton [] = new JButton ViewsB [MAX_VIEWS_COUNT] ;
/ **
* Pannello con tutti i pulsanti
* /
JPanel ZoomPanel ;
/ **
Pannello * Visualizzato attualmente contenente visualizzazione
* /
JPanel viewpanel ;
/ **
* Il pannello contenente un gruppo di pulsanti utilizzati per accedere a stati controllori ,
* Sistema orari ecc . .
* /
JPanel optionspanel ;
/ **
* Scrollpanes Oprional
* /
JScrollPane JSP1 ;
JScrollPane jsp2 ;
pubblico buttonscounter static int ;
public int centerX ;
pubblico CenterY int ;
public int prevCenterX ;
pubblico prevCenterY int ;
pubblico Ycompensation int ;
prevOffsetX int = 0 , prevOffsetY = 0 ;
doppia prevScaleX ;
doppia prevScaleY ;
pubblico ZoomFactor final double = 0 . 3 ;
public static String previousoptionsview = ” ” ;
/ **
* Crea Ehouse4java nuovo modulo . Avvia lo stato delle classi e grafici
* Componenti con finestra principale .
* /
Ehouse4java pubblico () {
super ( ” EHouse ” ) ;
OnCreate () ;
setDefaultCloseOperation (JFrame . EXIT_ON_CLOSE) ;
/ **
* Avvia tutti i componenti grafici
* /
addComponentToPane (getContentPane ()) ;

setSize (400 , 400) ;
setLocation (200 , 0) ;
setMinimumSize (new Dimension (200 , 200)) ;
setVisible (true) ;
prevCenterX = (int) Visualizzazione . getBounds () . getCenterX () ;
prevCenterY = (int) Visualizzazione . getBounds () . getCenterY () ;
}
/ **
* Avvia tutti i componenti secchi come pannelli grafici , Pulsanti , barre di scorrimento , ecc . .
*
* @ Param riquadro
* /
vuoto addComponentToPane pubblico (riquadro Container) {

optionfirsttime = true ;

ExitB = new JButton ( ” Uscita ” ) ;
ExitB . setActionCommand ( ” Uscita ” ) ;
ExitB . addActionListener (questo) ;
. . .
indexView int = 0 ;
ZoomPanel = new JPanel (new FlowLayout ()) ;
viewpanel . aggiungere (ZoomPanel , BorderLayout . PAGE_END) ;
ZoomPlusButton = new JButton ( ” + ” ) ;
ZoomPlusButton . setActionCommand ( ” ZoomPlus ” ) ;
ZoomPlusButton . addActionListener (questo) ;
ZoomPanel . add (ZoomPlusButton) ;
ZoomMinusButton = new JButton ( ” – ” ) ;
ZoomMinusButton . setActionCommand ( ” ZoomMinus ” ) ;
ZoomMinusButton . addActionListener (questo) ;
ZoomPanel . add (ZoomMinusButton) ;
. . .
}
/ **
* Iniziati e StatusEhouse classi StatusCommManager dei controllori di carico
* Stato
* /
vuoto OnCreate pubblico () { . . . }
/ **
* @ Param args argomenti della riga di comando
* /
public static void main (String args []) {
/ *
* Creare e visualizzare il form
* /
Giava . AWT . EventQueue . invokeLater (nuovo Runnable () {
public void run () {
Ehouse4java new () . setVisible (true) ;
}
}) ;
}
/ **
* Supporta eventi richiamato facendo clic sul pulsante
*
* @ Param e
* /
@ Override
public void actionPerformed (ActionEvent e) {
Interruttore (e . getActionCommand ()) {
caso ” ZoomPlus ” :
prevOffsetX = ehousecommunication . OffsetX ;
prevOffsetY = ehousecommunication . Offset ;
ehousecommunication . ScaleX * = (1 + ZoomFactor) ; / / * 100/zoomleve ;
ehousecommunication . ScaleY * = (1 + ZoomFactor) ; / / * 100/zoomleve ;
/ / Centra la vista dopo rescalling
ehousecommunication . OffsetX + = (int) ((Visualizzazione . getBounds () . getCenterX () + prevOffsetX) * ZoomFactor) ;
ehousecommunication . Offset + = (int) ((Visualizzazione . getBounds () . getCenterY () + prevOffsetY) * ZoomFactor) + Ycompensation / (1 / (2 * ZoomFactor)) ;
EhouseTCP . ReadViewFile (ehousecommunication . CurrentView) ; / / Calcola zoom
Visualizzazione . repaint () ;
ritorno ;
. . .
}
}
}