EHouse 1 – Home Automation – контролер в двоичен вид

EHouse Home Automation , Building Management версия 1 – рамките на състоянието на системата контролер Home Automation .
Да се ​​създаде напълно функционален , ефективен собствен софтуер за контролни панели, които изискват визуализация трябва да приложи директен декодиране EHouse 1 положението на водача в двоичен вид . В зависимост от избора на нормалния режим на работа или разширен адрес (Extended_address) , рамка, за да изпратите състоянието на водача е, както следва (в скоби отбелязва разликата в разширен режим адрес) .
Този режим се изисква да работят под надзора на CommManager водача и изпраща съобщение дестинация извън събитие , Собствен адрес до местоназначението устройство може да каже на подателя, за да получите събития (ръка – разклащайте) .
Ако интерфейсът RS – 485 определено не препоръчваме преки опити за свързване на водача , изпращане на някои команди може да се причини такава памет на програмата за почистване (фърмуер) Контролери , които биха могли да сложи край на живота си .
Други команди или случайни сигнали в RS – 485 може да подкопае стабилността на системата или определено забавят работата му .
Native EHouse Автоматизация контролери трябва да работят под надзора на производителя прилагане ” EHouse . EXE ” .
За сигурността , можете да прочетете статуса на драйверите, без да се свързвате с тях чрез прилагането EHouse . Exe (UDP протокол и LAN) .
Това не е – инвазивна четене , зареждане на софтуер, нито контролери , и което е по- , не натрапчива в какъвто и да е протокол за еднопосочен трансфер чрез RS – 485 .
Ситуацията е различна когато eHouse_1 контролери работят под надзора на CommManager .
CommManager контролерът може да изпраща статус (EHouse 1 и CommManager в интегриран пакет) , UDP локална мрежа и достъп до тези данни е несвързан и не – инвазивна, както и директно от CommManager или други Ethernet контролери EHouse .
Получаване на данни относно статута на UDP, ние не може да навреди на водачите , и най-много на входящите данни тълкува погрешно .
EHouse система да не изпраща нищо безопасността на водача UDP , водач, който не е от значение дали клиентът получава данните, изпратени през UDP или не , или дали броя на клиентите е 0 или 250 .
Получаване на данни от EHouse система за автоматизация на дома , UDP е безопасна и не се зареди по никакъв начин контролери или софтуер EHouse , изпращане на LAN предавания (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> ; ;
Нормален режим / срещу . (Extended Адрес)
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 . . останалата част от данните за дадена команда .
Ако изпратите състоянието на водача " ; и за контрол и управление ‘ S ‘ .
Продължете да следвате данните в двоичен вид, за да се сведе до минимум пренос на информация чрез сериен RS – 485 .
За безопасност , до данните се провери – обобщение за премахване на грешни предавания изпълняват .
Изпрати команда статус е ‘ S ‘ ,
Frame статуса на драйверите 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 , 2B = 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 ; / / Б Input inputextender в активно състояние
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 Б и предупреждение
STATUS_INPUTEXT_C = 60 2 + TCP_INDEX_INC ; / / Въвеждане на inputextender C Аларми и предупреждение
/ / Статус HeatManager
STATUS_ADC_HEART = 1 +2 + TCP_INDEX_INC ; / / Измерване на температурата от 16 сензора, по същия начин както за РМ
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 A / D_notation_as_for_RM_Vcc = 3V3
STATUS_ADC_ETH_END = STATUS_ADC_ETH 32 ; / / Край на измерване на A / 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 един ; / / Number_CommManager_zone
STATUS_ADC_PROGRAM = STATUS_ZONE_NR един ; / / ADC_program_number
STATUS_ADC_PROGRAM STATUS_LIGHT_LEVEL = 2 ; / / Направи Статус три димери / / Dimmer 3 * 2B
Пример за изчисляване на температурата на статута на HM
= индекс аналогов вход 0 . . 15 HM gettemplm функция (MSB , LSB) ;
TEMPHM [I]: = gettemplm (ул. [STATUS_ADC_HEART + I * 2 + TCP_INDEX_INC] , ул. [STATUS_ADC_HEART + * 2 +1 + TCP_INDEX_INC]) eHouse_Home_Automation_OpenSource_Delphi