Building Automation eHouse – Luominen Windows-ohjelmisto peitot ja mukautettuja algoritmit

Home Automation eHouse PC-ohjelmiston avulla voit luoda peittokuvat rakennuksen automaatiojärjestelmä .
Näin voit luoda omia , yksittäisiä algoritmeja , ei toteutettu firmware tai ohjainohjelmisto joka ohjaa sarja Home Automation eHouse .
Tätä varten , tarjoamme käyttäjille ohjelmiston lähdekoodit (Delphi 5) . Niitä voidaan laatia uudempia versioita Delphi tai käyttää muita ohjelmointikieliä .
Olemme tietoisesti valinnut tämän vanhanaikaisen versioita, koska ne ovat jo saatavilla ilmaiseksi amatööri ohjelma .
Ne toimivat yhtä luotettavasti Windows XP , Näköala , Windows 7 sekä 32 ja 64 bittinen .
Tämä ohjelmisto on nimeltään eHouseLogAnalizer ja nämä lokit malli sovellusten lukea tekstitiedostoja tasalla .
Sitä voidaan hallita ja valvoa sovellusten KillWdt . exe .
Tärkeimmät ominaisuudet hakemuksen:

  • Lukemalla asema ja nimet kaikki ajurit
  • Lue tila ja kirjoita nimet kaikkien kuljettajien
  • Lue mittaukset ja nimet kaikki ajurit mittaustulot
  • Ladata kaikki tiedot sisäiseen ohjelmamuisti , , joka voidaan käsitellä edelleen hakemuksen

Sovellus käyttää asemaa luotu tiedostoja tekstitiedostoja hakemistoon ‘ lokit / tila / ‘ laajentaminen ‘ . tila ‘ .
Tiedosto on lukea vain siinä tapauksessa, että muutokset hakemuksen eHouse . exe .

Rekisterinpitäjät ladataan seuraavissa tapauksissa Records ” ehouse_rm_em_hm ” lueteltu joukko RM .

