Dekodering die binêre status van tuis automatisering controllers – gratis bronkode

Home Automation , Building Management eHouse – Dekodering van die status van die mikroverwerker controllers
Home Automation ontvang deur die beheer paneel gekoppel aan die LAN of WiFi , via UDP (User Data Gram Protocol) .
Die standaard raam ontvangs status in binêre vorm , met Controllers is bespreek in die artikel ” Intelligent gebou eHouse kontroleerder status pakket ” .
Dekodering die raam moet elke bietjie van data uit pack te analiseer .
Daarbenewens , elke tipe van 'n kontroleerder:

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

Het jy 'n verskil in die bedrag van digitale insette , meting insette , digitale uitgange , dimmers , monitering funksies en algoritmes wat die resultaat , dat die data in die standaard raam muteer, afhangende van die tipe van die kontroleerder .
Dit lei in die behoefte vir die dekodering van die bietjie vir bietjie by vir elke tipe van 'n kontroleerder onafhanklik .
In die geval van die implementering van alle vorme van die mikroverwerker beheerders te skep en toets van die raam dekodering algoritme kan tot 1 maand .
Hierdie tyd tot 'n minimum te verminder , gereed te fasiliteer die algoritme geleen uit eHouse aan te bied . exe aansoek , outomaties dekodeer al die inligting van die Kontroleur en vrag data in die sjabloon rekords van touch-panel (tablette) Windows XP , Vista , 7 , 8 .
Na outomaties laai van die data in die eHouse sagteware biblioteke , met 'n paar reëls van die kode , jy kan jou eie beheer algoritmes eHouse stelsel skep in 'n paar minute .
Binary Frame dekodering sagteware van die eHouse status standaard is geïmplementeer in die Sjabloon Biblioteek vir paneel . Dit gedoen moet word om binêre , vir direkte dekodering status van Ethernet controllers sonder eHouse . Exe aansoek toesig .
Dekodering die hele raam (vir mikroverwerker controllers eHouse1 RM , EM , HM) word uitgevoer deur die proses set_rm funksie (str: array_of_char ; TCP_INDEX_INC: integer) ;
parameters is funksies van die buffer status en verskuiwing (offset) . Die buffer bevat al die data van die status ontvang . Offset hang af van die tipe van oordrag (uitgebreide adres , normale , en ander toekomstige toepassings afhanklik van kommunikasie algoritmes) .
Dit vul die skikking status vir elke kontroleerder outomaties individueel en kan dan direk manipuleer die data of update data outomaties op die skerm touch panele .
Hierdie funksie word geaktiveer in geval prosedure van data van UDP socket komponent (TNMUDP – genoem binêre) in die geval onDataReceived .
Die ontvangs is soos volg:
prosedure TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: Integer ; FromIP: String ; Port: Integer) ;
var C: array [0 . . 1024] van char ;
MyStream: TMemoryStream ;
begin
indien filesystem_status dan verlaat ; / / Indien geen lêerstelsel filesystem_status
MyStream: = TMemoryStream . Skep ; / / Skep 'n stroom van data
binêre . ReadStream (MyStream) ; / / Lees die data stroom
MyStream . Lees (C [0] , NumberBytes) ; / / Laai die buffer C
set_rm (C , 1) ; / / Skakel die binêre data op laai en vele die registers rm [Index] vir beheerders eHouse 1
Test_save ; / / Toets noteer die uitset na 'n tekslêer vir maklike werking
update_panel ; / / Laai data vir die beheer paneel
einde ;
Dit laat jou toe om outomaties en nie – indringende insameling van data oor 'n LAN of Wi – Fi met die pakket-uitsending via UDP (User Data Gram Protocol) .
Wat meer vereis nie net 'n oop verbinding met die bediener luister op die hawe-uitsending ‘ 6789 ‘ versuim of ander .
Foute skakel , Netwerk , routers nie lei tot 'n opskorting of ongespesifiseerde sagteware foute (soos in die geval van kommunikasie met TCP-bediener) , maar verdwyn net die data bywerk sonder wat die data of geskikte bediener UDP kliënt aansoek .

