Декодування двійкових статус контролерів домашньої автоматизації – безкоштовний вихідний код

Home Automation , Управління будівлею EHouse – Розшифровка статусу мікропроцесорні контролери
Home Automation отримані панелі управління підключений до локальної мережі або Wi-Fi , через UDP (User Datagram Protocol) .
Стандартне стан прийому кадру в двійковій формі , з Контролери обговорювалася в статті ” Інтелектуальна будівля EHouse стану контролера пакет ” .
Розшифровка кадрів необхідно проаналізувати кожен біт даних з пакета .
В додаток , кожен тип контролера:

  • RoomManager
  • ExternalManager
  • HeatManager
  • InputExtender
  • CommManager
  • LevelManager
  • EthernetRoomManager

Є різниця в кількості цифрових входів , вимірювальних входів , цифрові виходи , диммери , Контрольні функції і алгоритми, які є результатом , що дані в стандартному мутувати кадрів в залежності від типу контролера .
Це призводить до необхідності для декодування біт за бітом для кожного типу контролера самостійно .
У разі реалізації всіх типів мікропроцесорних контролерів для створення та тестування алгоритм декодування кадру може зайняти до 1 місяця .
Щоб звести до мінімуму цей раз до мінімуму , для полегшення готова представити алгоритм запозичені з EHouse . EXE-додатки , автоматично декодувати всю інформацію від контролера і завантаження даних в шаблон запису сенсорної панелі (для таблеток) для Windows XP , Перспектива , 7 , 8 .
Після автоматичного завантаження даних в бібліотеках EHouse програмного забезпечення , за допомогою кількох рядків коду , Ви можете створювати свої власні алгоритми управління EHouse системи протягом декількох хвилин .
Двійкові кадрів програмне забезпечення для декодування стандартного стану EHouse здійснюється в бібліотеку шаблонів на панелі . Це має бути зроблено двійковій , для прямого статусу декодування Ethernet контролерів без EHouse . Нагляд Exe додатків .
Розшифровка весь кадр (для мікропроцесорних контролерів eHouse1 RM , EM , HM) здійснює функції set_rm процедури (вул.: array_of_char ; TCP_INDEX_INC: Integer) ;
Параметри функції буфера статусу і зсув (зміщення) . Буфер містить усі отримані дані від статусу . Зсув залежить від типу коробки передач (розширений адресу , нормальний , та інших майбутніх додатків, що базуються на зв'язку алгоритми) .
Вона автоматично заповнює масив статусу для кожного контролера індивідуально і може безпосередньо управляти даними або оновлення даних автоматично на панелі сенсорного екрану .
Ця функція активується в разі процедура отримання даних з компонентів UDP сокет (TNMUDP – називають двійковим) у разі onDataReceived .
Прийом полягає в наступному:
Процедура TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: Integer ; FromIP: String ; Порт: Integer) ;
VAR C: масив [0 . . 1024] напівкоксу ;
MyStream: TMemoryStream ;
почати
якщо filesystem_status потім вийти ; / / Якщо немає файлової системи filesystem_status
MyStream: = TMemoryStream . Створювати ; / / Створюємо потік даних
двійкове . ReadStream (MyStream) ; / / Читання потоку даних
MyStream . Читати (C [0] , NumberBytes) ; / / Завантажує буфер C
set_rm (C , 1) ; / / Перетворює бінарні дані і завантажує регістри RM [індекс] для контролерів EHouse 1
Test_save ; / / Перевірка запису вихідних даних в текстовий файл для зручності експлуатації
update_panel ; / / Завантажити дані для панелі управління
кінець ;
Вона дозволяє автоматично і не – інвазивних збору даних через локальну мережу або Wi – Fi за допомогою пакету віщання через UDP (User Datagram Protocol) .
Що більше не потрібно з'єднання з сервером тільки слухає на порту трансляції ‘ 6789 ‘ замовчуванням або інших .
Помилки посилання , Мережа , Маршрутизатори не призводять до зупинення або невизначеного помилки програмного забезпечення (як у випадку спілкування з TCP-сервер) , але зникає тільки оновити дані, не зачіпаючи дані або відповідний сервер UDP клієнтських додатків .

