EHouse Awtomazzjoni Bini – Ħolqien ta 'overlays softwer Windows u algoritmi dwana

Awtomazzjoni Home eHouse ma 'softwer PC jippermettilek li joħolqu overlays għas-sistema awtomazzjoni tal-bini .
Dan jippermettilek li toħloq tiegħek , algoritmi individwali , ma jiġux implimentati fil-Firmware jew sewwieq softwer li jikkontrolla l-serjali Awtomazzjoni Home eHouse .
Għal dan il-għan , aħna jipprovdu lill-utenti mal-kodiċi sors tas-softwer (fil Delphi 5) . Dawn jistgħu jiġu kkumpilati bi verżjonijiet ġodda ta 'Delphi jew użati għall ipprogrammar ta' lingwi oħra .
Aħna konxjament għażlet dan verżjonijiet arkajka kif huma diġà disponibbli b'xejn għall-programm dilettanti .
Huma jaħdmu biss bħala affidabbli fuq Windows XP , Vista , Windows 7 kemm 32 u 64 bit .
Dan is-software huwa msejjaħ eHouseLogAnalizer u dawn l-applikazzjonijiet template zkuk li jaqra fajls test aġġornata .
Dan jista 'jiġi ġestit u sorveljat minn applikazzjonijiet KillWdt . exe .
Karatteristiċi ewlenin ta 'l-applikazzjoni:

  • Qari l-istatus u l-ismijiet tal-sewwieqa kollha
  • Aqra l-istatus u jidħlu l-ismijiet tal-sewwieqa kollha
  • Aqra l-kejl u l-ismijiet tal-sewwieqa kollha tal-kejl inputs
  • Tagħbija-data kollha lill-memorja interna programm , li jistgħu jkunu aktar ipproċessati minn applikazzjoni

L-applikazzjoni tuża l-istatus ta 'fajls maħluqin għall-fajls test f'direttorju ‘ zkuk / status / ‘ estensjoni ‘ . status ‘ .
Il-fajl jinqara biss fil-każ ta 'bidliet fl-eHouse applikazzjoni . exe .

Kontrolluri tad-data huma mgħobbija fil-Rekords istanzi li ġejjin ” ehouse_rm_em_hm ” elenkati fl-RM firxa .

