Desxifrant l'estat binari dels controladors d'automatització de la llar – codi font lliure

Domòtica , Gestió d'Edificis eHouse – Desxifrant l'estat dels controladors de microprocessador
Domòtica rebuda pel panell de control connectat a la LAN o WiFi , a través d'UDP (User Datagram Protocol) .
El bastidor estàndard d'estat de recepció en forma binària , amb Controladors es discuteixen en l'article ” EHouse Edifici Intel · ligent controlador d'estat dels paquets ” .
Desxifrant el marc necessari per analitzar cada bit de dades de paquet .
A més , cada tipus de controlador:

  • RoomManager
  • ExternalManager
  • HeatManager
  • InputExtender
  • Gestor de comunicació
  • LevelManager
  • EthernetRoomManager

Tenen una diferència en la quantitat d'entrades digitals , entrades de mesura , sortides digitals , dimmers , funcions de control i algorismes que resulten , que les dades en el marc muten estàndard en funció del tipus de controlador .
Això resulta en la necessitat de descodificar el bit per bit per a cada tipus de controlador independentment .
En el cas de l'aplicació de tot tipus de controladors microprocessadors per crear i provar l'algorisme de descodificació marc pot trigar fins a 1 mes .
Per reduir al mínim aquest temps a un mínim , per facilitar llestos per presentar l'algorisme pres de eHouse . exe aplicació , per decodificar tota la informació al controlador i carregar dades en els registres de la plantilla del panell tàctil (per tabletes) Windows XP , Vista , 7 , 8 .
Després de carregar automàticament les dades a les biblioteques eHouse programari , amb unes poques línies de codi , vostè pot crear el seu propi control del sistema eHouse algorismes en pocs minuts .
Marc de descodificació de programari binari de la norma d'estat eHouse es porta a terme a la biblioteca de plantilla per al panell . Cal fer binari , per l'estat de descodificació directa dels controladors de Ethernet sense eHouse . Exe supervisió aplicació .
Desxifrant el marc sencer (per als controladors de microprocessador eHouse1 RM , EM , HM) es porta a terme per la funció set_rm procediment (str: array_of_char ; TCP_INDEX_INC: integer) ;
paràmetres són funcions de l'estat de memòria intermèdia i desplaçament (offset) . El tampó conté totes les dades rebudes des de l'estat . Offset depèn del tipus de transmissió (direcció estesa , normal , i altres aplicacions futures que depenen d'algorismes de comunicació) .
S'emplena automàticament l'estat de la matriu per a cada controlador individual i després es pot manipular directament les dades o l'actualització de dades automàticament en els panells de pantalla tàctil .
Aquesta funció s'activa en el procediment d'esdeveniment de rebre les dades del component UDP socket (TNMUDP – diu binari) en cas onDataReceived .
La recepció és el següent:
procediment TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: integer ; FromIP: String ; El port: Integer) ;
var C: array [0 . . 1024] of char ;
MyStream: TMemoryStream ;
començar
si filesystem_status surti ; / / Si no hi ha sistema d'arxius filesystem_status
MyStream: = TMemoryStream . Crear ; / / Crear un flux de dades
binari . ReadStream (MyStream) ; / / Llegir el flux de dades
MyStream . Llegir (C [0] , NumberBytes) ; / / Carrega el tampó C
set_rm (C , 1) ; / / Converteix les dades binaris i les càrregues dels registres rm [index] per controladors eHouse 1
Test_save ; / / Prova de gravar el resultat en un arxiu de text per a una fàcil operació
update_panel ; / / Carregar dades del quadre de comandament
final ;
Permet automàticament i no – invasiu de la col · lecció de dades a través d'una LAN o Wi- – Fi amb la transmissió en paquet a través d'UDP (User Datagram Protocol) .
Què més no requereix una connexió oberta amb el servidor només escolta al port de difusió ‘ 6789 ‘ predeterminat o d'un altre .
Errors enllaç , Xarxa , routers no resultar en una suspensió o errors no especificats de programari (com en el cas de la comunicació TCP amb el servidor) , però desapareix simplement actualitzar les dades sense afectar les dades o l'aplicació adequada del servidor de client UDP .

