Descodificar o estado binario de controladores de domótica – código fonte libre

Domótica , Xestión de Edificios Ehouse – Descodificar o estado dos controladores de microprocesador
Domótica recibido polo panel de control conectado á rede local ou Wi-Fi , vía UDP (User Datagram Protocol) .
O estado de recepción estándar marco en forma binaria , con Controladores foi discutida no artigo ” Intelligent Building eHouse paquete de estado do controlador ” .
Decodificar o cadro que analizar cada bit de datos de paquetes .
Ademais , cada tipo de controlador:

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

Ten unha diferenza na cantidade de entradas dixitais , entradas de medición , saídas dixitais , faros baixos , funcións de vixilancia e algoritmos que resultan , que os datos no mutate cadro estándar, dependendo do tipo de controlador .
Isto resulta na necesidade de descodificar o bit por bit, para cada tipo de controlador independente .
No caso de que a aplicación de todos os tipos de controladores de microprocesador para crear e probar o marco algoritmo de decodificación pode ter ata 1 mes .
Para minimizar este tempo a un mínimo , para facilitar a lista para presentar o algoritmo prestado eHouse . exe , para decodificar automaticamente toda a información do controlador e carga de datos nos rexistros de modelo de panel de chamada (para tablets) Windows XP , Vista , 7 , 8 .
Despois de cargar automaticamente os datos para as bibliotecas de software eHouse , con poucas liñas de código , pode crear o seu propio sistema de control Ehouse algoritmos en poucos minutos .
Binario Cadro software de desencriptación do padrón de estado eHouse é aplicado en modelo de biblioteca para o panel . El precisa ser feito binario , para o estado de desencriptación directa dos controladores Ethernet sen eHouse . Supervisión exe .
Desencriptación de todo o cadro (a controladores de microprocesadores eHouse1 RM , EN , HM) é levada a cabo pola función set_rm procedemento (str: array_of_char ; TCP_INDEX_INC: integer) ;
parámetros son funcións do estado do buffer e desprazamento (offset) . O tapón contén todos os datos recibidos a partir do estado . Desprazamento depende do tipo de transmisión (enderezo estendido , normal , e outras aplicacións futuras dependentes en algoritmos de comunicación) .
El enche automaticamente o estado da matriz para cada controlador individual e pode manipular directamente os datos ou actualización de datos automaticamente en paneis de pantalla táctil .
Esta función é activada en caso de procedemento reciben datos de UDP compoñente socket (TNMUDP – chamado binario) no caso onDataReceived .
A recepción é o seguinte:
procedemento TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: integer ; FromIP: cadea ; Porto: integer) ;
var C: array [0 . . 1024] de char ;
MyStream: TMemoryStream ;
comezar
se filesystem_status saia ; / / Se o ficheiro de sistema filesystem_status
MyStream: = TMemoryStream . Crear ; / / Crear un fluxo de datos
binario . ReadStream (MyStream) ; / / Ler fluxo de datos
MyStream . Ler (C [0] , NumberBytes) ; / / Carga o tapón C
set_rm (C , 1) ; / / Converte os datos binarios e leva os rexistros [Índice] rm para controladores eHouse 1
Test_save ; / / Test gravar a saída a un ficheiro de texto para fácil operación
update_panel ; / / Carga datos para o panel de control
final ;
El permite que automaticamente e non – recolección invasiva de datos a través dunha rede local ou Wi – Fi a transmisión de paquetes vía UDP (User Datagram Protocol) .
O que máis non esixe unha conexión aberta co servidor só escoita na porta de transmisión ‘ 6789 ‘ estándar ou doutro .
Ligazón Erros , Rede , routers non resultar nunha suspensión ou erros de software non especificadas (como no caso dunha comunicación co servidor de TCP) , pero desaparece só actualizar os datos sen afectar os datos ou servidor de aplicación adecuada cliente UDP .

