Будинок індивідуальної візуалізації та графічного управління з EHouse системи автоматизації – Ява

Графічна візуалізація EHouse Home Automation розширює середовище розробки для системи і створює можливість самостійного розвитку програмного забезпечення для кінцевих користувачів системи ofeHouse , асоційованих компаній і підприємств, які бажають зробити свій внесок в індивідуальному програмуванні JSE (Java) середовища . EHouse для Java (eHouse4Java) сумісний з Android і Windows Mobile бібліотеки , дозволяє створювати власне програмне забезпечення для панелей управління і планшетів .
Бібліотека шаблонів додатків і дозволяє:

  • завантажити конфігурацію , імена контролерів , Виходи , Витрати , Датчики , і т.д. .
  • забезпечення контролера системи зв'язку
  • прийому і декодування даних про стан контролера
  • посилати керуючі команди графічно (з візуалізацією об'єктів) або з текстового вигляду (з полем вибору)
  • керування системою через WiFi , Інтернет , SMS , Електронна пошта
  • Графічна візуалізація та управління – завантажити текстовий файл графічних об'єктів, пов'язаних з подіями, яка буде виконана (з EHouse системи) і обладнання статуси
  • Автоматична візуалізації для контролера (номер)

Візуалізація створений з використанням Java-бібліотеки ” розмахувати ” з елементами ” JPanel ” , ” JButton ” і т.д. .
Ці об'єкти автоматично ” подвоїти – буферний ” , так що ефект мерехтіння усунені , який є дуже дратівливим для користувачів .
Користувач також може управляти зображенням:

  • збільшувати і зменшувати
  • підсунутися , вниз і з одного боку в бік
  • змінити поточне подання, вибравши ” Опції ”
  • повернутися до графічної візуалізації системи, вибравши ” Бачити ”

Приклад системи візуалізації EHouse:
 Інтелектуальне управління будинком EHouse онлайн графіки та візуалізації - Java з відкритим вихідним кодом
 Інтелектуальне управління будинком EHouse онлайн графіки та візуалізації - Java з відкритим вихідним кодом
Збільшення і зменшення було проведено з використанням масштабованої векторної графіки (SVG) , так що зображення не втрачає своєї якості після зміни масштабу:
 Скасувати зміни

New! ;
Контролери статус автоматично відображаються:
Він оновлюється через комп'ютерну мережу або через Інтернет (TCP або UDP) – онлайн (в реальному часі)
 Інтелектуальне управління будинком EHouse онлайн графіки та візуалізації - Java з відкритим вихідним кодом
 Інтелектуальне управління будинком EHouse онлайн графіки та візуалізації - Java з відкритим вихідним кодом
 Інтелектуальне управління будинком EHouse онлайн графіки та візуалізації - Java з відкритим вихідним кодом
 Інтелектуальне управління будинком EHouse онлайн графіки та візуалізації - Java з відкритим вихідним кодом
Вибравши ” Опції ” і в кімнаті можна побачити держав контролери та вибору програм .
Зміна статусу входять UDP автоматично rewizualizacjÄ ™:  Інтелектуальне управління будинком EHouse онлайн графіки та візуалізації - Java з відкритим вихідним кодом
 Інтелектуальне управління будинком EHouse онлайн графіки та візуалізації - Java з відкритим вихідним кодом
На додаток до візуалізації індивідуально розроблений на основі архітектурного проектування і установки розумного будинку автоматично створюється візуалізації незалежно для кожного контролера в системі (зокрема, для RoomManagers і EthernetRoomManager – для індивідуального номера) .
Це дозволяє незалежним панелі управління і візуалізації для кожної кімнати окремо , без стомлюючої для створення проекту – система візуалізації .
Для CommManager (стану охоронних датчиків , Виходи)
 Інтелектуальне управління будинком EHouse графіки й візуалізації автоматичний онлайн - Java з відкритим вихідним кодом
Для RoomManager і EthernetRoomManager:
 Інтелектуальне управління будинком EHouse графіки й візуалізації автоматичний онлайн - Java з відкритим вихідним кодом
 Інтелектуальне управління будинком EHouse графіки й візуалізації автоматичний онлайн - Java з відкритим вихідним кодом
 Інтелектуальне управління будинком EHouse графіки й візуалізації автоматичний онлайн - Java з відкритим вихідним кодом
Контролер котла , відновлення CO (HeatManagera)
 Інтелектуальне управління будинком EHouse графіки й візуалізації автоматичний онлайн - Java з відкритим вихідним кодом
 Інтелектуальне управління будинком EHouse графіки й візуалізації автоматичний онлайн - Java з відкритим вихідним кодом
Більш детальну інформацію можна знайти в статтях, присвячених eHouse4Android програмних бібліотек (EHouse для Android – Android Java) , , Які були переведені на Java SE на сумісність і простоту розробки програмного забезпечення на різних операційних системах .
SOURCE CODE
/ *
* Шаблон для графічних додатків системи візуалізації , розумний будинок EHouse
* Тільки для зареєстрованих користувачів системи EHouse , Співробітництво компаній Всі права захищені
*
* Потрібен класи:
* Ehousecommunication . клас – Написати подій в системі
* EhouseTCP . клас – Ініціалізація та підтримання зв'язку по протоколу TCP / IP контролера , Оновлені дані з системи входи і виходи
* StatusEhouse . клас – зберігання даних і налаштувань контролера , оновлюватися на постійній основі протягом TCP / IP контролерів ehouse1 (485)
* StatusCommManager . клас – зберегти поточні дані та настройки контролерів , оновлюватися на постійній основі протягом TCP / IP контролерів ehouse2 (Ethernet)
* GraphicObject . клас – зберігання графічних об'єктів
* Візуалізація . клас – малювати графічні об'єкти (лінії , еліпсів , прямокутники) і служба подій, пов'язаних з
*
* Застосування шаблонів призначені графічної візуалізації EHouse системи
* Тільки для зареєстрованих користувачів , Виробники , Copyright КООПЕРАТИВІВ ISYS . En All Rights Reserved
*
* Обов'язкові класи:
* Ehousecommunication . клас – відправка подій в системі
* EhouseTCP . клас – ініціалізації та обслуговування TCP / IP зв'язку з контролерами , оновлення поточного стану контролерів
* StatusEhouse . клас – Контролери налаштування та зберігання даних , оновлення даних (TCP / IP) для ehouse1 контролери (485)
* StatusCommManager . клас – Контролери налаштування та зберігання даних , оновлення даних (TCP / IP) для ehouse2 контролери (Ethernet)
* GraphicObject . клас – графічні об'єкти зберігання даних
* Візуалізація . клас – малювання графічних об'єктів (ліній , Еліпси , прямокутники) і обробку подій, пов'язаних з ними
* /
ehouse4java пакет ;
Імпорт Java . AWT . * ;
Імпорт Java . AWT . подія . * ;
Імпорт javax . розмахувати . * ;
Імпорт javax . розмахувати . подія . ChangeEvent ;
Імпорт javax . розмахувати . подія . ChangeListener ;
Ehouse4java громадського клас розширює JFrame знарядь ActionListener , ChangeListener {
/ **
* Клас відповідає за ініціалізацію стану системи , і створити
* У головному вікні програми . Реалізує інтерфейси, які підтримують події
* Пов'язані з кнопками .
*
* Клас, що відповідає за ініціалізацію стану класів та створення
* У головному вікні програми . , Який реалізує підтримку інтерфейсу подій
* Відносяться до кнопок .
* /
/ **
* Візуалізація об'єкту, що містить в даний час перегляду зору
* /
Візуалізація громадськості візуалізацією ;
/ / Громадські параметри візуалізації ;
/ / Громадські TextEvents візуалізації ;
/ **
* Pallete кнопок підтримкою масштабування , зміщення та зміни
* Відображається вид
* /
JButton ZoomPlusButton ;
JButton ZoomMinusButton ;
JButton LeftShiftButton ;
JButton RightShiftButton ;
JButton UpButton ;
JButton DownButton ;
JButton ExitB = NULL ;
JButton параметри ;
JButton View ;
JButton назад ;
JButton [] = новий JButton ViewsB [MAX_VIEWS_COUNT] ;
/ **
* Панель з кнопками всі
* /
JPanel ZoomPanel ;
/ **
* Панель Відображається в даний час містить візуалізацію
* /
JPanel viewpanel ;
/ **
* Панель, що містить група кнопок використовується для доступу до контролерів держави ,
* Система графіків і т.д. . .
* /
JPanel optionspanel ;
/ **
* Oprional scrollpanes
* /
JScrollPane jsp1 ;
JScrollPane jsp2 ;
громадськості статичної buttonscounter Int ;
громадських 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) ;
/ **
* Ініціює всі графічні компоненти
* /
addComponentToPane (getContentPane ()) ;

SetSize (400 , 400) ;
SetLocation (200 , 0) ;
setMinimumSize (новий вимір (200 , 200)) ;
SetVisible (істина) ;
prevCenterX = (INT) Візуалізація . GetBounds () . getCenterX () ;
prevCenterY = (INT) Візуалізація . GetBounds () . getCenterY () ;
}
/ **
* Ініціює всі компоненти сухі, як графічні панелі , Кнопки , прокручування , і т.д. . .
*
* @ Param області
* /
громадських addComponentToPane недійсними (контейнер панелі) {

optionfirsttime = True ;

ExitB = новий JButton ( ” Вихід ” ) ;
ExitB . setActionCommand ( ” Вихід ” ) ;
ExitB . addActionListener (це) ;
. . .
indexView Int = 0 ;
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) ;
. . .
}
/ **
* Присвячені і StatusEhouse StatusCommManager класи по завантаженню контролерів
* Статус
* /
громадських OnCreate недійсними () { . . . }
/ **
* @ Param аргументи аргументи командного рядка
* /
державної статичної сили основних (аргументи String []) {
/ *
* Створення та відображення форми
* /
Ява . AWT . EventQueue . invokeLater (Новий Runnable () {
громадського запустити недійсними () {
Ehouse4java нові () . SetVisible (істина) ;
}
}) ;
}
/ **
* Підтримка подій викликається натисканням на кнопку
*
* @ Param електронної
* /
@ Override
громадського недійсними 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) ; / / Обчислити масштабу
Зоровий образ . перефарбувати () ;
повернутися ;
. . .
}
}
}