Decodarea starea binară a controlorilor de automatizare a casei – gratuit codul sursă

Home Automation , Clădire de gestionare eHouse – Decodarea statutul de controlere microprocesor
Home Automation primite de la panoul de control conectat la LAN sau WiFi , prin intermediul UDP (User Datagram Protocol) .
Standardul Recepția statutul cadrului în formă binară , cu Controlere a fost discutat în articol ” Inteligentă eHouse controlor de stare Clădire pachet ” .
Decodarea cadru trebuie să analizeze fiecare bit de date din pachet .
În plus, , fiecare tip de regulator:

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

Ai o diferență în sumă de intrări digitale , măsurare intrări , ieșiri digitale , Dimmers , funcțiile de monitorizare și algoritmi care au ca rezultat , că datele din evolua cadru standard, în funcție de tipul de controler .
Acest lucru duce la necesitatea pentru decodarea bit cu bit pentru fiecare tip de controler independent .
În cazul în care punerea în aplicare a tuturor tipurilor de operatori cu microprocesor pentru a crea și testa algoritmul de decodare cadrul poate dura până la 1 lună .
Pentru a minimiza acest moment la un nivel minim , pentru a facilita gata să prezinte algoritmul împrumutat de la eHouse . exe cerere , pentru a decoda automat toate informațiile de la operatorul de date și de sarcină în evidențele șablon de panou tactil (pentru tablete) Windows XP , Perspectivă , 7 , 8 .
După încărcarea automată a datelor în biblioteci software eHouse , cu câteva linii de cod , vă puteți crea propriul sistem de control algoritmi eHouse în câteva minute .
Binar cadru software-ul de decodare a standardului de stare eHouse este pusă în aplicare în Biblioteca de șabloane pentru panoul . Acesta trebuie să fie făcut binar , pentru statutul de decodare directa de la operatori Ethernet fără eHouse . Exe cerere de supraveghere .
Decodarea întregului cadru (pentru controlorii de microprocesoare eHouse1 RM , EM , HM) se efectuează de către funcția de set_rm procedura de (str.: array_of_char ; TCP_INDEX_INC: integer) ;
Parametrii sunt funcții de starea tampon și deplasare (offset) . Tampon conține toate datele primite de la statutul de . Offset depinde de tipul de transmisie (adresa extins , normal , și alte aplicații viitoare depind de algoritmi de comunicare) .
Se umple automat statutul de matrice pentru fiecare operator individual și poate fi apoi manipula direct datele sau datele de actualizare automat pe panouri cu ecran tactil .
Această funcție este activată în cazul procedurii de primesc date de la UDP componentă socket (TNMUDP – numit binar), în cazul în onDataReceived .
Recepția este după cum urmează:
Procedura de TForm1 . binaryDataReceived (Expeditor: TComponent ;
NumberBytes: Integer ; FromIP: String ; Port: Integer) ;
var C: array [0 . . 1024] de char ;
MyStream: TMemoryStream ;
începe
în cazul în care filesystem_status apoi ieșiți ; / / În cazul în care nici un sistem de fișiere filesystem_status
MyStream: = TMemoryStream . Crea ; / / Crearea unui flux de date
binar . ReadStream (MyStream) ; / / Citește fluxul de date
MyStream . Citește (C [0] , NumberBytes) ; / / Încarcă C tampon
set_rm (C , 1) ; / / Convertește datele binare și sarcinile registrele rm [Index] pentru controlorii de eHouse 1
Test_save ; / / Test înregistrează ieșire într-un fișier text pentru operare usoara
update_panel ; / / Încărcare date pentru panoul de control
capăt ;
Acesta vă permite să automat și fără – colectarea de date invaziv printr-o rețea LAN sau Wi – Fi cu difuzare pachet prin UDP (User Datagram Protocol) .
Ce mai mult nu are nevoie de o conexiune deschisă la server doar ascultă pe portul de difuzare ‘ 6789 ‘ implicit sau alte .
Erori de legătură , Rețea , routere nu duce la suspendarea sau erori de software nespecificate (ca și în cazul de comunicare cu serverul TCP) , dar dispare actualiza doar datele fără a afecta datele sau Corespunzator UDP client-server de aplicații .

