Pastato automatizavimo eHouse – Langų programinė įranga, perdangas ir nestandartinių algoritmų kūrimas

Home Automation eHouse su PC programinė įranga leidžia jums sukurti perdangas pastato automatizavimo sistemos .
Tai leidžia jums sukurti savo , individualūs algoritmai , nėra įgyvendinama firmware ar vairuotojas programinę įrangą, kuri kontroliuoja serijos Home Automation eHouse .
Šiuo tikslu , mes suteikiame vartotojams programinės įrangos išeities kodus (Delphi 5) . Jie gali būti rengiami su naujesnės versijos Delphi arba naudojamas kitas programavimo kalbas .
Mes sąmoningai pasirinko šį archajiškų versijas, kai jos jau yra prieinamos nemokamai mėgėjų programos .
Jie dirba lygiai taip pat patikimai "Windows XP" , Vaizdas , "Windows 7" abi 32 ir 64 bitų .
Ši programinė įranga vadinama eHouseLogAnalizer ir šie žurnalai šablonų prašymai, kad skaityti tekstinius failus iki datos .
Jis gali būti valdomas ir stebimas programų KillWdt . Exe .
Taikymo pagrindiniai bruožai:

  • Skaitymas iš visų vairuotojų statusą ir pavadinimus
  • Skaityti statusą ir įveskite visų vairuotojų pavardes
  • Skaityti matavimų ir vardus visų vairuotojų, matavimo įėjimai
  • Įkelti visus duomenis į vidaus programų atmintis , , kuris gali būti toliau tvarkomi, dėl kurio pateikiama paraiška,

Sukurtus failus statusą programa naudoja į tekstinius failus į katalogą ‘ logs / statusas / ‘ pratęsimas ‘ . padėtis ‘ .
Failas yra skaityti tik tuo atveju, kai pasikeičia paraiškos eHouse . Exe .

Duomenų valdytojai yra pakraunami į šiais atvejais Records ” ehouse_rm_em_hm ” nurodytas RM masyvo .

