Hooneautomaatika eHouse – Loomine Windows tarkvara kihtide ja kohandatud algoritme

Home Automation eHouse PC tarkvara võimaldab teil luua kihtide hoone automaatika .
See võimaldab teil luua oma , üksikute algoritmide , ei rakendata püsivara või draiveri tarkvara, mis kontrollib seerianumber Home Automation eHouse .
Selleks , me pakkuda kasutajatele tarkvara lähtekoodi (Delphi 5) . Neid saab koostada uuemad versioonid Delphi või kasutada teisi programmeerimiskeeli .
Me teadlikult valisin selle arhailise versioone, nagu need on juba olemas tasuta amatöör programmi .
Nad töötavad nagu usaldusväärselt Windows XP , Vista , Windows 7 nii 32 ja 64 bitise .
See tarkvara on nn eHouseLogAnalizer ja need palgid malli rakendused lugeda tekstifaile ajakohane .
Seda saab juhtida ja jälgida taotlustes KillWdt . exe .
Põhijooned taotluse:

  • Lugemine välja staatuse ja nimed kõik juhid
  • Loe staatuse ja sisesta nimed kõik juhid
  • Loe mõõtmised ja nimed kõik draiverid mõõtes sisendi
  • Laadi kõik andmed sisemise programmi mälu , mis saab edasi töödelda taotlus

Rakendus kasutab staatuse loodud faile tekstifaile kataloogi ‘ logs / staatus / ‘ laiendamine ‘ . staatus ‘ .
Fail on ainult lugemiseks, kui muutused taotluse eHouse . exe .

Andmete kontrollijad on koormatud järgmistel juhtudel Records ” ehouse_rm_em_hm ” loetletud massiivi RM .

