Building Automation eHouse – Die skep van 'n Windows sagteware overlays en persoonlike algoritmes

Home Automation eHouse met PC sagteware laat jou toe om te skep overlays vir gebou automatisering stelsel .
Dit kan jy jou eie te skep , individuele algoritmes , is nie geïmplementeer nie in die firmware of bestuurder sagteware wat beheer die serial Home Automation eHouse .
Vir hierdie doel , bied ons gebruikers met die sagteware-bronkode (in Delphi 5) . Hulle kan opgestel word met nuwer weergawes van Delphi of gebruik word vir ander programmeertale .
Ons bewustelik besluit om hierdie argaïese weergawes as hulle is reeds beskikbaar vir gratis vir amateur program .
Hulle werk net so betroubaar op Windows XP , Vista , Windows 7 beide 32 en 64 bit .
Hierdie sagteware heet eHouseLogAnalizer en hierdie logs sjabloon programme wat lees teks lêers op datum .
Dit kan bestuur word en gemonitor word deur aansoeke KillWdt . exe .
Belangrike kenmerke van die aansoek:

  • Lees die status en die name van al die bestuurders
  • Lees status en gee die name van alle bestuurders
  • Lees die afmetings en die name van al die bestuurders meet insette
  • Laai al die data na die interne program geheue , wat verder verwerk kan word deur 'n aansoek

Die program maak gebruik van die status van die geskape lêers na teks lêers in 'n gids ‘ logs / status / ‘ uitbreiding ‘ . status ‘ .
Die lêer is slegs in die geval van veranderinge in die aansoek eHouse gelees . exe .

Data controllers gelaai word in die volgende gevalle Records ” ehouse_rm_em_hm ” gelys in die skikking RM .

