Deshifrim statusi binar të kontrollorëve të automatizimit në shtëpi – Kodi burim të lirë

Automatizimi në shtëpi , Menaxhim Ndërtimi eHouse – Deshifrim statusi i kontrollorëve mikroprocesor
Automatizimi në shtëpi marrë nga paneli i kontrollit lidhur me LAN ose WiFi , me anë të UDP (User Datagram Protocol) .
Standardi pritjes kornizë statusi në formën binare , me Kontrollorët u diskutua në nenin ” Inteligjente Building eHouse kontrollues paketë statusi ” .
Deshifrim kornizë nevojë për të analizuar çdo grimë të të dhënave nga paketë .
Veç kësaj , çdo lloj kontrollues:

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

Të ketë një ndryshim në shumën e inputeve digjitale , inputeve matjes , Rezultatet digjitale , dimmers , Funksionet e monitorimit dhe algoritme që rezultojnë , se të dhënat në kuadër standarde shndrrohet në varësi të llojit të kontrollues .
Kjo rezulton në nevojën për deshifrim pak nga pak për secilin lloj të kontrollues të pavarur .
Në rastin e zbatimit të të gjitha llojeve të kontrollorëve mikroprocesor për të krijuar dhe testuar algorithm deshifrim kornizë mund të zgjasë deri në 1 muaj .
Për të minimizuar këtë kohë në minimum , për të lehtësuar gatshëm të paraqesë algorithm huazuar nga eHouse . Aplikimi exe , automatikisht të deshifroj të gjitha informatat nga kontrollues dhe të dhënat e ngarkesës në regjistrat template e panelit kontakt (për pllakat) Windows XP , Vështrim në të ardhmen , 7 , 8 .
Pas ngarkimit automatikisht të dhënat në bibliotekat software eHouse , me disa rreshta të kodit , ju mund të krijoni tuaj algoritme sistemin e kontrollit eHouse në pak minuta .
Frame Binary software deshifrim e standardit të statusit eHouse është zbatuar në bibliotekën template për panelin . Ajo ka nevojë të bëhet binar , të drejtpërdrejtë për statusin deshifrim nga kontrollorët Ethernet pa eHouse . Aplikimi exe mbikëqyrjes .
Deshifrim kornizë tërë (për kontrollorët mikroprocesor eHouse1 RM , EM , HM) kryhet nga funksioni set_rm procedurës (str: array_of_char ; TCP_INDEX_INC: integer) ;
Parametrat janë funksionet e statusit tampon dhe zhvendosje (offset) . Tampon përmban të gjitha të dhënat e marra nga statusit . Kompensuar varet nga lloji i transmetimit (adresa zgjeruar , normal , dhe aplikacionet e tjera të ardhshme në ngarkim algoritme komunikimit) .
Ajo automatikisht mbush statusin e vektorit për çdo kontrollues individualisht dhe pastaj mund të drejtpërdrejt të manipuluar të dhënat ose të dhëna të update automatikisht në panele touch ekran .
Ky funksion është aktivizuar në procedurë ngjarje të marrin të dhëna nga UDP socket (komponenti TNMUDP – quhet binar) në rast onDataReceived .
E pritjes është si vijon:
Procedura TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: Numër i plotë ; FromIP: String ; Port: Integer) ;
var C: [array 0 . . 1024] i char ;
MyStream: TMemoryStream ;
filloj
nëse filesystem_status pastaj dil ; / / Nëse nuk sistem file filesystem_status
MyStream: = TMemoryStream . Krijoj ; / / Krijo një rrymë e të dhënave
dyjor . ReadStream (MyStream) ; / / Lexoni lumë të dhënave
MyStream . Lexoni (C [0] , NumberBytes) ; / / C Ngarkesa tampon
set_rm (C , 1) ; / / Konverton të dhënat binare dhe ngarkesat rm regjistrat [Indeksi] për kontrolluesit eHouse 1
Test_save ; / / Test rekord e prodhimit në një skedar teksti për operacion i lehtë
update_panel ; / / Load dhënat për panelin e kontrollit
fund ;
Kjo ju lejon të automatikisht dhe jo – Mbledhja e të dhënave pushtuese mbi një LAN apo Wi – Fi me anë të UDP transmetim paketë (User Datagram Protocol) .
Çfarë më shumë nuk kërkon një lidhje të hapur me serverin vetëm dëgjon në transmetim port ‘ 6789 ‘ parazgjedhur apo të tjera .
Gabimet Lidhje , Rrjet , routers nuk rezultojnë në një pezullim apo gabimeve të papërcaktuar software (si në rastin e komunikimit me serverin TCP) , por zhduket vetëm update të dhënat e pa ndikuar apo të dhënave të përshtatshme UDP server klientit aplikimi .