WAARSKUWING! . As jy 'beheer sagteware op 'n Windows vir eHouse Home Automation , is dit nodig om alle algoritmes te implementeer in een aansoek , wat die data ontleed en voer al die algoritmes en visualiseer hulle . Ons waargeneem soms dat 2 UDP luisteraar socket nie kan bestaan ​​nie op dieselfde rekenaar .
Die belangrikste veranderlikes in die biblioteek binêre:
boiler_alarm: Boolean = false ; / / Boiler alarm alarm geprogrammeer temperatuur bo
/ / Oor – temperatuur alarm ketel
bonfire_stat: integer ; / / Bonfire verwarming vlak 0 – 7 vir binêre modus – werkstatus vuur
/ / 0 – brand af – die hitte nie
/ / 1 – Vuur op / blus => ; ; groen vlak < ; ; temp baadjie (groen LED flikkerende) – verstryk flitse groen
/ / 2 – vuur op => ; ; groen vlak> ; ; = Temp baadjie> ; ; geel vlak – histeressis (groen LED) – groen
/ / 3 – vuur op => ; ; geel vlak – histeressis> ; ; temp baadjie> ; ; histeressis vlak + geel) (groen + geel leds) – groen – geel
/ / 4 – vuur op => ; ; geel vlak + histeressis> ; ; temp baadjie> ; ; rooi vlak – histeressis (geel) – geel
/ / 5 – onvoorwaardelike => ; ; rooi vlak – histeressis < ; ; temp baadjie < ; ; histeressis vlak + rooi (rooi + geel leds) geel – rooi
/ / 6 – onvoorwaardelike => ; ; temp baadjie> ; ; histeressis vlak + rooi (rooi LED konstante) – rooi
/ / 7 – onvoorwaardelike => ; ; temp baadjie> ; ; vreugdevuur alarm (rooi LED flikkerende) ALARM – rooi flitse
bonfire_sensor_error: Boolean = false ; / / Error sensors vreugdevuur te veel verskillende water baadjie temperatuur sensor tussen twee
/ / Error kaggel mantel temperatuur sensor te groot verskil
recuperator_status: string ; / / Status van herstel , ventilasie , lug verwarming – recuperator en ventilasie status
recu_winter: Boolean = false ; / / Winter / somer Recuperator warmtewisselaar af geaktiveer / gedeaktiveer – recuperator winter / somer
recu_manual_amalva: boolean = true ; / / Recuperator motor / handleiding af vir amalva recuperator (motor bestuur deur interne controler amalva , handleiding te eHouse HeatManager) / /
recuperator amalva handleiding / motor
went_cooler: boolean = true ; / / Water koeler op / af vir ventilasie of koeler in die stelsel recuperatie recuperatie of GWC ON / OFF
went_gwc: Boolean = false ; / / GHE (grond warmtewisselaar) servomotor op / af – grond warmtewisselaar motor op / af
went_aux_gwc_fan: Boolean = false ; / / Hulp GWC ventilator / fan aan / af skakelaar vir die grond warmtewisselaar – GWC fan bygestaan
bonfire_dgp: Boolean = false ; / / Vreugdevuur warm lug verspreiding stelsel geaktiveer / gedeaktiveer – Fan verspreiding van warm lug uit die kaggel DGP
ventilation_on: Boolean = false ; / / Ventilasie werk tans aan / af – sluit ventilasie en hitte herstel
heater_pump: boolean = true ; / / Pomp vir verwarmer vir ventilasie op / af – pomp verwarming en ventilasie stroombaan vir verkoelers
three_ways_cutoff: integer = 0 ; / / Drie maniere om afgesnyde rigting 0 af , Toenemende 1 , – Dalende vlak 1) die rigting van rotasie elektro – eenrigtingklep
solar_pump: Boolean = false ; / / Solar pomp op / af – sonkrag pomp
boiler_on: Boolean = false ; / / Boiler geaktiveer / gedeaktiveer – ketel op / af
boiler_pump: Boolean = false ; / / Status van die boiler pomp op / af – boiler pomp op / af
boiler_fuel_out: Boolean = false ; / / Boiler uit van brandstof aproximate (tel ure van verwarming) – beraam brandstoftekorte vir soliede brandstof ketel (bereken op die basis van die ure van die werking van die ketel)
boiler_power_on: Boolean = false ; / / Boiler supplay vermoë aan / af ; – Boiler vermoë aan / af
boiler_fuel_supply_override: Boolean = false ; / / Ignoreer supplyier brandstof ketel (beheer deur eHouse / interne ketel kontroleerder) – Ouer beheerde brandstof aflewering stelsel eHouse op / af
bonfire_pump: Boolean = false ; / / Vreugdevuur pomp status op / af – vuur pomp op / af
recu_speed: integer = 0 ; / / Recuperator Speeed 0 . . 3 – recuperator spoed
recu_temperature: integer ; / / Temperatuur vlak van reçu 0 . . 30C temperatuur recuperator vir amalwa
_recu_mode: string = ‘ ‘ ; / / Recuperatie wyse in die teks soos dit HEatManager beheer paneel (eHouse . exe) – recuperator modus as die control panel aansoek HeatMAnagerem eHouse . exe
het: string ; / / Text ventilasie status as 'n HeatManager Control Panel (eHouse . exe) – ventilasie status dieselfde as die in HeatManager paneel van eHouse . exe
ketel , solar: string ; / / Boiler , Solar teks HeatManager status as 'n Control Panel (eHouse . exe) – status van die ketel en die sonpaneel beheer (HeatManager) eHouse . exe
Komi: string ; / / Text vreugdevuur status as 'n HeatManager Control Panel (eHouse . exe) – status as die vuur beheer paneel aansoek heatmanager eHouse . exe
Beheer Lights