Daarbenewens , rekords word gehou HeatManager die volgende veranderlikes:
bonfire_status: string ; / / Status van vreugdevuur vir HeatManager – Status kaggel verwarming paneel eHouse . exe
boiler_status: string ; / / Status van die ketel vir HM – status van die ketel verwarming paneel eHouse . exe
Solar_status: string ; / / Status van sonkrag stelsel – status van sonverhitting paneel eHouse . exe
recuperator_status: string ; / / Status van herstel , ventilasie , lug verwarming – status van verwarming ventilasie en hitte herstel
HADC: array [0 . . 15] van dubbele ; / / Heat Temperature bestuurder – temperatuur metings HeatManager
/ / Heat bestuurder indekse vir direkte toegang van HADC skikking – Konstante temperatuur indekse vir direkte lesing van die temperatuur HeatManager
CONST HM_GWC = 3 ; / / GWC – Grond Warmtewisselaar
HM_KOM1 = 4 ; / / Kaggel Coat 1 – Vreugdevuur water baadjie 1
HM_KOMKONV = 5 ; / / Kaggel konvekcyjne – konveksie vreugdevuur
HM_KOM2 = 6 ; / / Fire PLANE 2 – vreugdevuur water baadjie 2 (back-up)
HM_TWEWN = 7 ; / / Interne kamertemperatuur – interne kamer temperatuur
HM_SOLAR = 9 ; / / Collector Sondag – sonnestelsel
HM_ZEWNPN = 8 ; / / Eksterne temperatuur noord – eksterne temperatuur noord
HM_ZEWNPD = 1 ; / / Eksterne temperatuur van die Suide – eksterne temperatuur suide
HM_KOC = 10 ; / / Temperatuur ketel – boiler temperatuur
HM_BANDOL = 11 ; / / CO / warm water tenk – warm WATTER onderkant buffer
HM_REQIN = 12 ; / / Clean Air recuperator insette – recuperatie duidelik lug toevoer
HM_REQOUT = 13 ; / / Output recuperator home – verwarmd overdekt recuperatie vars blaas lug tot kamer – temperatuur
HM_NAG = 14 ; / / Temperatuur beheer drie – eenrigtingklep vir verwarming en vir verkoelers – temperatuur na drie maniere afknip vir water verwarmer of ander verhitting stelsel
HM_REQWYC = 15 ; / / Home recuperator uittreksel vuil – recuperatie van die huis vuil uitlaat temp
HM_BANGORA = 2 ; / / Verhitting / warm water tenk gora – warm water buffer TOP
HM_BANSRO = 0 ; / / Verhitting / warm water opgaartenk 'n middel van die – MIDDLE warm water buffer
var HADCNames: array [0 . . 15] tou ; / / Die name van die sensors (meet insette) HeatManagera
Basiese funksies EhouseLogAnalizer:
prosedure init_heat_temperature_names ; / / Inisialiseer en / of temperatuur sensors lees die name van HM
prosedure loadnames_rm ; / / Laai RoomManagerĂłw name (eHouse 1)
prosedure readethernetdevs ; / / Lees die Ethernet bestuurder name (eHouse 2)
get_index_rm funksie (STR: string): integer ; / / Opbrengste die indeks van die tabel met roomManagerami soek deur die lêernaam status
funksie gb (CHR: char): boolean ; / / Gee 'n Boolese waarde vir die lees status
adc_hm prosedure (str: string ; Index: integer) ; / / Skakel die string met aangeteken temperature van die lees status HeatManagera
adc_rm prosedure (str: string ; Index: integer) ; / Skakel / string van analoog metings wanneer die lees van die status RoomManagerĂłw
GBS funksie (b: boolean): String ; / / Boolean Skryf in teks vorm (0 , 1)
RMDeviceIndexByName funksie (STR: string): integer ; / / Returns die indeks van die tabel met RoomManagerami soektog met die naam van bestuurder
RMGetOutputStateNr funksie (indeks: integer ; OutputNr: integer): boolean ; / / Stuur die uitset staat RM [Index] en die uitset aantal OutputNR
RMGetOutputState funksie (indeks: integer ; OutputName: string): boolean ; / / Opbrengste die uitset staat RM [Index] en uitgeroep OutputName
RMGetInputStateNr funksie (indeks: integer ; InputNr: integer): boolean ; / / Gee die status van die inset RM [index] en die getal van die inskrywing InputNr
RMGetInputState funksie (indeks: integer ; InputName: string): boolean ; / / Gee die status van die inset RM [index] en die naam van die inskrywing InputName
RMGetTempNr funksie (indeks: integer ; InputNr: integer): double ; / / Gee die RM temperatuur [index] en die getal van die inskrywing InputNr
RMGetTemp funksie (indeks: integer ; InputName: string): dubbele ; / / Gee die RM temperatuur [index] en die naam van die inskrywing InputName
RMGetInvPercent funksie (Index: integer ; InputName: string): dubbele ; / / Gee 'n persentasie meting van omgekeerde 100 % – x RM [index] en die naam van die inskrywing InputName (met betrekking tot die toevoerspanning kontroleerder)
RMGetInvPercentNr funksie (indeks: integer ; InputNr: integer): double ; / / Gee 'n persentasie meting van omgekeerde 100 % – x RM [index] en die getal van inskrywing InputNr (met betrekking tot die toevoerspanning kontroleerder)
RMGetPercent funksie (Index: integer ; InputName: string): dubbele ; / / Gee 'n persentasie meting van RM [Index] en die naam van die inskrywing InputName (in verhouding tot die toevoerspanning kontroleerder)
RMGetPercentNr funksie (indeks: integer ; InputNr: integer): double ; / / Gee 'n persentasie meting van omgekeerde 100 % – x RM [index] en die naam van die ingang InputNr (met betrekking tot die toevoerspanning kontroleerder)
RMGetDeviceOutputState funksie (Devname: string ; OutputName: string): boolean ; / / Opbrengste die staat van die uitset bestuurder genoem Devname en uitgeroep OutputName
RMGetDeviceInputState funksie (Devname: string ; InputName: string): boolean ; / / Gee die status van die bestuurder insette die naam en die naam van die inskrywing Devname InputName
HMGetTemp funksie (InputName: string): double ; / / Return temperatuur van die meting insette genoem vir HeatManagera InputName
HMGetTempNr funksie (InputNr: integer): double ; / / Return temperatuur van die meet insette aantal vir HeatManagera InputNr (1 . . 16)
chk_int funksie (st: string): integer ; / / Safe 'n string om te skakel na 'n heelgetal
procedure update_status ; / / Verander die status van al die bestuurders in die tabel (moet van tyd tot tyd loop)
prosedure Test_save ; / / Toets prosedure om die resultate te skryf aan 'n teks lêer vir maklike
Inisialiseer die bestuurder en al die name gemaak word wanneer die aansoek begin (FormCreate)
prosedure TForm1 . FormCreate (Sender: TObject) ;
begin
pad: = getcurrentdir () ; / / Kry die huidige pad van die program moet in die gids % eHouse_DIR % \ Bin \
pad: = stringreplace (pad , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Kry die pad van die aansoek eHouse – stel die aansoek pad eHouse
loadnames_rm ; / / Laai kontroleerder name ehouse1 – laai die bestuurders naam eHouse 1
init_heat_temperature_names ; / / Laai sensors heatManagera naam
readethernetdevs ; / / Laai controllers Ethernet eHouse name – lees toestel name eHouse 2
timer1 . Interval: = 3000 ; / / Stel sikliese taak interval in millisekondes – Stel die tyd om te begin met die nagaan van sikliese data
timer1 . Aangeskakel: = true ; / / Begin outomatiese take (status update – sluit gereelde kontrolering van data
update_status ; / / Lees die eerste status
einde ;
Sikliese data kontrole gedoen deur die funksie Timer1 (Timer1Timer) loop in 'n interval van die tyd in die parameter Timer1 . Interval (in millisekondes) .
prosedure TForm1 . Timer1Timer (Sender: TObject) ;
var tf: tekslêer ;
begin
update_status ; / / Skakel die status van die bestuurder
Test_save ; / / Vir die toets skryf al die resultate na 'n tekslêer
Probeer / / skep 'n merker lêer vir die aansoek KillExec . exe wat ” kyk ” aansoek voor crash
AssignFile (tf , pad + ‘ logs \ log – analizer . stp ‘ ) ;
/ / Stel WDT dat aansoek korrek werk met die stampfile ” log \ log – analizer . stp ”
herskryf (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
uiteindelik ;
closefile (tf) ;
einde ;
einde ;