Minbarra , data tinżamm HeatManager-varjabbli li ġejjin:
bonfire_status: string ; / / Status ta 'ħuġġieġa għal HeatManager – Nar Status tisħin panel eHouse . exe
boiler_status: string ; / / Status ta 'kaldarun ta' HM – istatus tal-kaldarun tat-tisħin panel eHouse . exe
Solar_status: string ; / / Status tas-sistema solari – istatus ta 'eHouse solar panel tisħin . exe
recuperator_status: string ; / / Status ta 'irkupru , ventilazzjoni , tisħin bl-ajru – istatus ta 'ventilazzjoni, tisħin u l-irkupru tas-sħana
HADC: array [0 . . 15] ta 'double ; / / Saħħan Temperaturi manager – temperatura kejl HeatManager
/ Indiċi / sħana maniġer għall-aċċess dirett ta 'firxa HADC – Indiċijiet kostanti temperatura għall-qari dirett ta 'HeatManager temperatura
CONST HM_GWC = 3 ; / / GWC – Heat exchanger art
HM_KOM1 = 4 ; / / Nar Coat 1 – Ilma ħuġġieġa ġakketta 1
HM_KOMKONV = 5 ; / / Nar konvekcyjne – ħuġġieġa konvezzjoni
HM_KOM2 = 6 ; / / Nar PLANE 2 – ilma ħuġġieġa ġakketta 2 (backup)
HM_TWEWN = 7 ; / / Temperatura interna tal-kamra – temperatura interna tal-kamra
HM_SOLAR = 9 ; / Ħad kollezzjonisti / – solari sistema
HM_ZEWNPN = 8 ; Temperatura tramuntana / / Esterni – temperatura tramuntana esterna
HM_ZEWNPD = 1 ; Temperatura / / esterna tal-nofsinhar – temperatura nofsinhar esterna
HM_KOC = 10 ; / Kaldarun Temperatura / – temperatura tal-bojler
HM_BANDOL = 11 ; / / CO / ilma sħun tank isfel – sħun buffer qiegħ Watter
HM_REQIN = 12 ; / / Arja nadifa input recuperator – input irkupru ċara arja
HM_REQOUT = 13 ; / / Output recuperator home – irkupru friska heaten blow-arja tal-kamra – temperatura
HM_NAG = 14 ; / / Temperatura kkontrollata 3 – mod valv għat-tisħin u għat-radjaturi – temperatura wara cutoff modi 3 għall-heater ilma jew sistema ta 'tisħin oħra
HM_REQWYC = 15 ; / / Home recuperator estratt maħmuġ – irkupru mid-dar maħmuġ exhaust temperatura
HM_BANGORA = 2 ; / / Tisħin / ilma sħun tank Gora – sħun TOP buffer ilma
HM_BANSRO = 0 ; / / Tisħin / ilma sħun tank tal-ħażna mezz ta ' – MIDDLE buffer ilma sħun
var HADCNames: array [0 . . 15] ta 'sekwenza ; / / L-ismijiet tal-sensors (kejl inputs) HeatManagera
Bażiku funzjonijiet EhouseLogAnalizer:
proċedura init_heat_temperature_names ; / / Initialize u / jew b'sensors tat-temperatura aqra l-ismijiet ta 'HM
loadnames_rm proċedura ; / Ismijiet / Tagħbija RoomManagerĂłw (eHouse 1)
proċedura readethernetdevs ; / / Jaqra l-ismijiet tas-sewwieq Ethernet (eHouse 2)
funzjoni get_index_rm (str: string): numru sħiħ ; / / Denunzji l-indiċi tat-tabella mal-tfittxija roomManagerami-istatus isem fajl
funzjoni gb (CHR: char): Boolean ; / / Denunzji valur Boolean għall-istatus jinqara
Proċedura adc_hm (str: string ; indiċi: numru sħiħ) ; / / Tikkonverti l-sekwenza b'temperaturi rreġistrati ta 'l-istatus HeatManagera jaqra
Proċedura adc_rm (str: string ; indiċi: numru sħiħ) ; / / Tikkonverti string ta 'kejl Analog meta taqra l-RoomManagerĂłw istatus
GBS funzjoni (b: Boolean): String ; / / Write Boolean fil-forma test (0 , 1)
Funzjoni RMDeviceIndexByName (str: string): numru sħiħ ; / / Denunzji l-indiċi tat-tabella mal-tfittxija RoomManagerami mix-xufier isem
Funzjoni RMGetOutputStateNr (indiċi: numru sħiħ ; OutputNr: numru sħiħ): Boolean ; / / Ritorn-RM istat output [indiċi] u l-OutputNR numru output
Funzjoni RMGetOutputState (indiċi: numru sħiħ ; OutputName: string): Boolean ; / / Denunzji-RM istat output [indiċi] u jissej OutputName
Funzjoni RMGetInputStateNr (indiċi: numru sħiħ ; InputNr: numru sħiħ): Boolean ; / / Denunzji l-istatus tar-RM input [indiċi] u n-numru ta 'InputNr dħul
Funzjoni RMGetInputState (indiċi: numru sħiħ ; InputName: string): Boolean ; / / Denunzji l-istatus tar-RM input [indiċi] u l-isem tal-InputName dħul
Funzjoni RMGetTempNr (indiċi: numru sħiħ ; InputNr: numru sħiħ): doppja ; / / Denunzji-temperatura RM [indiċi] u n-numru ta 'InputNr dħul
Funzjoni RMGetTemp (indiċi: numru sħiħ ; InputName: string): doppja ; / / Denunzji-temperatura RM [indiċi] u l-isem tal-InputName dħul
Funzjoni RMGetInvPercent (indiċi: numru sħiħ ; InputName: string): doppja ; / / Denunzji a kejl perċentwali ta 'reverse 100 % – x RM [indiċi] u l-isem tal-InputName dħul (fir-rigward tal-kontrollur vultaġġ tal-provvista)
Funzjoni RMGetInvPercentNr (indiċi: numru sħiħ ; InputNr: numru sħiħ): doppja ; / / Denunzji a kejl perċentwali ta 'reverse 100 % – x RM [indiċi] u n-numru ta 'InputNr dħul (fir-rigward tal-kontrollur vultaġġ tal-provvista)
Funzjoni RMGetPercent (indiċi: numru sħiħ ; InputName: string): doppja ; / / Denunzji a kejl persentaġġ ta '[indiċi] RM u l-isem tal-InputName dħul (fir-rigward tal-kontrollur vultaġġ tal-provvista)
Funzjoni RMGetPercentNr (indiċi: numru sħiħ ; InputNr: numru sħiħ): doppja ; / / Denunzji a kejl perċentwali ta 'reverse 100 % – x RM [indiċi] u l-isem tal-InputNr dħul (fir-rigward tal-kontrollur vultaġġ tal-provvista)
Funzjoni RMGetDeviceOutputState (Devname: string ; OutputName: string): Boolean ; / / Denunzji l-istat tas-sewwieq output imsejħa Devname u jissej OutputName
Funzjoni RMGetDeviceInputState (Devname: string ; InputName: string): Boolean ; / / Denunzji l-istatus ta 'l-input tas-sewwieq l-isem u l-isem tal-InputName Devname dħul
Funzjoni HMGetTemp (InputName: string): doppja ; / / Ritorn temperatura tal-input kejl sejjaħ għal HeatManagera InputName
HMGetTempNr funzjoni (InputNr: numru sħiħ): doppja ; / / Ritorn temperatura tan-numru input kejl għall HeatManagera InputNr (1 . . 16)
funzjoni chk_int (st: string): numru sħiħ ; / / Safe biex jikkonvertu string li integer
Proċedura update_status ; / / Aġġorna l-istatus tal-sewwieqa kollha fit-tabella (trid tkun run perjodikament)
Test_save proċedura ; / / Proċedura tat-test li tikteb ir-riżultati għall-fajl test faċli għall-
Initialize-sewwieq u l-ismijiet kollha huma magħmula ladarba l-applikazzjoni tkun bdiet (FormCreate)
Proċedura TForm1 . FormCreate (Sender: TObject) ;
tibda
triq: = getcurrentdir () ; / / Niżżel l-passaġġ attwali tal-programm għandu jkun fil-direttorju % eHouse_DIR % \ BIN \
triq: = stringreplace (passaġġ , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get triq ta 'eHouse applikazzjoni – tistabbilixxi l eHouse passaġġ applikazzjoni
loadnames_rm ; Ismijiet / / Tagħbija kontrollur ehouse1 – tagħbijiet l-isem sewwieqa eHouse 1
init_heat_temperature_names ; / / Tagħbija sensors heatManagera isem
readethernetdevs ; / / Tagħbija kontrolluri ismijiet eHouse ethernet – qari ismijiet apparat eHouse 2
timer1 . Intervall: = 3000 ; / / Set ċikliku kompitu intervall fl millisekondi – Settijiet il-ħin biex jibdew jiċċekkjaw l-informazzjoni ċikliċi
timer1 . Iffaċilitati: = vera ; / / Bidu kompiti awtomatiċi (aġġornament istatus – tinkludi verifika regolari ta 'data
update_status ; / / Jaqra l-istatus 1
aħħar ;
Ċikliċi data iċċekkjar isir mill-funzjoni Timer1 (Timer1Timer) runs fi intervall ta 'żmien stabbilit fl-parametru Timer1 . Intervall (fil millisekondi) .
Proċedura TForm1 . Timer1Timer (Sender: TObject) ;
var tf: textfile ;
tibda
update_status ; / / Tikkonverti l-istatus tas-sewwieq
Test_save ; / / Għat-test jikteb riżultati kollha għal fajl test
ipprova / / toħloq fajl markatur għall-applikazzjoni KillExec . exe li jistgħu ” watch ” applikazzjoni qabel crash
AssignFile (tf , passaġġ + ‘ zkuk \ log – analizer . STP ‘ ) ;
/ / Jinnotifikaw WDT Dik l-applikazzjoni tħadem sew billi tuża stampfile ” log \ log – analizer . STP ”
jikteb (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
finalment ;
closefile (tf) ;
aħħar ;
aħħar ;