Descodificar o estado binário de controladores de domótica – código fonte livre

Domótica , Gestão de Edifícios Ehouse – Descodificar o estado dos controladores de microprocessador
Domótica recebido pelo painel de controle ligado à LAN ou Wi-Fi , via UDP (User Datagram Protocol) .
O estado de recepção padrão moldura em forma binária , com Controladores foi discutida no artigo ” Intelligent Building eHouse pacote de status do controlador ” .
Decodificar o quadro precisa analisar cada bit de dados de pacote .
Além , cada tipo de controlador:

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

Tem uma diferença na quantidade de entradas digitais , entradas de medição , saídas digitais , faróis baixos , funções de monitoramento e algoritmos que resultam , que os dados no mutate quadro padrão, dependendo do tipo de controlador .
Isto resulta na necessidade de descodificar o bit por bit, para cada tipo de controlador independente .
No caso de a aplicação de todos os tipos de controladores de microprocessador para criar e testar a moldura algoritmo de descodificação pode ter até 1 mês .
Para minimizar este tempo a um mínimo , para facilitar a pronta para apresentar o algoritmo emprestado eHouse . exe , para decodificar automaticamente todas as informações do controlador e carga de dados nos registros de modelo de painel de toque (para tablets) Windows XP , Vista , 7 , 8 .
Depois de carregar automaticamente os dados para as bibliotecas de software eHouse , com poucas linhas de código , você pode criar seu próprio sistema de controle Ehouse algoritmos em poucos minutos .
Binário Quadro software de decodificação do padrão de status eHouse é implementado em modelo de biblioteca para o painel . Ele precisa ser feito binário , para o estado de decodificação direta dos controladores de Ethernet sem eHouse . Supervisão exe .
Decodificação de todo o quadro (para controladores de microprocessadores eHouse1 RM , EM , HM) é levada a cabo pela função set_rm procedimento (str: array_of_char ; TCP_INDEX_INC: integer) ;
parâmetros são funções do estado do buffer e deslocamento (offset) . O tampão contém todos os dados recebidos a partir do estado . Deslocamento depende do tipo de transmissão (endereço estendido , normal , e outras aplicações futuras dependentes em algoritmos de comunicação) .
Ele preenche automaticamente o status da matriz para cada controlador individual e pode manipular diretamente os dados ou de atualização de dados automaticamente em painéis de tela de toque .
Esta função é activada em caso de procedimento recebem dados de UDP componente socket (TNMUDP – chamado binário) em caso onDataReceived .
A recepção é o seguinte:
procedimento TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: Integer ; FromIP: String ; Porto: Integer) ;
var C: array [0 . . 1024] de char ;
MyStream: TMemoryStream ;
começar
se filesystem_status saia ; / / Se nenhum arquivo de sistema filesystem_status
MyStream: = TMemoryStream . Criar ; / / Criar um fluxo de dados
binário . ReadStream (MyStream) ; / / Ler o fluxo de dados
MyStream . Leia (C [0] , NumberBytes) ; / / Carrega o tampão C
set_rm (C , 1) ; / / Converte os dados binários e carrega os registros [índice] rm para controladores eHouse 1
Test_save ; / / Teste gravar a saída para um arquivo de texto para fácil operação
update_panel ; / / Carregar dados para o painel de controle
final ;
Ele permite que você automaticamente e não – coleta invasiva de dados através de uma LAN ou Wi – Fi com a transmissão de pacotes via UDP (User Datagram Protocol) .
O que mais não exige uma conexão aberta com o servidor só escuta na porta de transmissão ‘ 6789 ‘ padrão ou de outro .
Link Erros , Rede , routers não resultar numa suspensão ou erros de software não especificadas (como no caso de uma comunicação com o servidor de TCP) , mas desaparece apenas atualizar os dados sem afetar os dados ou servidor de aplicação adequada cliente UDP .