УВАГА! . Якщо ви створюєте контролю програмного забезпечення на Windows, для автоматизації Головна EHouse , необхідно для реалізації всіх алгоритмів в одному додатку , який аналізує дані і виконує всі алгоритми і візуалізувати їх . Ми спостерігали іноді, що 2 UDP сокет не може існувати на одному комп'ютері .
Найбільш важливі змінні в бібліотеці двійковому вигляді:
boiler_alarm: Boolean = False ; / / Казана тривога запрограмованої температури вище
/ / За – Температура котла сигналізації
bonfire_stat: ціле ; / / Bonfire опалення рівні 0 – 7 для двійковому режимі – пожежа зайнятості
/ / 0 – випалити – не нагрівається
/ / 1 – Пожежа на / пожежогасіння => ; ; зелений рівень < ; ; Температура куртка (зелений світлодіод мигає) – закінчується мигає зеленим
/ / 2 – вогонь => ; ; зелений рівень> ; ; = Temp куртки> ; ; жовті рівні – histeressis (зелений світлодіод) – зелений
/ / 3 – вогонь => ; ; жовті рівні – histeressis> ; ; Температура куртки> ; ; histeressis рівні + жовтий) (зелений + жовтий світлодіоди) – зелений – жовтий
/ / 4 – вогонь => ; ; жовті рівні + histeressis> ; ; Температура куртки> ; ; червоний рівень – histeressis (жовтий) – жовтий
/ / 5 – безумовної => ; ; червоний рівень – histeressis < ; ; Температура куртки < ; ; histeressis рівні + червоний (червоний + жовтий світлодіоди) жовтий – червоний
/ / 6 – безумовної => ; ; Температура куртки> ; ; histeressis рівні + червоний (червоний світлодіод постійної) – червоний
/ / 7 – безумовної => ; ; Температура куртки> ; ; Багаття тривоги (червоний світлодіод мигає) ALARM – блимає червоний
bonfire_sensor_error: Boolean = False ; / / Помилка датчика багаття занадто багато різних водяною сорочкою датчики температури між двома
/ / Помилка камінній полиці датчиків температури занадто велика різниця
recuperator_status: рядок ; / / Стан рекуперації , вентиляція , підігрів повітря – рекуператор і вентиляції статус
recu_winter: Boolean = False ; / / Рекуператор зима / літо теплообмінник режимі включено / вимкнено – рекуператор зима / літо
recu_manual_amalva: Boolean = True ; / / Рекуператор автоматичний / ручний режим для AMALVA рекуператор (автоматично керовані внутрішнім контролером AMALVA , Керівництво до EHouse HeatManager) / /
рекуператор AMALVA ручний / автоматичний
went_cooler: Boolean = True ; / / Кулер для води / виключення для вентиляції або холодніше у відновлення системи рекуперації або GWC ON / OFF
went_gwc: Boolean = False ; / / GHE (теплообмінник тепло землі) Сервопривід вкл / викл – землі теплообмінника двигуна вкл / викл
went_aux_gwc_fan: Boolean = False ; / / Допоміжні GWC вентилятор / вентилятор включення / виключення для наземного теплообмінника – GWC вентилятором
bonfire_dgp: Boolean = False ; / / Bonfire гарячої системи розподілу повітря включено / вимкнено – Вентилятор розподілу гарячого повітря з каміна DGP
ventilation_on: Boolean = False ; / / Вентиляція в даний час працює вкл / викл – включають вентиляції та рекуперації тепла
heater_pump: Boolean = True ; / / Насос для нагрівача для вентиляції включення / вимикання – насос системи опалення та вентиляції схема для радіаторів
three_ways_cutoff: ціле = 0 ; / / Три способи обрізання напрямку 0 викл , Збільшення рівня 1 , – Зниження рівня 1) напрямок обертання електро – ходового клапана
solar_pump: Boolean = False ; / / Сонячний насос вкл / викл – сонячний насос
boiler_on: Boolean = False ; / / Казана включений / виключений – котла вкл / викл
boiler_pump: Boolean = False ; / / Стан котла насос вкл / викл – Насос котла вкл / викл
boiler_fuel_out: Boolean = False ; / / Казана з приблизної палива (к-ть годин опалення) – приблизно брак палива для котла на твердому паливі (розраховується на основі годин роботи котла)
boiler_power_on: Boolean = False ; / / Казана supplay включення / вимикання ; – Потужність котла вкл / викл
boiler_fuel_supply_override: Boolean = False ; / / Override supplyier котельного палива (контроль EHouse / внутрішній контролер котла) – Батько контрольованої подачі палива Система EHouse включення / вимикання
bonfire_pump: Boolean = False ; / / Bonfire стан насоса вкл / викл – пожежний насос вкл / викл
recu_speed: ціле = 0 ; / / Рекуператор Speeed 0 . . 3 – рекуператор швидкості
recu_temperature: ціле ; / / Рівень температури RECU 0 . . 30С температура рекуператор для amalwa
_recu_mode: String = ‘ ‘ ; / / Оздоровчий режим в тексті, як це HEatManager панелі управління (EHouse . EXE) – рекуператор режим контролю додатків EHouse панелі HeatMAnagerem . ехе
пішли: рядок ; / / Текст вентиляції статус HeatManager панелі управління (EHouse . EXE) – вентиляції статус такий же, як у HeatManager панелі EHouse . ехе
котел , Сонячної: рядок ; / / Казана , Сонячна статус HeatManager текст як панель управління (EHouse . EXE) – Стан котлів та сонячних панелей управління (HeatManager) EHouse . ехе
Комі: рядок ; / / Текст багаття статус HeatManager панелі управління (EHouse . EXE) – статус, як і панель управління вогнем EHouse додатка heatmanager . ехе
Управляти освітленням