Papildomai , duomenys saugomi HeatManager šie kintamieji:
bonfire_status: string ; / / Statusas laužo HeatManager – Statusas židinys šildymo skydelis eHouse . Exe
boiler_status: string ; / / Statusas katilo HM – katilo šildymo skydelis eHouse statusas . Exe
Solar_status: string ; / / Statusas Saulės sistemos – saulės šildymo skydelis eHouse statusas . Exe
recuperator_status: string ; / / Statusas rekuperacija , vėdinimas , oro šildymo – šildymo, vėdinimo ir rekuperacijos statusas
HADC: masyvas [0 . . 15] dvigubai ; / / Šilumos temperatūra vadybininkas – temperatūros matavimai HeatManager
/ / Šilumos vadybininkas tiesioginės prieigos HADC masyvo indeksai – Pastovios temperatūros indeksai tiesioginio skaitymo temperatūros HeatManager
CONST HM_GWC = 3 ; / / GWC – Žemės šilumokaitis
HM_KOM1 = 4 ; / / Židinys Kailis 1 – Laužo vandens striukė 1
HM_KOMKONV = 5 ; / / Židinys konvekcyjne – konvekcija laužo
HM_KOM2 = 6 ; / / Priešgaisrinės PLANE 2 – laužo vandens striukė 2 (backup)
HM_TWEWN = 7 ; / / Vidaus kambario temperatūros – vidaus kambario temperatūra
HM_SOLAR = 9 ; / / Kolekcinės Skm – saulės sistema
HM_ZEWNPN = 8 ; / / Išorės temperatūros šiaurės – išorės temperatūra šiaurės
HM_ZEWNPD = 1 ; / / Išorės temperatūros pietuose – išorės temperatūra pietus
HM_KOC = 10 ; / / Temperatūros katilas – katilo temperatūra
HM_BANDOL = 11 ; / / CO / karštas vandens rezervuaras žemyn – karšto watter iš apačios buferis
HM_REQIN = 12 ; / / Švarus oras rekuperatoriumi įvesties – rekuperavimo švarus oras input
HM_REQOUT = 13 ; / / Išvesties rekuperatorius namų – heaten rekuperacijos švieži smūgis oro į kambarį – temperatūra
HM_NAG = 14 ; / / Temperatūra kontroliuojamas tris – trieigis vožtuvas šildymo ir radiatorių – temperatūra po trimis būdais vandens šildytuvas nukirpimas ar kita šildymo sistema
HM_REQWYC = 15 ; / / Pradžia rekuperatorius ekstraktas purvinas – rekuperavimo iš namų purvinas išmetamųjų dujų temperatūra
HM_BANGORA = 2 ; / / Šildymo / karšto vandens bakas Gora – karšto vandens buferis TOP
HM_BANSRO = 0 ; / / Šildymo / karšto vandens rezervuaras priemonė – ARTIMIEJI karšto vandens buferis
var HADCNames: masyvas [0 . . 15] eilutės ; / / Jutiklių vardai (matavimo įėjimai) HeatManagera
Pagrindines funkcijas EhouseLogAnalizer:
procedūra init_heat_temperature_names ; / / Inicjalizacja ir / arba temperatūros jutikliai skaityti HM vardus
procedūra loadnames_rm ; / / Įkelti RoomManagerĂłw pavadinimai (eHouse 1)
procedūra readethernetdevs ; / / Skaito Ethernet vairuotojo vardus (eHouse 2)
get_index_rm funkcija (g): String: integer ; / / Grąžina lentelės puslapis su roomManagerami paiešką pagal failo pavadinimą statuso
funkcija GB (CHR: char): boolean ; / / Grąžina boolean skaityti statuso vertę
adc_hm procedūra (g: string ; indeksas: sveikasis skaičius) ; / / Konvertuoja eilutę su įrašytais temperatūra skaityti būsenos HeatManagera
adc_rm procedūra (g: string ; indeksas: sveikasis skaičius) ; / / Konvertuoja analoginius matavimų eilutę skaitant statusas RoomManagerĂłw
GBS funkcija (b: boolean): String ; / / Rašyti Būlio teksto forma (0 , 1)
RMDeviceIndexByName funkcija (g): String: integer ; / / Grąžina lentelės puslapis su RoomManagerami paieška pagal pavadinimą tvarkyklės
RMGetOutputStateNr funkcija (indeksas: sveikasis skaičius ; OutputNr: integer): boolean ; / / Return išėjimo būsena RM [index] ir išėjimo numeris OutputNR
RMGetOutputState funkcija (indeksas: sveikasis skaičius ; OutputName: string): boolean ; / / Grąžina išėjimo būsena RM [index] ir sušuko OutputName
RMGetInputStateNr funkcija (indeksas: sveikasis skaičius ; InputNr: integer): boolean ; / / Grąžina įvesties RM statusas [index] ir įvažiavimo InputNr
RMGetInputState funkcija (indeksas: sveikasis skaičius ; InputName: string): boolean ; / / Grąžina įvesties RM statusas [index] ir iš įvežimo InputName pavadinimas
RMGetTempNr funkcija (indeksas: sveikasis skaičius ; InputNr: integer): dviguba ; / / Grąžina RM temperatūrą [index] ir įvažiavimo InputNr
RMGetTemp funkcija (indeksas: sveikasis skaičius ; InputName: string): dviguba ; / / Grąžina RM temperatūrą [index] ir iš įvežimo InputName pavadinimas
RMGetInvPercent funkcija (indeksas: sveikasis skaičius ; InputName: string): dviguba ; / / Grąžina atbuline eiga 100 procentinis matavimas % – x RM [index] ir iš įvežimo InputName pavadinimas (atsižvelgiant į maitinimo įtampos vadovo)
RMGetInvPercentNr funkcija (indeksas: sveikasis skaičius ; InputNr: integer): dviguba ; / / Grąžina atbuline eiga 100 procentinis matavimas % – x RM [index] ir įvažiavimo InputNr skaičius (atsižvelgiant į maitinimo įtampos vadovo)
RMGetPercent funkcija (indeksas: sveikasis skaičius ; InputName: string): dviguba ; / / Grąžina RM [index] procentinis matavimas ir į įvežimo InputName pavadinimas (atsižvelgiant į maitinimo įtampos vadovo)
RMGetPercentNr funkcija (indeksas: sveikasis skaičius ; InputNr: integer): dviguba ; / / Grąžina atbuline eiga 100 procentinis matavimas % – x RM [index] ir iš įvežimo InputNr pavadinimas (atsižvelgiant į maitinimo įtampos vadovo)
RMGetDeviceOutputState funkcija (Devname: string ; OutputName: string): boolean ; / / Grąžinimas tvarkyklės išvesties vadinamas Devname valstybės ir sušuko OutputName
RMGetDeviceInputState funkcija (Devname: string ; InputName: string): boolean ; / / Grąžina mašinistas atlieka įvestį statusas, pavadinimas ir vardas įvežimo Devname InputName
HMGetTemp funkcija (InputName: string): dviguba ; / / Grąžinamos temperatūros matavimo įėjimo paragino HeatManagera InputName
HMGetTempNr funkcija (InputNr: integer): dviguba ; / / Grąžinamos temperatūros matavimo įvesties numerį HeatManagera InputNr (1 . . 16)
chk_int funkcija (g): String: integer ; / / Seifas konvertuoti eilutę iki sveikojo skaičiaus
procedūra update_status ; / / Atnaujinti visų lentelėje vairuotojų statusą (turi būti vykdomas periodiškai)
procedūra Test_save ; / / Bandymo procedūra rašyti rezultatus į tekstinį failą lengvai
Inicijuoti vairuotoją ir visi vardai kai programa paleidžiama (FormCreate)
procedūra TForm1 . FormCreate (Sender: TObject) ;
pradėti
kelias: = getcurrentdir () ; / / Gauti dabartinis maršrutas programos turi būti kataloge % eHouse_DIR % \ Bin \
kelias: = stringreplace (kelias , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Gauti kelią paraiškos eHouse – nustato programos kelio eHouse
loadnames_rm ; / / Įkelti valdiklių pavadini ehouse1 – apkrovos vairuotojų pavadinimas eHouse 1
init_heat_temperature_names ; / / Įkelti jutikliai heatManagera vardas
readethernetdevs ; / / Įkelti valdikliai Ethernet eHouse pavadinimai – skaityti Vardai įrenginių eHouse 2
Timer1 . Intervalas: = 3000 ; / / Nustatykite ciklinis užduotis intervalas milisekundėmis – Nustato laiką, pradėti tikrinti ciklinius duomenis
Timer1 . Įjungtas: = true ; / / Pradėti automatinį užduotis (būsenos atnaujinimas – reguliariai tikrinti duomenis
update_status ; / / Skaityta pirmajam statusui
pabaiga ;
Ciklinis duomenys nebus tikrinamas padaryti Timer1 funkcijos (Timer1Timer) veikia parametro Timer1 nustatytą laiko intervale . Intervalas (milisekundėmis) .
procedūra TForm1 . Timer1Timer (Sender: TObject) ;
var tf: textfile ;
pradėti
update_status ; / / Konvertuoja vairuotojo statusą
Test_save ; / / Bandymo rašo visus rezultatus į tekstinį failą
pabandyti / / sukurti žymeklį failą taikymo KillExec . Exe, kurie gali ” žiūrėti ” prieš avariją taikymas
AssignFile (TC , kelias + ‘ rąstai \ log – Analizatorius . stp ‘ ) ;
/ / Praneškite WDT Šis prašymas darbo teisingai naudojant stampfile ” log \ log – Analizatorius . stp ”
perrašyti (TC) ;
writeln (TC , ‘ 1 ‘ ) ;
pagaliau ;
closefile (TC) ;
pabaiga ;
pabaiga ;