KUJDES! . Nëse keni krijuar software kontrollit mbi një dritareve për Automatizimi eHouse shtëpi , është e nevojshme për të zbatuar të gjitha algoritme në një aplikim , i cili analizon të dhënat dhe kryen të gjitha algoritme dhe kujtoj ato . Ne kemi vërejtur ndonjëherë se 2 socket UDP dëgjuesi nuk mund të ekzistojnë në të njëjtën PC .
Variablat më të rëndësishme në binar bibliotekës:
boiler_alarm: Boolean = false ; / / Alarm alarm kazan temperatura programuar më sipër
/ / Mbi – alarmi temperatura bojler
bonfire_stat: integer ; / / Ngrohje Bonfire niveli 0 – 7 për regjimin binar – statusi i punësimit zjarri
/ / 0 – zjarr off – nuk ngrohur
/ / 1 – Fire on / fikje => ; ; Niveli i gjelbër < ; ; temp xhaketë (jeshile LED keq) – skadon flashes gjelbër
/ / 2 – Zjarri në => ; ; Niveli i gjelbër> ; ; = Xhaketë Temp> ; ; Niveli i verdhë – histeressis (jeshile ZHEL) – e gjelbër
/ / 3 – Zjarri në => ; ; Niveli i verdhë – histeressis> ; ; xhaketë temp> ; ; Niveli histeressis + verdhë) (jeshile të verdhë + LEDs) – e gjelbër – i verdhë
/ / 4 – Zjarri në => ; ; Niveli i verdhë + histeressis> ; ; xhaketë temp> ; ; Niveli kuqe – histeressis (e verdhë) – i verdhë
/ / 5 – pakushtëzuar => ; ; Niveli kuqe – histeressis < ; ; xhaketë temp < ; ; histeressis Niveli + e kuqe (e kuqe + verdhë LEDs) verdhë – i kuq
/ / 6 – pakushtëzuar => ; ; xhaketë temp> ; ; Niveli histeressis + e kuqe (e kuqe LED konstante) – i kuq
/ / 7 – pakushtëzuar => ; ; xhaketë temp> ; ; alarmi zjarr i madh (i kuq LED keq) ALARM – flashes kuqe
bonfire_sensor_error: Boolean = false ; / / Sensorë Error Bonfire shumë shumë të ndryshme xhaketë sensorë temperatura e ujit në mes të dy
/ / Fireplace Error sensorë temperatura vishem me ndryshim shumë i madh
recuperator_status: string ; / / Gjendja e çlodhje , ventilim , ngrohje e ajrit – rekuperator dhe statusi ventilimit
recu_winter: Boolean = false ; / / Exchanger rekuperator dimër / verë ngrohjes Mode aktivizuar / çaktivizuar – rekuperator dimër / verë
recu_manual_amalva: boolean = e vërtetë ; / / Rekuperator auto / manual mode për amalva rekuperator (auto menaxhohet nga brendshme controler amalva , manual për eHouse HeatManager) / /
rekuperator amalva manual / automatik
went_cooler: boolean = e vërtetë ; / / Uji frigorifer on / off për ajrosje ose pije freskuese në rikuperim reanimacionit sistemit ose GWC ON / OFF
went_gwc: Boolean = false ; Servomotor / / GHE (ngrohjes exchanger terren) on / off – ngrohjes exchanger terren motor on / off
went_aux_gwc_fan: Boolean = false ; / / Ndihmëse GWC ventilator / tifoz në / off switch për ngrohje exchanger terren – Tifoz GWC ndihmuar
bonfire_dgp: Boolean = false ; / / Hot Bonfire ajrit shpërndarjes Sistemi i aktivizuar / çaktivizuar – Shpërndarja e ajrit të nxehtë tifoz nga DGP fireplace
ventilation_on: Boolean = false ; / / Ventilim është duke punuar on / off – përfshijnë ventilim dhe shërim të ngrohjes
heater_pump: boolean = e vërtetë ; / / Pompë për ngrohës për ventilim on / off – ngrohje pompë dhe qark ventilim për të radiatorëve
three_ways_cutoff: integer = 0 ; / / Tre mënyra e drejtimit ndërprerje 0 off , Rritja e nivelit 1 , – Zvogëlimi i nivelit 1) drejtimin e rotacionit elektro – mënyrë valvula
solar_pump: Boolean = false ; / / Pompë diellore on / off – pompë diellore
boiler_on: Boolean = false ; / / Kaldajave aktivizuar / çaktivizuar – kazan on / off
boiler_pump: Boolean = false ; / / Statusi i pompë kazan on / off – pompë kazan on / off
boiler_fuel_out: Boolean = false ; / / Kaldajave nga e karburantit aproximate (numëruar orët e ngrohjes) – Mungesa e vlerësuara karburantit kazan për lëndë djegëse të ngurta (llogaritur mbi bazën e orëve të funksionimit të kaldajës)
boiler_power_on: Boolean = false ; / Pushtet / kaldajave supplay on / off ; – Fuqia kazan on / off
boiler_fuel_supply_override: Boolean = false ; / / Override kazan supplyier karburantit (kontroll nga eHouse / kontrollues të brendshëm bojler) – Kontrolluar prind karburantit ofrimit të sistemit eHouse on / off
bonfire_pump: Boolean = false ; / Statusi / Zjarr i madh pompë on / off – pompë zjarri on / off
recu_speed: integer = 0 ; / / Rekuperator Speeed 0 . . 3 – rekuperator shpejtësi
recu_temperature: integer ; / / Niveli Temperatura e RECU 0 . . 30C temperatura rekuperator për amalwa
_recu_mode: string = ‘ ‘ ; / / Çlodhje mode në tekstin si ajo HeatManager kontroll panel (eHouse . exe) – Mënyra rekuperator si eHouse panelit të kontrollit të aplikimit HeatMAnagerem . exe
shkoi: string ; / Statusi / Tekst ventilimit si një panel Kontrollit HeatManager (eHouse . exe) – Statusi i ventilimit njëjtë si në panelin e HeatManager eHouse . exe
bojler , diellore: string ; / / Kaldajave , Diellore HeatManager Teksti statusin si një Control Panel (eHouse . exe) – Statusi i bojler diellore dhe panel kontrolli (HeatManager) eHouse . exe
Komi: string ; / Statusi / Tekst zjarr i madh, si një panel kontrolli HeatManager (eHouse . exe) – statusi si eHouse kontrollit të zjarrit panel aplikimit HeatManager . exe
Dritat e kontrollit