Lisäksi , tiedot pidetään HeatManager seuraavat muuttujat:
bonfire_status: string ; / / Tila kokko varten HeatManager – Status takka lämmityspaneeli eHouse . exe
boiler_status: string ; / / Tila kattilan HM – tila kattilan lämmityspaneelin eHouse . exe
Solar_status: string ; / / Tila aurinkokunnan – tila aurinkolämpö paneelin eHouse . exe
recuperator_status: string ; / / Tila toipuminen , ilmanvaihto , ilmalämmitys – tilan lämmitys ilmanvaihto ja lämmön talteenotto
HADC: array [0 . . 15] Kaksinkertaisen ; / / Lämpötiloilla johtaja – lämpötilan mittauksiin HeatManager
/ / Lämpö johtaja hakemistot suoraan pääsy HADC array – Vakiolämpötila indeksit suoraan käsittelyyn lämpötilan HeatManager
VAKIO HM_GWC = 3 ; / / GWC – Maa lämmönvaihdin
HM_KOM1 = 4 ; / / Takka Coat 1 – Bonfire vesivaippa 1
HM_KOMKONV = 5 ; / / Takka konvekcyjne – konvektio kokko
HM_KOM2 = 6 ; / / Tuli kulkee 2 – kokko vedellä takki 2 (varmuuskopio)
HM_TWEWN = 7 ; / / Sisäinen huoneenlämmössä – sisäinen huoneenlämmössä
HM_SOLAR = 9 ; / / Collector aurinko – aurinkokunta
HM_ZEWNPN = 8 ; / / Ulkoinen lämpötila pohjoiseen – ulkolämpötila North
HM_ZEWNPD = 1 ; / / Ulkoinen lämpötila etelässä – ulkolämpötila etelään
HM_KOC = 10 ; / / Lämpötila kattila – kattilan lämpötila
HM_BANDOL = 11 ; / / CO / lämminvesivaraaja alas – hot watter pohja puskuri
HM_REQIN = 12 ; / / Puhdas ilma rekuperaattori tulo – toipuminen kirkkaan ilman tulo
HM_REQOUT = 13 ; / / Output rekuperaattori home – heaten toipuminen raikas puhaltaa ilmaa huoneeseen – lämpötila
HM_NAG = 14 ; / / Lämpötilaohjattu kolme – tieventtiili lämmitykseen ja pattereiden – lämpötila kolmen tapaa katkaisu veden lämmitin tai muu lämmitysjärjestelmä
HM_REQWYC = 15 ; / / Home rekuperaattori uutetta likainen – toipuminen kotoa likainen pakokaasun lämpötila
HM_BANGORA = 2 ; / / Lämmitys / lämminvesivaraaja gora – kuumaa vettä puskuri TOP
HM_BANSRO = 0 ; / / Lämmitys / kuuman veden säiliö keino – LÄHI kuumaa vettä puskuri
var HADCNames: array [0 . . 15] merkkijono ; / / Nimet anturien (mittaustulot) HeatManagera
Perustoiminnot EhouseLogAnalizer:
menettely init_heat_temperature_names ; / / Alusta ja / tai lämpötila-antureita lukea nimet HM
menettely loadnames_rm ; / / Load RoomManagerĂłw nimet (eHouse 1)
menettely readethernetdevs ; / / Lukee Ethernet driver nimet (eHouse 2)
get_index_rm toiminto (str: string): integer ; / / Palauttaa indeksi pöydän roomManagerami haku tiedostonimen tila
toiminto gb (CHR: char): boolean ; / / Palauttaa boolean arvo lukutilasta
adc_hm menettely (str: string ; index: integer) ; / / Muuntaa merkkijonon kirjattu lämpötila Lukutilan HeatManagera
adc_rm menettely (str: string ; index: integer) ; / / Muuntaa merkkijonon analogisen mittausten lukiessa tila RoomManagerĂłw
GBS-toiminto (b: boolean): String ; / / Kirjoita boolean tekstimuodossa (0 , 1)
RMDeviceIndexByName toiminto (str: string): integer ; / / Palauttaa indeksi pöydän RoomManagerami haku nimen kuljettaja
RMGetOutputStateNr toiminto (index: integer ; OutputNr: kokonaisluku): boolean ; / / Palauta lähdön tila RM [index] ja lähdön numero OutputNR
RMGetOutputState toiminto (index: integer ; OutputName: string): boolean ; / / Palauttaa lähdön tila RM [index] ja huusi OutputName
RMGetInputStateNr toiminto (index: integer ; InputNr: kokonaisluku): boolean ; / / Palauttaa tilan tulo RM [index] ja lukumäärä merkinnän InputNr
RMGetInputState toiminto (index: integer ; InputName: string): boolean ; / / Palauttaa tilan tulo RM [index] ja nimi merkinnän InputName
RMGetTempNr toiminto (index: integer ; InputNr: kokonaisluku): double ; / / Palauttaa RM lämpötila [index] ja lukumäärä merkinnän InputNr
RMGetTemp toiminto (index: integer ; InputName: string): double ; / / Palauttaa RM lämpötila [index] ja nimi merkinnän InputName
RMGetInvPercent toiminto (index: integer ; InputName: string): double ; / / Palauttaa prosenttiosuus mittaus taakse 100 % – x RM [index] ja nimi merkinnän InputName (suhteessa syöttöjännite ohjain)
RMGetInvPercentNr toiminto (index: integer ; InputNr: kokonaisluku): double ; / / Palauttaa prosenttiosuus mittaus taakse 100 % – x RM [indeksi] ja määrä merkinnän InputNr (suhteessa syöttöjännitteen ohjain)
RMGetPercent toiminto (index: integer ; InputName: string): double ; / / Palauttaa prosenttiosuus mittaus RM [indeksi] ja nimi merkinnän InputName (suhteessa syöttöjännitteen ohjain)
RMGetPercentNr toiminto (index: integer ; InputNr: kokonaisluku): double ; / / Palauttaa prosenttiosuus mittaus taakse 100 % – x RM [index] ja nimi merkinnän InputNr (suhteessa syöttöjännite ohjain)
RMGetDeviceOutputState toiminto (Devname: merkkijono ; OutputName: string): boolean ; / / Palauttaa tilan lähtöohjaimen nimeltään Devname ja huusi OutputName
RMGetDeviceInputState toiminto (Devname: merkkijono ; InputName: string): boolean ; / / Palauttaa tilan kuljettaja syöttää nimeä ja merkinnän Devname InputName
HMGetTemp toiminto (InputName: string): double ; / / Return lämpötilan mittaus tulo vaati HeatManagera InputName
HMGetTempNr toiminto (InputNr: integer): double ; / / Return lämpötilan mittaus tulon numero HeatManagera InputNr (1 . . 16)
chk_int toiminto (s: string): integer ; / / Turvallinen muuntaa merkkijonon kokonaisluvun
menettely update_status ; / / Päivitä tila kaikkien kuljettajien taulukossa (täytyy ajaa säännöllisesti)
menettely Test_save ; / / Testausmenettely kirjoittaa tulokset tekstitiedostoon helposti
Alusta kuljettaja ja kaikki nimet tehdään kerran käynnistetään (FormCreate)
menettely TForm1 . FormCreate (Sender: TObject) ;
alkaa
path: = getcurrentdir () ; / / Get virtatien ohjelman on oltava hakemistossa % eHouse_DIR % \ BIN \
path: = stringreplace (polku , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get polku sovellus eHouse – asettaa sovelluksen polku eHouse
loadnames_rm ; / / Load ohjain nimet ehouse1 – lataa ajurit nimi eHouse 1
init_heat_temperature_names ; / / Load anturit heatManagera nimi
readethernetdevs ; / / Load ohjaimet ethernet eHouse nimiä – lukulaite nimiä eHouse 2
Timer1 . Aikaväli: = 3000 ; / / Set syklinen tehtävän aika millisekunneissa – Asettaa aika alkaa tarkistaa syklisessä tiedon
Timer1 . Enabled: = true ; / / Start automaattinen tehtävät (tilan päivitys – kuuluu säännöllinen tietojen tarkastamista
update_status ; / / Lukee ensimmäinen tila
pää ;
Sykliset tietojen tarkistus tehdään toiminto Timer1 (Timer1Timer) kulkee aikaväli asetettu parametrin Timer1 . Interval (millisekunteina) .
menettely TForm1 . Timer1Timer (Sender: TObject) ;
var tf: tekstitiedosto ;
alkaa
update_status ; / / Muuntaa tilan kuljettajan
Test_save ; / / Testiaineiden kirjoittaa kaikki tulokset tekstitiedostoon
kokeile / / luo merkki tiedoston sovelluksen KillExec . exe joka voi ” katsella ” hakemus ennen Crash
AssignFile (tf , polku + ‘ Logs \ log – analizer . STP ‘ ) ;
/ / Ilmoita WDT Tämä sovellus toimii oikein käyttämällä stampfile ” log \ log – analizer . STP ”
kirjoittaa (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
vihdoin ;
closefile (tf) ;
pää ;
pää ;