ATENCIÓN! . Se vostede crea un software de control nun Windows para eHouse Domótica , é necesario aplicar todos os algoritmos nunha aplicación , que analiza os datos e executa todos os algoritmos e visualiza-los . Observamos que, ás veces, de 2 soquetes UDP oínte non pode existir no mesmo PC .
As variables máis importantes do binario biblioteca:
boiler_alarm: Boolean = false ; / / Caldeira temperatura de alarma alarma programado arriba
/ / Sobre – caldeira de alarma de temperatura
bonfire_stat: enteiro ; / / Nivel de calefacción Fogueira 0 – 7 a modo binario – lume situación de emprego
/ / 0 – disparar – non quenta
/ / 1 – Incendio en / extinción => ; ; nivel verde < ; ; temperatura chaqueta (LED verde piscando) – caduca pisca verde
/ / 2 – lume sobre => ; ; nivel verde> ; ; = Chaqueta Temp> ; ; nivel amarelo – histeressis (LED verde) – verde
/ / 3 – lume sobre => ; ; nivel amarelo – histeressis> ; ; chaqueta tempo> ; ; nivel histeressis + amarelo) (verde + amarelo LEDs) – verde – amarelo
/ / 4 – lume sobre => ; ; nivel amarelo + histeressis> ; ; chaqueta tempo> ; ; nivel vermello – histeressis (amarelo) – amarelo
/ / 5 – incondicional => ; ; nivel vermello – histeressis < ; ; chaqueta de temperatura < ; ; histeressis nivel + vermello (vermello + amarelo LEDs) amarela – vermello
/ / 6 – incondicional => ; ; chaqueta tempo> ; ; nivel histeressis + vermello (LED vermello constante) – vermello
/ / 7 – incondicional => ; ; chaqueta tempo> ; ; fogueira alarma alarma (LED vermello chiscando) – pisca en vermello
bonfire_sensor_error: Boolean = false ; / / Erro fogueira sensores moi diferente da auga do sensores de temperatura entre dous
/ / Erro lareira manto sensores de temperatura diferenza moi grande
recuperator_status: cadea ; / Estado / de recuperación , ventilación , quentamento do aire – Recuperador e status de ventilación
recu_winter: Boolean = false ; / / Recuperador de inverno / verán modo de trocador de calor activado / desactivado – Recuperador de inverno / verán
recu_manual_amalva: boolean = true ; / / Recuperador modo automático / manual para amalva Recuperador (auto xestionado pola interna controler amalva , manual para eHouse HeatManager) / /
Recuperador amalva manual / automático
went_cooler: boolean = true ; / Auga / resfriador on / off para ventilación ou máis frío na recuperación recuperación do sistema ou GWC ON / OFF
went_gwc: Boolean = false ; Servomotor / / GHE (intercambiador de calor do chan) on / off – terra do motor trocador de calor on / off
went_aux_gwc_fan: Boolean = false ; / / Auxiliar GWC fan / fan chave on / off para trocador de calor do chan – Fan GWC asistida
bonfire_dgp: Boolean = false ; / / Fogueira sistema de distribución de aire quente activado / desactivado – Distribución fan de aire quente da lareira DGP
ventilation_on: Boolean = false ; / / Ventilación está actualmente traballando on / off – inclúen ventilación e recuperación de calor
heater_pump: boolean = true ; / Bomba / aquecedor de ventilación para on / off – Calefacción da bomba e circuíto de ventilación para radiadores
three_ways_cutoff: integer = 0 ; / / Tres formas de dirección de corte 0 fóra , Aumentar o nivel 1 , – Redución do nivel 1) a dirección do electro rotación – chave para
solar_pump: Boolean = false ; / / Bomba Solar on / off – bomba solar
boiler_on: Boolean = false ; / / Caldeira activado / desactivado – caldeira on / off
boiler_pump: Boolean = false ; / / Situación da bomba caldeira de activar / desactivar – bomba de caldeira on / off
boiler_fuel_out: Boolean = false ; / Caldeira / sen combustible aproximada (conta de horas de calefacción) – estimadas escaseza de combustible para caldeiras de combustible sólido (calculada en base á hora de funcionamento da caldeira)
boiler_power_on: Boolean = false ; / Potencia supplay / Caldeira on / off ; – Potencia da caldeira on / off
boiler_fuel_supply_override: Boolean = false ; / / Substituír caldeira de combustible supplyier (control por Ehouse / controlador de caldeira interna) – Pai de combustible controlada eHouse sistema de entrega on / off
bonfire_pump: Boolean = false ; / Status / bomba Bonfire on / off – bomba de incendio on / off
recu_speed: integer = 0 ; / / Recuperador SPEEED 0 . . 3 – Recuperador de velocidade
recu_temperature: enteiro ; / Nivel / temperatura de 0 Recu . . 30C temperatura Recuperador de amalwa
_recu_mode: cadea = ‘ ‘ ; / Recuperación / modo de texto como HeatManager panel de control (eHouse . exe) – Recuperador modo como o panel de control de aplicación Ehouse HeatMAnagerem . exe
foi: cadea ; / Status de ventilación / Texto como un panel de control HeatManager (eHouse . exe) – estado ventilación o mesmo que no panel de HeatManager eHouse . exe
caldeira , Solar: cadea ; / Caldeira / , Estado HeatManager Solar texto como un panel de control (eHouse . exe) – estado da caldeira e da enerxía solar panel de control (HeatManager) eHouse . exe
Komi: cadea ; / Status fogueira / Texto como un panel de control HeatManager (eHouse . exe) – status como o panel de control de incendios eHouse aplicación HeatManager . exe
Luces de control