EHouse 1 – Home Automation – Контролер держави в двійковій формі

EHouse Home Automation , Управління будівлею версія 1 – кадр стану системи контролера Home Automation .
Щоб створити повністю функціональний , ефективне власне програмне забезпечення для панелей управління, які вимагають візуалізації необхідно реалізувати пряме декодування EHouse 1 водій статус у двійковій формі . В залежності від вибору нормального режиму роботи або розширеного адреси (Extended_address) , рамка для відправки статусу водія виглядає наступним чином (у дужках зазначена різниця в розширеному режимі адреса) .
Цей режим необхідний для роботи під керівництвом CommManager водія і посилає адресу повідомлення призначення за межами подій , Власну адресу пристрою призначення можу сказати відправника для прийому подій (рука – трясти) .
Якщо інтерфейс RS – 485 безумовно не рекомендував прямі спроби підключення до водія , як відправка деяких команд можуть викликати такі програми очищення пам'яті (прошивки) Контролери яка могла б покласти край їх життя .
Інші команди або випадкових сигналів RS – 485 може підірвати стабільність системи або визначено сповільнить свою роботу .
Рідні EHouse Автоматизація Контролери повинні працювати під керівництвом продюсера додатків ” EHouse . ехе ” .
Для забезпечення безпеки , Ви можете читати статусу драйверів без підключення до них через додаток EHouse . Exe (UDP протокол і LAN) .
Це не є – інвазивних читанні , Не завантажується ні програмне забезпечення, ні контролерів , і, що більш , не нав'язливі в будь-який протокол шлях передачі через RS – 485 .
Ситуація змінюється, коли eHouse_1 контролери працюють під керівництвом CommManager .
CommManager контролер може відправити статусу (EHouse 1 і CommManager в інтегрованому пакеті) , UDP доступ в Інтернет і доступ до цих даних встановлення з'єднання і без – інвазивні, а також безпосередньо з CommManager або інших EHouse Ethernet контролерів .
Отримання даних за статусом UDP ми не можемо шкодити водіїв , і максимум вхідних даних перекручують .
EHouse система не посилати нічого безпеки водія UDP , Водій не має значення, чи є клієнт отримує дані, передані через UDP чи ні , , Або число клієнтів становить 0 або 250 .
Отримання даних з EHouse системи домашньої автоматизації , UDP є безпечною і не завантажується в будь-якому випадку контролерів або EHouse програмного забезпечення , відправка передач (UDP_broadcast) до локальної мережі .
Статус вікно має наступний формат:
< ; ; DATA_SIZE> ; ; (< ; ; The_destination_address_H> ; ; < ; ; The_destination_address_L> ; ; ) < ; ; Local_addres_H> ; ; < ; ; Local_address_L> ; ; < ; ; Команда> ; ; < ; ; данние_1> ; ; . . . . . < ; ; Дані> ; ; < ; ; Data_N> ; ; < ; ; DATA_SIZE> ; ; (< ; ; The_destination_address_H> ; ; < ; ; The_destination_address_L> ; ; ) < ; ; Local_address_H> ; ; < ; ; Local_address_L> ; ; < ; ; Команда> ; ; < ; ; данние_1> ; ; . . . . . < ; ; Дані> ; ; < ; ; Data_N> ; ; < ; ; 0> ; ;
Нормальний режим / VS . (Extended Address)
1 . Розмір даних (обсяг даних)
2 . Address_H_target (Address_H_target)
3 . Address_L_target (Address_L_target)
4 . Control_command (Address_H_of_local_controller_return_path)
5 . Data_1_byte (Address_L_of_local_controller_return_path)
6 . Data_2_byte (Control_Command)
7 Data_3_byte (Data_1_byte)
8 . . Інші дані для даної команди .
Якщо ви відправляєте стан водія ; з керуючої команди ‘ -ів ‘ .
Продовжуйте слідувати даних в двійковій формі, щоб звести до мінімуму передачу інформації через послідовний RS – 485 .
Для забезпечення безпеки , даними додається перевірити – Підводячи для усунення неправильних трансляцій виконувати .
Відправити команду статус ‘ -ів ‘ ,
Кадр статусу драйверів Home Automation EHouse 1 і опису номер байта (індекс зсуву в залежності від режиму роботи (звичайний або extended_address) .
Це постійне зміщення вказаного нище TCP_INDEX_INC . В залежності від режиму , він може приймати значення 3 для розширеного адреси або 0 для звичайних передач . При написанні програмного забезпечення , Ви могли б розглянути цей параметр у вигляді змінної , тому що це дозволяє нам легко маніпулювати даними в більш пізніх версіях, якщо кадр зміщується в тій чи іншій формі .
Індекси кожен байт стану кадр з водіїв EHouse 1 (початок кадру):
STATUS_ADC = 1 +2 + TCP_INDEX_INC ; / / Значення A/D_converters_2_bytes_1B = MSB , 2В = LSB! .
STATUS_OUT = 17 +2 + TCP_INDEX_INC ; / / Цифровий вихід говориться, перший індекс

/ / Кожен вихід 1 біт LSB найменше число , MSB найбільших
STATUS_IN = 20 +2 + TCP_INDEX_INC ; / / Цифровий вхід держав LSB найменше число , MSB найбільших
STATUS_INT = 21 +2 + TCP_INDEX_INC ; / / Штатів цифрових входів (переривання) LSB найменше число , MSB найбільших
STATUS_OUT25 = 22 +2 + TCP_INDEX_INC ; / / Виведе держави від 25 . . 32, так само, як вихід
STATUS_LIGHT = 23 +2 + TCP_INDEX_INC ; / / Стан одного 1B диммер Діммер
STATUS_ZONE_PGM = 26 +2 + TCP_INDEX_INC ; / / Ні поточних зони для EM
STATUS_PROGRAM = 27 +2 + TCP_INDEX_INC ; / / Ні поточну програму
STATUS_INPUTEXT_A_ACTIVE = 28 +2 + TCP_INDEX_INC ; / / Вхідний inputextender в активному стані
STATUS_INPUTEXT_B_ACTIVE = 32 +2 + TCP_INDEX_INC ; / / Вхідний inputextender B в активному стані
STATUS_INPUTEXT_C_ACTIVE = 36 +2 + TCP_INDEX_INC ; / / Вхідний inputextender C в активному стані
STATUS_INPUTEXT_A = 40 +2 + TCP_INDEX_INC ; / / Вхідний inputextender сигналізації та попередження
STATUS_INPUTEXT_B = 50 +2 + TCP_INDEX_INC ; / / Вхідний inputextender B сигналізації та попередження
STATUS_INPUTEXT_C = 60 +2 + TCP_INDEX_INC ; / / Вхідний inputextender C Сигналізація та попередження
/ / Стан HeatManager
STATUS_ADC_HEART = 1 +2 + TCP_INDEX_INC ; / / Вимірювання температури з 16 датчиками точно так само, як і для RM
STATUS_OUT_HEART = 33 +2 + TCP_INDEX_INC ; / / Цифровий вихід говориться, по аналогії з RM
WENT_MODE = 51 + TCP_INDEX_INC ;
RECU_MODE: = 50 + TCP_INDEX_INC ;
CURRENT_PGM: = 38 + TCP_INDEX_INC ;
/ / Стан CommManager – інтегровані з статусу драйверів EHouse 1 (гібридна система) EHouse 1 під керівництвом CommManager
STATUS_EHOUSE1_DEVS = 0 ; / / Встановити статус пристроїв, підключених до RS485 (eHouse_1) вище 71 байта
STATUS_ADC_ETH = 72 ; / / ADC_measurements_16_inputs * 2B / D_notation_as_for_RM_Vcc = 3V3
STATUS_ADC_ETH_END = STATUS_ADC_ETH +32 ; / / Кінець / D вимірювання
STATUS_OUT_I2C = STATUS_ADC_ETH_END ; / / 2 рази i2c 10 * 8 / / макс = 160 виходами модуля на модуль розширення
STATUS_INPUTS_I2C = STATUS_OUT_I2C +20 ; / / 2 рази i2c 6 * 8 / / макс 96 входів на модуль розширення
STATUS_ALARM_I2C = STATUS_INPUTS_I2C +12 ; / / Input_in стан тривоги (по відношенню до маски для поточної зони безпеки)
STATUS_WARNING_I2C = STATUS_ALARM_I2C +12 ; / / Input_warning стані (по відношенню до маски для поточної зони безпеки)
STATUS_MONITORING_I2C = STATUS_WARNING_I2C +12 ; / / Input_condition моніторингу (по відношенню до маски для поточної зони безпеки)
STATUS_PROGRAM_NR = STATUS_MONITORING_I2C +12 ; / / Program_number_CommManager
STATUS_ZONE_NR = STATUS_PROGRAM_NR +1 ; / / Number_CommManager_zone
STATUS_ADC_PROGRAM = STATUS_ZONE_NR +1 ; / / ADC_program_number
STATUS_ADC_PROGRAM STATUS_LIGHT_LEVEL = 2 ; / / Статус 3 диммери / / Dimmer 3 * 2B
Приклад розрахунку температури на стан HM
я = індекс аналоговий вхід 0 . . 15 для HM gettemplm функції (MSB , LSB) ;
TEMPHM [I]: = gettemplm (вул. [STATUS_ADC_HEART + я * 2 + TCP_INDEX_INC] , вул [STATUS_ADC_HEART + I * 2 +1 + TCP_INDEX_INC]) eHouse_Home_Automation_OpenSource_Delphi