ATENȚIE! . Dacă vă creați un software de control pe Windows pentru Home Automation eHouse , este necesar să se pună în aplicare toate într-o singură cerere algoritmi , care analizează datele și efectuează toate algoritmi și vizualizați-le . Am observat că, uneori, 2 soclu UDP ascultatorul nu poate exista pe același PC .
Cele mai importante variabile în binar bibliotecă:
boiler_alarm: Boolean = false ; / / Alarmă cazan alarmă de temperatură programată de mai sus
/ / Peste – alarmei de temperatura cazanului
bonfire_stat: integer ; / / Încălzire nivel Bonfire 0 – 7 pentru modul binar – ocuparea forței de muncă statutul de incendiu
/ / 0 – foc off – nu încălzește
/ / 1 – Incendiilor pe / de stingere => ; ; verde la nivel < ; ; Temperatura sacou (LED-ul verde intermitent) – expiră clipește verde
/ / 2 – focul asupra => ; ; Nivelul verde> ; ; = Jacheta Temp> ; ; galben nivel – histeressis (LED verde) – verde
/ / 3 – focul asupra => ; ; galben nivel – histeressis> ; ; temp sacou> ; ; histeressis nivel + galben) (verde + galben led-uri) – verde – galben
/ / 4 – focul asupra => ; ; galben nivel + histeressis> ; ; temp sacou> ; ; roșu nivel – histeressis (galben) – galben
/ / 5 – necondiționată => ; ; roșu nivel – histeressis < ; ; temp sacou < ; ; histeressis nivel + roșu (roșu + galben led-uri) galben – roșu
/ / 6 – necondiționată => ; ; temp sacou> ; ; histeressis nivel + roșu (LED roșu constantă) – roșu
/ / 7 – necondiționată => ; ; temp sacou> ; ; alarmă foc de tabara (LED roșu intermitent) ALARMA – clipește roșu
bonfire_sensor_error: Boolean = false ; / / Eroare foc de tabara senzori prea mult diferite de senzori de temperatură a apei sacou între două
/ / Eroare semineu manta senzori de diferența de temperatură prea mare
recuperator_status: string ; / / Stare de recuperare , ventilație , de aer de încălzire – Recuperatorul și statutul de ventilație
recu_winter: Boolean = false ; / / Recuperator de iarnă / vară modul schimbător de căldură activat / dezactivat – Recuperatorul de iarna / vara
recu_manual_amalva: boolean = true ; / / Recuperator Auto / Manual Mod de amalva recuperator (auto administrat de interne Controler amalva , manual pentru a eHouse HeatManager) / /
Recuperatorul amalva manuală / automată
went_cooler: boolean = true ; / / Apa rece on / off pentru ventilație sau răcire în recuperarea recuperarea de sistem sau GWC ON / OFF
went_gwc: Boolean = false ; Servomotor / / GHE (schimbător de căldură sol) on / off – schimbător de căldură sol cu ​​motor pornit / oprit
went_aux_gwc_fan: Boolean = false ; / / Auxiliare GWC ventilator / ventilator pornit / oprit pentru schimbătorul de căldură sol – Ventilator GWC asistată
bonfire_dgp: Boolean = false ; / / Bonfire cald a sistemului de distribuție aer activat / dezactivat – Distribuția fan al aerului cald de la DGP șemineu
ventilation_on: Boolean = false ; / / Ventilația este în prezent lucrează la / oprit – includ ventilație și recuperare de căldură
heater_pump: boolean = true ; / / Pompa pentru sisteme de încălzire pentru ventilație on / off – de încălzire pompă și circuitul de ventilație pentru radiatoare
three_ways_cutoff: integer = 0 ; / / Trei moduri de direcție de cutoff 0 oprit , Creșterea de nivel 1 , – Scăderea nivelul 1) direcția de rotație electro – căi
solar_pump: Boolean = false ; / / Solar pompa pornit / oprit – solar pompa
boiler_on: Boolean = false ; / / Cazan activat / dezactivat – cazan on / off
boiler_pump: Boolean = false ; / / Starea pompei cazanului pornit / oprit – Pompa de cazan on / off
boiler_fuel_out: Boolean = false ; / / Cazane din combustibil aproximate (conta ore de încălzire) – penuria de combustibil estimate pentru cazane pe combustibil solid (calculate pe baza de ore de funcționare a cazanului)
boiler_power_on: Boolean = false ; / Putere supplay / cazan on / off ; – Puterea cazanului on / off
boiler_fuel_supply_override: Boolean = false ; / / Override supplyier cazan combustibil (control de către eHouse / regulator cazan internă) – Mamă sistem controlat de livrare de combustibil eHouse pornit / oprit
bonfire_pump: Boolean = false ; / Starea pompei / incendiu pornit / oprit – pompă de incendiu pornit / oprit
recu_speed: integer = 0 ; / / Recuperator Speeed 0 . . 3 – Recuperatorul de viteză
recu_temperature: integer ; / / Nivelul de temperatură al RECU 0 . . 30C temperatura Recuperatorul de amalwa
_recu_mode: string = ‘ ‘ ; / / Recuperare modul în text ca acesta HeatManager panoul de control (eHouse . exe) – Recuperatorul modul în care aplicarea panoul de control HeatMAnagerem eHouse . exe
a fost: string ; / Starea de ventilație / Text ca un panou de control HeatManager (eHouse . exe) – ventilație statut ca și în panoul de HeatManager de eHouse . exe
cazan , solar: string ; / / Cazan , Solar HeatManager statutul de textul în Panoul de control (eHouse . exe) – starea cazanului și solar panoul de control (HeatManager) eHouse . exe
Komi: string ; / Starea foc / Text ca un panou de control HeatManager (eHouse . exe) – statutul de panoul de control de incendiu aplicare HeatManager eHouse . exe
Lumini de control