ADVERTÈNCIA! . Si creeu un programari de control de Windows per eHouse Home Automation , és necessari per posar en pràctica tots els algorismes en una aplicació , que analitza les dades i realitza tots els algorismes i visualitzar . Hem observat que a vegades 2 socket d'escolta UDP no poden existir en la mateixa PC .
Les variables més importants en el binari de la biblioteca:
boiler_alarm: Boolean = false ; / / Alarma de la caldera d'alarma programat temperatura per sobre de
/ / Més – alarma de temperatura de la caldera
bonfire_stat: integer ; / / Bonfire nivell d'escalfament 0 – 7 per la manera binari – ocupació incendi estat
/ / 0 – disparar – no escalfa
/ / 1 – Fire on / extintor => ; ; nivell verd < ; ; temp jaqueta (LED verd parpelleja) – expira parpelleja en verd
/ / 2 – foc => ; ; nivell green> ; ; Jaqueta = Temperatura> ; ; nivell groc – histeressis (LED verd) – verd
/ / 3 – foc => ; ; nivell groc – histeressis> ; ; temp jaqueta> ; ; histeressis nivell + groc) (verd + groc leds) – verd – groc
/ / 4 – foc => ; ; nivell groc + histeressis> ; ; temp jaqueta> ; ; nivell vermell – histeressis (groc) – groc
/ / 5 – incondicional => ; ; nivell vermell – histeressis < ; ; temp jaqueta < ; ; histeressis nivell + vermell (vermell + groc LED) groc – vermell
/ / 6 – incondicional => ; ; temp jaqueta> ; ; histeressis nivell + vermell (LED vermell constant) – vermell
/ / 7 – incondicional => ; ; temp jaqueta> ; ; alarma foguera (LED vermell parpellejant) ALARMA – parpelleja en vermell
bonfire_sensor_error: Boolean = false ; / / Error foguera sensors massa aigua diferents sensors jaqueta de temperatura entre dues
/ / Error xemeneia sensors de temperatura del mantell diferència massa gran
recuperator_status: cadena ; / / Situació de la recuperació , ventilació , calefacció d'aire – Recuperador i estat de ventilació
recu_winter: Boolean = false ; / / Recuperador d'hivern / estiu manera d'intercanviador de calor activat / desactivat – Recuperador d'hivern / estiu
recu_manual_amalva: boolean = true ; / / Recuperador automàtic / manual per a la manera amalva recuperador (auto gestionat per controladora interna amalva , manual per eHouse HeatManager) / /
Recuperador amalva manual / automàtic
went_cooler: boolean = true ; / / L'aigua més freda d'encesa / apagat per ventilació o més fred a la recuperació recuperació del sistema o GWC ON / OFF
went_gwc: Boolean = false ; Servomotor / / GHE (intercanviador de calor de terra) d'encesa / apagat – intercanviador de calor de terra motor d'encesa / apagat
went_aux_gwc_fan: Boolean = false ; / / Auxiliar GWC ventilador / ventilador d'encesa / apagat per l'intercanviador de calor de terra – Ventilador GWC assistida
bonfire_dgp: Boolean = false ; / / Foguera calent sistema de distribució d'aire activat / desactivat – Fan de distribució d'aire calent de la xemeneia DGP
ventilation_on: Boolean = false ; / / La ventilació està treballant actualment encès / apagat – inclouen la ventilació i recuperació de calor
heater_pump: boolean = true ; / / Bomba de escalfador de ventilació d'encesa / apagat – bomba de calefacció i el circuit de ventilació per radiadors
three_ways_cutoff: integer = 0 ; / / Tres maneres de direcció de tall 0 off , L'augment de nivell 1 , – La disminució de nivell 1) de la direcció de rotació electro – vàlvula unidireccional
solar_pump: Boolean = false ; / / Solar de la bomba on / off – bomba solar
boiler_on: Boolean = false ; / / Calderes activat / desactivat – caldera d'encesa / apagat
boiler_pump: Boolean = false ; / / Estat de la bomba de la caldera d'encesa / apagat – caldera de bomba d'encesa / apagat
boiler_fuel_out: Boolean = false ; / / Calderes de combustible aproximat (compte hores d'escalfament) – estimats escassetat de combustible per a la caldera de combustible sòlid (calculat sobre la base d'hores de funcionament de la caldera)
boiler_power_on: Boolean = false ; / Supplay / caldera d'encesa / apagat ; – Caldera d'encesa / apagat
boiler_fuel_supply_override: Boolean = false ; / / Override supplyier caldera de combustible (control de eHouse / controlador de la caldera interna) – Pare lliurament controlat de combustible sistema eHouse on / off
bonfire_pump: Boolean = false ; / Bomba / Bonfire estat on / off – la bomba contra incendis d'encesa / apagat
recu_speed: integer = 0 ; / / Recuperador speeed 0 . . 3 – Recuperador de velocitat
recu_temperature: integer ; / / Temperatura nivell de recuperació 0 . . 30 º C de temperatura recuperador per amalwa
_recu_mode: string = ‘ ‘ ; / / Recuperació en mode text com HeatManager quadre de comandament (eHouse . exe) – Recuperador de manera que el tauler de control eHouse aplicació HeatMAnagerem . exe
van ser: cadena ; / Ventilació / Text estat com un panell de control HeatManager (eHouse . exe) – ventilació estat de la mateixa com en el panell HeatManager de eHouse . exe
caldera , solar: cadena ; / / Caldera , Text Solar estat HeatManager com un panell de control (eHouse . exe) – estat de la caldera i el panell de control solar eHouse (HeatManager) . exe
komi: cadena ; / Foguera / Text estat com un panell de control HeatManager (eHouse . exe) – estat com el panell de control d'incendis eHouse aplicació HeatManager . exe
Llums de control