ATENÇÃO! . Se você criar um software de controle em um Windows para eHouse Domótica , é necessário implementar todos os algoritmos em uma aplicação , que analisa os dados e executa todos os algoritmos e visualizá-los . Observamos que, por vezes, de 2 soquetes UDP ouvinte não pode existir no mesmo PC .
As variáveis ​​mais importantes do binário biblioteca:
boiler_alarm: Boolean = false ; / / Caldeira temperatura de alarme alarme programado acima
/ / Sobre – caldeira de alarme de temperatura
bonfire_stat: inteiro ; / / Nível de aquecimento Fogueira 0 – 7 para o modo binário – fogo situação de emprego
/ / 0 – disparar – não aquece
/ / 1 – Incêndio em / extinção => ; ; nível verde < ; ; temperatura jaqueta (LED verde piscando) – expirar pisca verde
/ / 2 – fogo sobre => ; ; nível verde> ; ; = Jaqueta Temp> ; ; nível amarelo – histeressis (LED verde) – verde
/ / 3 – fogo sobre => ; ; nível amarelo – histeressis> ; ; jaqueta temp> ; ; nível histeressis + amarelo) (verde + amarelo leds) – verde – amarelo
/ / 4 – fogo sobre => ; ; nível amarelo + histeressis> ; ; jaqueta temp> ; ; nível vermelho – histeressis (amarelo) – amarelo
/ / 5 – incondicional => ; ; nível vermelho – histeressis < ; ; jaqueta de temperatura < ; ; histeressis nível + vermelho (vermelho + amarelo leds) amarela – vermelho
/ / 6 – incondicional => ; ; jaqueta temp> ; ; nível histeressis + vermelho (LED vermelho constante) – vermelho
/ / 7 – incondicional => ; ; jaqueta temp> ; ; fogueira alarme alarme (LED vermelho piscando) – pisca em vermelho
bonfire_sensor_error: Boolean = false ; / / Erro fogueira sensores muito diferente da água do sensores de temperatura entre dois
/ / Erro lareira manto sensores de temperatura diferença muito grande
recuperator_status: string ; / Estado / de recuperação , ventilação , aquecimento do ar – Recuperador e status de ventilação
recu_winter: Boolean = false ; / / Recuperador de inverno / verão modo de trocador de calor ativado / desativado – Recuperador de inverno / verão
recu_manual_amalva: boolean = true ; / / Recuperador modo automático / manual para amalva Recuperador (auto gerido pela interna controler amalva , manual para eHouse HeatManager) / /
Recuperador amalva manual / automático
went_cooler: boolean = true ; / Água / resfriador on / off para ventilação ou mais frio na recuperação recuperação do sistema ou GWC ON / OFF
went_gwc: Boolean = false ; Servomotor / / GHE (permutador de calor do solo) on / off – terra do motor trocador de calor on / off
went_aux_gwc_fan: Boolean = false ; / / Auxiliar GWC ventilador / ventilador interruptor on / off para trocador de calor do solo – Fã GWC assistida
bonfire_dgp: Boolean = false ; / / Fogueira sistema de distribuição de ar quente ativado / desativado – Distribuição fã de ar quente da lareira DGP
ventilation_on: Boolean = false ; / / Ventilação está atualmente trabalhando on / off – incluem ventilação e recuperação de calor
heater_pump: boolean = true ; / Bomba / aquecedor de ventilação para on / off – aquecimento da bomba e circuito de ventilação para radiadores
three_ways_cutoff: integer = 0 ; / / Três maneiras de direção de corte 0 fora , Aumentar o nível 1 , – Redução do nível 1) a direção do electro rotação – válvula de modo
solar_pump: Boolean = false ; / / Bomba Solar on / off – bomba solar
boiler_on: Boolean = false ; / / Caldeira ativado / desativado – caldeira on / off
boiler_pump: Boolean = false ; / / Situação da bomba caldeira de ligar / desligar – bomba de caldeira on / off
boiler_fuel_out: Boolean = false ; / Caldeira / sem combustível aproximada (contagem de horas de aquecimento) – estimadas escassez de combustível para caldeiras de combustível sólido (calculada com base na hora de funcionamento da caldeira)
boiler_power_on: Boolean = false ; / Potência supplay / Caldeira on / off ; – Potência da caldeira on / off
boiler_fuel_supply_override: Boolean = false ; / / Substituir caldeira de combustível supplyier (controle por Ehouse / controlador de caldeira interna) – Pai de combustível controlado eHouse sistema de entrega on / off
bonfire_pump: Boolean = false ; / Status / bomba Bonfire on / off – bomba de incêndio on / off
recu_speed: integer = 0 ; / / Recuperador SPEEED 0 . . 3 – Recuperador de velocidade
recu_temperature: inteiro ; / Nível / temperatura de 0 Recu . . 30C temperatura Recuperador de amalwa
_recu_mode: string = ‘ ‘ ; / Recuperação / modo de texto como HeatManager painel de controle (eHouse . exe) – Recuperador modo como o painel de controle de aplicação Ehouse HeatMAnagerem . exe
foi: string ; / Status de ventilação / Texto como um painel de controle HeatManager (eHouse . exe) – estado ventilação o mesmo que no painel de HeatManager eHouse . exe
caldeira , Solar: string ; / Caldeira / , Estado HeatManager Solar texto como um painel de controle (eHouse . exe) – estado da caldeira e da energia solar painel de controle (HeatManager) eHouse . exe
komi: string ; / Status fogueira / Texto como um painel de controle HeatManager (eHouse . exe) – status como o painel de controle de incêndio eHouse aplicação HeatManager . exe
Luzes de controle