Ehouse 1 – Domótica – controlador de estados na forma binária

Ehouse Domótica , Gestão de Edifícios versão 1 – quadro de status do controlador de sistema Domótica .
Para criar um completamente funcional , próprio software eficiente para os painéis de controle que requerem visualização precisa implementar decodificação direta eHouse status do driver 1 em forma binária . Dependendo da escolha do modo de funcionamento normal ou endereço estendido (Extended_address) , moldura para enviar o estado do motorista é a seguinte (entre parêntesis marcada diferença no endereço modo estendido) .
Este modo é obrigado a trabalhar sob a supervisão de motorista CommManager e envia o endereço de destino da mensagem fora de eventos , Endereço próprio para o dispositivo de destino pode dizer o remetente para receber eventos (mão – agitar) .
Se a interface RS – 485 definitivamente não recomendo tentativas diretas para ligar para o motorista , como o envio de alguns comandos podem causar a memória tal programa de limpeza (firmware) Controladores o que poderia acabar com sua vida .
Outros comandos ou sinais aleatórios no RS – 485 pode comprometer a estabilidade do sistema ou definitivamente abrandar o seu trabalho .
Ehouse nativa Controladores de automação devem trabalhar sob a supervisão de aplicação produtor ” Ehouse . exe ” .
Por questões de segurança , você pode ler o estado dos drivers sem conectar a eles através do aplicativo eHouse . Exe (o protocolo UDP e LAN) .
Isto é não – leitura invasivo , não carregar nenhum software, nem controladores , e o que é mais , não intrusiva em qualquer protocolo de transferência de maneira via RS – 485 .
A situação é diferente quando eHouse_1 controladores trabalham sob a supervisão de CommManager .
CommManager controlador pode enviar status (eHouse 1 e CommManager em um pacote integrado) , a LAN UDP e acesso a esses dados é sem conexão e não – CommManager bem como diretamente invasivo ou controladores Ehouse outros Ethernet .
Recebendo dados sobre status de UDP não podemos prejudicar motoristas , e um máximo de dados de entrada misinterpret .
Sistema EHouse não enviar nada para a segurança do motorista UDP , um motorista não importa se o cliente recebe os dados enviados sobre UDP ou não , ou se a contagem de clientes é 0 ou 250 .
Receber dados do eHouse sistema de automação residencial , o UDP é seguro e não carrega de forma alguma controladores ou software eHouse , enviar transmissões (UDP_broadcast) à LAN .
Caixa de status tem o seguinte formato:
< ; ; DATA_SIZE> ; ; (< ; ; The_destination_address_H> ; ; < ; ; The_destination_address_L> ; ; ) < ; ; Local_addres_H> ; ; < ; ; Local_address_L> ; ; < ; ; comando> ; ; < ; ; Data_1> ; ; . . . . . < ; ; Dados> ; ; < ; ; Data_N> ; ; < ; ; DATA_SIZE> ; ; (< ; ; The_destination_address_H> ; ; < ; ; The_destination_address_L> ; ; ) < ; ; Local_address_H> ; ; < ; ; Local_address_L> ; ; < ; ; comando> ; ; < ; ; Data_1> ; ; . . . . . < ; ; Dados> ; ; < ; ; Data_N> ; ; < ; ; 0> ; ;
Modo Normal / vs . (Endereço Extended)
1 . tamanho dos dados (tamanho dos dados)
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 . . o resto dos dados para um comando dado .
Se você enviar o status do driver ' ; o controle de comando ‘ s ‘ .
Continue a seguir os dados em formato binário para minimizar a transferência de informação através de uma série RS – 485 .
Por razões de segurança , para os dados é anexada verificar – Resumindo para eliminar emissões incorretas realizar .
Envie o status do comando é ‘ s ‘ ,
Status de quadro de motoristas Domótica eHouse 1 e uma descrição do número de byte (deslocamento de índice em função do modo de funcionamento (normal ou extended_address) .
Este deslocamento constante chamada abaixo TCP_INDEX_INC . Dependendo do modo , ele pode tomar um valor de 3 para o endereço estendido ou 0 para transmissão normal . Quando escrevendo um software , você pode considerar este parâmetro como uma variável , porque nos permite facilmente manipular os dados em versões posteriores se o quadro é deslocado de uma maneira ou de outra .
Índices de cada estado moldura byte do eHouse controladores 1 (o início do quadro):
STATUS_ADC = 1 +2 + TCP_INDEX_INC ; / / O valor de A/D_converters_2_bytes_1B = MSB , 2B LSB =! .
STATUS_OUT = 17 +2 + TCP_INDEX_INC ; / / Saída digital afirma primeiro índice

/ / Número menor Cada saída LSB bit 1 , MSB maior
STATUS_IN = 20 +2 + TCP_INDEX_INC ; / / Entrada digital estados número menor LSB , MSB maior
STATUS_INT = 21 +2 + TCP_INDEX_INC ; / / Estados de entradas digitais (interrupção) número menor LSB , MSB maior
STATUS_OUT25 = 22 +2 + TCP_INDEX_INC ; / / Mostra os estados a partir de 25 . . 32 do mesmo modo que a saída
STATUS_LIGHT = 23 +2 + TCP_INDEX_INC ; / Estado / de um dimmer dimmer 1B
STATUS_ZONE_PGM = 26 +2 + TCP_INDEX_INC ; / / Não zona atual para EM
STATUS_PROGRAM = 27 +2 + TCP_INDEX_INC ; / / No programa atual
STATUS_INPUTEXT_A_ACTIVE = 28 +2 + TCP_INDEX_INC ; / Inputextender Input / A no estado ativo
STATUS_INPUTEXT_B_ACTIVE = 32 +2 + TCP_INDEX_INC ; / / B inputextender entrada no estado ativo
STATUS_INPUTEXT_C_ACTIVE = 36 +2 + TCP_INDEX_INC ; / C inputextender / Entrada no estado ativo
STATUS_INPUTEXT_A = 40 +2 + TCP_INDEX_INC ; / Input / inputextender A Alarmes e advertência
STATUS_INPUTEXT_B = 50 +2 + TCP_INDEX_INC ; / / Entrada inputextender Alarmes B e Aviso
STATUS_INPUTEXT_C = 60 +2 + TCP_INDEX_INC ; / Alarmes inputextender / Entrada C e Aviso
/ HeatManager Estado /
STATUS_ADC_HEART = 1 +2 + TCP_INDEX_INC ; / / As medições de temperatura de 16 sensores da mesma forma que para a RM
STATUS_OUT_HEART = 33 +2 + TCP_INDEX_INC ; / / Output digital afirma igualmente que RM
WENT_MODE = 51 + TCP_INDEX_INC ;
RECU_MODE: = 50 + TCP_INDEX_INC ;
CURRENT_PGM: = 38 + TCP_INDEX_INC ;
/ CommManager Estado / – integrado com o estado dos drivers eHouse 1 (sistema híbrido) eHouse 1, sob a supervisão de CommManager
STATUS_EHOUSE1_DEVS = 0 ; / / Coloque o status dos dispositivos conectados ao RS485 (eHouse_1) acima de 71 bytes
STATUS_ADC_ETH = 72 ; / / ADC_measurements_16_inputs * 2B A / = 3V3 D_notation_as_for_RM_Vcc
STATUS_ADC_ETH_END = STATUS_ADC_ETH 32 ; / / Fim da medição A / D
STATUS_OUT_I2C = STATUS_ADC_ETH_END ; / / 2 vezes i2c 10 * 8 / / max = 160 saídas do módulo do módulo de extensão em
STATUS_INPUTS_I2C = STATUS_OUT_I2C 20 ; / / 2 vezes I2C 6 * 8 / / max 96 entradas no módulo de extensão
STATUS_ALARM_I2C = STATUS_INPUTS_I2C 12 ; / / Input_in o estado de alarme (em relação com a máscara da zona de segurança de corrente)
STATUS_WARNING_I2C = STATUS_ALARM_I2C 12 ; / Input_warning / estado (com relação à máscara para o atual zona de segurança)
STATUS_MONITORING_I2C = STATUS_WARNING_I2C 12 ; / Input_condition / monitorização (em relação com a máscara da zona de segurança de corrente)
STATUS_PROGRAM_NR = STATUS_MONITORING_I2C 12 ; / / Program_number_CommManager
STATUS_ZONE_NR = 1 STATUS_PROGRAM_NR ; / / Number_CommManager_zone
STATUS_ADC_PROGRAM = 1 STATUS_ZONE_NR ; / ADC_program_number /
STATUS_ADC_PROGRAM STATUS_LIGHT_LEVEL = 2 ; / / Estado 3 dimmers / Dimmer / 3 * 2B
Exemplo de cálculo da temperatura sobre o estado de HM
i = índice de entrada analógica 0 . . 15 para HM gettemplm função (msb , LSB) ;
TEMPHM [i]: = gettemplm (str [STATUS_ADC_HEART + i * 2 + TCP_INDEX_INC] , str [STATUS_ADC_HEART + i * 2 1 + TCP_INDEX_INC]) eHouse_Home_Automation_OpenSource_Delphi