Veel , andmeid hoitakse HeatManager järgmised muutujad:
bonfire_status: string ; / / Staatus lõke jaoks HeatManager – Staatus kaminaküte paneeli eHouse . exe
boiler_status: string ; / / Staatus boiler HM – staatuse katla kütte paneeli eHouse . exe
Solar_status: string ; / / Staatus päikesesüsteem – staatuse päikesekütte paneeli eHouse . exe
recuperator_status: string ; / / Staatus puhkuseks , ventilatsioon , õhu soojendamiseks – staatuse kütte ventilatsiooni ja soojuse taaskasutamise
HADC: array [0 . . 15] kahekordne ; / / Soojuse temperatuur juht – temperatuuri mõõtmiseks HeatManager
/ / Soojuse juht indeksid otsese juurdepääsu HADC massiivi – Püsiv temperatuur indeksite vahetut näitu temperatuur HeatManager
CONSTi HM_GWC = 3 ; / / GWC – Maasoojusvaheti
HM_KOM1 = 4 ; / / Kamin Mantel 1 – Lõke veega jakk 1
HM_KOMKONV = 5 ; / / Kamin konvekcyjne – konvektsioon jaanituli
HM_KOM2 = 6 ; / / Fire tasand 2 – lõke veega jope 2 (backup)
HM_TWEWN = 7 ; / / Sise toatemperatuuril – sise toatemperatuuril
HM_SOLAR = 9 ; / / Koguja Pühap – päikesesüsteem
HM_ZEWNPN = 8 ; / / Välistemperatuuri põhja – välistemperatuur põhja
HM_ZEWNPD = 1 ; / / Välistemperatuuril lõuna – välistemperatuur lõuna
HM_KOC = 10 ; / / Katel – katla temperatuuri
HM_BANDOL = 11 ; / / CO / kuumaveepaagi alla – kuum watter alt puhver
HM_REQIN = 12 ; / / Puhas õhk recuperator sisend – puhkuseks selge õhu sisend
HM_REQOUT = 13 ; / / Väljund recuperator kodu – heaten puhkuseks värske löök õhku tuba – temperatuur
HM_NAG = 14 ; / / Külmutusega 3 – kraan kütmiseks ja radiaatorid – temperatuur pärast kolm võimalust tarneseisak veemahuti või muud küttesüsteemi
HM_REQWYC = 15 ; / / Kodu recuperator ekstrakti määrdunud – taastumine kodus määrdunud heitgaaside temp
HM_BANGORA = 2 ; / / Soojendus / kuumaveepaagi Gora – kuuma vee puhver TOP
HM_BANSRO = 0 ; / / Kütte / sooja vee paak abil – LÄHIS kuuma vee puhver
var HADCNames: array [0 . . 15] string ; / / Nimed andurid (mõõtes sisendi) HeatManagera
Põhifunktsioonid EhouseLogAnalizer:
menetluse init_heat_temperature_names ; / / Initsialiseeri ja / või temperatuuri andurid lugeda nimed HM
menetluse loadnames_rm ; / / Load RoomManagerĂłw nimed (eHouse 1)
menetluse readethernetdevs ; / / Loeb Etherneti juht nimed (eHouse 2)
get_index_rm funktsioon (str: string): integer ; / / Tagastab indeksi tabeli roomManagerami otsing faili nime järgi staatust
funktsioon GB (CHR: char): boolean ; / / Tagastab tõeväärtuse jaoks lugeda staatus
adc_hm kord (str: string ; indeks: täisarv) ; / / Muudab stringi registreeritakse temperatuuri lugemise HeatManagera
adc_rm kord (str: string ; indeks: täisarv) ; / / Muudab string analoog mõõtmised lugedes staatus RoomManagerĂłw
GBS funktsioon (b: boolean): String ; / / Kirjutage boolean teksti kujul (0 , 1)
RMDeviceIndexByName funktsioon (str: string): integer ; / / Tagastab indeksi tabeli RoomManagerami otsing nime juhi
RMGetOutputStateNr funktsioon (indeks: täisarv ; OutputNr: integer): boolean ; / / Tagastab väljundi olekut RM [index] ja väljund arv OutputNR
RMGetOutputState funktsioon (indeks: täisarv ; OutputName: string): boolean ; / / Tagastab väljundi olekut RM [index] ja hõikas OutputName
RMGetInputStateNr funktsioon (indeks: täisarv ; InputNr: integer): boolean ; / / Tagastab staatuse sisend RM [index] ja kandenumber InputNr
RMGetInputState funktsioon (indeks: täisarv ; InputName: string): boolean ; / / Tagastab staatuse sisend RM [index] ja kirje nime InputName
RMGetTempNr funktsioon (indeks: täisarv ; InputNr: integer): topelt ; / / Tagastab RM temperatuur [index] ja kandenumber InputNr
RMGetTemp funktsioon (indeks: täisarv ; InputName: string): topelt ; / / Tagastab RM temperatuur [index] ja kirje nime InputName
RMGetInvPercent funktsioon (indeks: täisarv ; InputName: string): topelt ; / / Tagastab näitajaid protsentides vastupidises 100 % – x RM [index] ja kirje nime InputName (seoses toitepinge regulaator)
RMGetInvPercentNr funktsioon (indeks: täisarv ; InputNr: integer): topelt ; / / Tagastab näitajaid protsentides vastupidises 100 % – x RM [index] ja kandenumber InputNr (seoses toitepinge regulaator)
RMGetPercent funktsioon (indeks: täisarv ; InputName: string): topelt ; / / Tagastab näitajaid protsentides RM [index] ja kirje nime InputName (seoses toitepinge regulaator)
RMGetPercentNr funktsioon (indeks: täisarv ; InputNr: integer): topelt ; / / Tagastab näitajaid protsentides vastupidises 100 % – x RM [index] ja kirje nime InputNr (seoses toitepinge regulaator)
RMGetDeviceOutputState funktsioon (Devname: string ; OutputName: string): boolean ; / / Tagastab väljundi olekut juht kutsus Devname ja hõikas OutputName
RMGetDeviceInputState funktsioon (Devname: string ; InputName: string): boolean ; / / Tagastab staatuse juht sisend nime ja nime kande Devname InputName
HMGetTemp funktsioon (InputName: string): topelt ; / / Return temperatuuri mõõtmise sisend kutsus HeatManagera InputName
HMGetTempNr funktsioon (InputNr: integer): topelt ; / / Return temperatuuri mõõtmise sisend number HeatManagera InputNr (1 . . 16)
chk_int funktsioon (st: string): integer ; / / Safe teisendada stringi täisarvuks
menetluse update_status ; / / Olekut uuendada kõiki juhte tabelis (tuleb käivitada perioodiliselt)
menetluse Test_save ; / / Katsemenetlus kirjutada tulemused teksti faili lihtne
Vorminda juht ja kõik nimed on tehtud pärast taotluse algas (FormCreate)
menetluse TForm1 . FormCreate (Sender: TObject) ;
algama
tee: = getcurrentdir () ; / / Siia praegune tee programm peab olema kataloog % eHouse_DIR % \ Bin \
tee: = stringreplace (tee , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Siia teele taotluse eHouse – seab rakenduse tee eHouse
loadnames_rm ; / / Load kontroller nimed ehouse1 – saadetised autojuhid nimi eHouse 1
init_heat_temperature_names ; / / Load andurid heatManagera nimi
readethernetdevs ; / / Load kontrollerid Ethernet eHouse nimed – lugemise seade nimed eHouse 2
Timer 1 . Intervall: = 3000 ; / / Set tsükliline ülesanne intervall millisekundites – Määrab aeg alustada kontrollides tsükliline andmed
Timer 1 . Lubatud: = true ; / / Start automaatne ülesanded (olekuteabeuuendus – hõlmab regulaarseid andmete kontrollimine
update_status ; / / Loeb esimeses staatus
lõpp ;
Tsüklilised andmete kontrollimine toimub funktsiooni Timer 1 (Timer1Timer) töötab ajavahemik seatud parameeter Timer 1 . Intervall (millisekundites) .
menetluse TForm1 . Timer1Timer (Sender: TObject) ;
var tf: tekstifailide ;
algama
update_status ; / / Muudab staatuse juht
Test_save ; / / Katse kirjutab kõik tulemused tekstifaili
proovida / / luua marker faili kohaldamise KillExec . exe, mis suudab ” vaatama ” taotlus enne krahhi
AssignFile (tf , tee + ‘ palkide \ log – analizer . stp ‘ ) ;
/ / Soovin WDT See rakendus töötab korralikult, kasutades stampfile ” logi \ log – analizer . stp ”
kirjutada (TF) ;
writeln (tf , ‘ 1 ‘ ) ;
lõpuks ;
closefile (TF) ;
lõpp ;
lõpp ;