Tikinti Automation eHouse – Windows proqram bindirmeler və xüsusi alqoritmlər yaradılması

Home Automation PC proqram eHouse siz bina avtomatlaşdırılması sistemi üçün bindirmeler yaratmaq imkan verir .
Bu öz yaratmaq üçün imkan verir , fərdi alqoritmlər , seriya nəzarət edən firmware və ya sürücü proqram həyata deyil Home Automation eHouse .
Bunun üçün , Biz (Delphi 5) proqram mənbə kodları ilə təmin . Onlar Delphi yeni versiyasını tərtib və ya digər proqramlaşdırma dilləri üçün istifadə edilə bilər .
Onlar həvəskar proqram pulsuz artıq mövcuddur Biz şüurlu bu arxaik versiyasını seçdi .
Onlar Windows XP kimi etibarlı iş , Vista , Windows 7 32 və 64 bit, həm də .
Bu proqram eHouseLogAnalizer və tarixi qədər mətn faylları oxumaq bu logs şablon applications adlanır .
Bu applications KillWdt tərəfindən idarə və nəzarət oluna bilər . exe .
Tətbiqi Açar funksiyalar:

  • Bütün sürücülər statusu və adını Oxu
  • Statusu oxuyun və bütün sürücülərin adları daxil
  • Giriş ölçü bütün sürücülər ölçmələr və adlarını oxumaq
  • Daxili proqram yaddaş bütün data bərpa , hansı daha bir ərizə ilə emal edilə bilər

Bu proqram bir kataloq mətn faylları yaradılmış faylları statusu istifadə ‘ logs / status / ‘ artırma ‘ . vəziyyət ‘ .
Fayl yalnız proqram eHouse dəyişikliklər halda oxumaq . exe .

Data kontrollerlər aşağıdakı hallarda Records ilə yüklənir ” ehouse_rm_em_hm ” serialın RM listelenen .

Əlavə , data HeatManager aşağıdakı dəyişənlər saxlanılır:
bonfire_status: string ; HeatManager üçün tonqal haqqında / / Status – Status kamin istilik panel eHouse . exe
boiler_status: string ; HM üçün qazan / / Status – qazan istilik panel eHouse statusu . exe
Solar_status: string ; Günəş sistemi / / Status – günəş istilik panel eHouse statusu . exe
recuperator_status: string ; Recuperation ilə / / Status , ventilyasiya , hava istilik – isitmə, havalandırma və istilik bərpa statusu
HADC: array [0 . . 15] ikiqat haqqında ; / / İstilik temperatur meneceri – temperatur ölçmə HeatManager
HADC serialın birbaşa / / İstilik meneceri göstəriciləri – Temperatur HeatManager birbaşa oxumaq üçün sabit temperatur göstəriciləri
İnşaat HM_GWC = 3 ; / / GWC – Torpaq regenerator
HM_KOM1 = 4 ; / / Şömine Coat 1 – Ates Özüllər 1
HM_KOMKONV = 5 ; / / Şömine konvekcyjne – konveksiya tonqal
HM_KOM2 = 6 ; / / Yanğın təyyarə 2 – ocaq Özüllər 2 (backup)
HM_TWEWN = 7 ; / / Daxili otaq temperaturu – daxili otaq temperaturu
HM_SOLAR = 9 ; / / Collector günəş – günəş sistemi
HM_ZEWNPN = 8 ; / / Xarici temperaturu şimal – xarici temperatur şimal
HM_ZEWNPD = 1 ; Cənub / / Xarici temperatur – xarici temperatur cənub
HM_KOC = 10 ; / / Temperatur qazan – qazan temperatur
HM_BANDOL = 11 ; / / CO / isti su tank aşağı – isti watter alt bufer
HM_REQIN = 12 ; / / Təmiz hava recuperator daxil – recuperation təmiz hava girişi
= 13 HM_REQOUT ; / / Çıxış recuperator ev – oda heaten recuperation təzə zərbə hava – temperatur
= 14 HM_NAG ; / / Temperatur üç nəzarət – istilik və radiatorlar yol valve – su qızdırıcısı və ya digər istilik sistemi üçün üç yol cutoff sonra temperatur
HM_REQWYC = 15 ; / / Ev recuperator çıxarış çirkli – ev çirkli işlənmiş temp dən recuperation
HM_BANGORA = 2 ; / / İsitmə / isti su tank Gora – isti su bufer TOP
HM_BANSRO = 0 ; / / İsitmə / isti su storage tank vasitəsi – MIDDLE isti su bufer
var HADCNames: array [0 . . 15] simli ; / / Sensorlar adları (giriş qiymətləndirilməsi) HeatManagera
Əsas funksiyaları EhouseLogAnalizer:
proseduru init_heat_temperature_names ; / / Başlamaq və / və ya temperatur sensorlar HM adlarını oxumaq
proseduru loadnames_rm ; / / Load RoomManagerĂłw adları (eHouse 1)
proseduru readethernetdevs ; / / Ethernet sürücü adları (eHouse 2) oxuyur
get_index_rm funksiyası (küç string): tam ; / / Returns fayl adı statusu roomManagerami axtarış masa indeksi
funksiyası gb (CHR: char): boolean ; / / Oxunmuş statusu üçün boolean dəyər qaytarır
adc_hm proseduru (küç string ; indeksi: tam) ; / / Bu oxu statusu HeatManagera qeyd temperatur ilə string çevirir
adc_rm proseduru (küç string ; indeksi: tam) ; Statusu RoomManagerĂłw oxuyarkən / / analog ölçü string çevirir
GBS funksiyası (b: boolean): String ; / / Mətn şəklində (0 boolean yaz , 1)
RMDeviceIndexByName funksiyası (küç string): tam ; / / Returns adı sürücü tərəfindən RoomManagerami axtarış masa indeksi
RMGetOutputStateNr funksiyası (indeksi: tam ; OutputNr: tam): boolean ; / / Çıxış dövlət RM qayıt [index] və çıxış sayı OutputNR
RMGetOutputState funksiyası (indeksi: tam ; OutputName: string): boolean ; / / Returns çıxdı dövlət RM [index] və OutputName səsləndi
RMGetInputStateNr funksiyası (indeksi: tam ; InputNr: tam): boolean ; / / Returns giriş RM statusu [index] və giriş InputNr sayı
RMGetInputState funksiyası (indeksi: tam ; InputName: string): boolean ; / / Returns giriş RM statusu [index] və giriş InputName adı
RMGetTempNr funksiyası (indeksi: tam ; InputNr: tam): ikiqat ; / / RM temperatur qaytarır [index] və giriş InputNr sayı
RMGetTemp funksiyası (indeksi: tam ; InputName: string): ikiqat ; / / RM temperatur qaytarır [index] və giriş InputName adı
RMGetInvPercent funksiyası (indeksi: tam ; InputName: string): ikiqat ; / / Returns əks 100 faizi ölçü % – x RM [index] və giriş InputName adı (təchizatı gərginlik nəzarətçi bağlı)
RMGetInvPercentNr funksiyası (indeksi: tam ; InputNr: tam): ikiqat ; / / Returns əks 100 faizi ölçü % – x RM [index] və giriş InputNr sayı (təchizatı gərginlik nəzarətçi bağlı)
RMGetPercent funksiyası (indeksi: tam ; InputName: string): ikiqat ; / / Returns RM [index] faiz ölçülməsi və giriş InputName adı (təchizatı gərginlik nəzarətçi bağlı)
RMGetPercentNr funksiyası (indeksi: tam ; InputNr: tam): ikiqat ; / / Returns əks 100 faizi ölçü % – x RM [index] və giriş InputNr adı (təchizatı gərginlik nəzarətçi bağlı)
RMGetDeviceOutputState funksiyası (Devname: string ; OutputName: string): boolean ; / / Returns Devname adlı çıxış sürücü dövlət və OutputName səsləndi
RMGetDeviceInputState funksiyası (Devname: string ; InputName: string): boolean ; / / Returns sürücü daxil statusu adı və giriş Devname InputName adı
HMGetTemp funksiyası (InputName: string): ikiqat ; HeatManagera InputName çağırıb ölçü giriş / / Arxiv temperatur
HMGetTempNr funksiyası (InputNr: tam): ikiqat ; HeatManagera InputNr üçün ölçü giriş sayı (1 / / Arxiv temperatur . . 16)
chk_int funksiyası (st: string): tam ; / / Safe bir tam bir string çevirmək
proseduru update_status ; / / Cədvəldə bütün sürücülər statusu Update (vaxtaşırı run olmalıdır)
proseduru Test_save ; / / Test proseduru asan bir mətn faylı nəticələri yazmaq
Sürücü başlamaq və proqram açılmış bir dəfə bütün adları (FormCreate) edilir
proseduru TForm1 . FormCreate (Sender: TObject) ;
başlamaq
yol: = getcurrentdir () ; / / Proqram cari yolu kataloqu olmalıdır alın % eHouse_DIR % \ Bin \
yol: = stringreplace (yol , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Proqram eHouse yol alın – tətbiqi yolu eHouse edir
loadnames_rm ; / / Load nəzarətçi adları ehouse1 – yük sürücülər adı eHouse 1
init_heat_temperature_names ; / / Load sensorlar heatManagera adı
readethernetdevs ; / / Load kontrollerlər ethernet eHouse adlar – cihaz adları eHouse 2 oxu
timer1 . Interval: = 3000 ; Ms ilə / / Set tsiklik tapşırıq interval – Tsiklik data yoxlanılması başlamaq üçün vaxt təyin edir
timer1 . Enabled: = true ; / / (Status yeniləmə avtomatik vəzifələri Start – məlumatların müntəzəm yoxlanılması daxildir
update_status ; / / Ilk statusu oxuyur
son ;
Tsiklik data yoxlanılması funksiyası Timer1 edilir (Timer1Timer) parametr Timer1 müəyyən vaxt intervalı çalışır . Interval (ms olaraq) .
proseduru TForm1 . Timer1Timer (Sender: TObject) ;
var tf: textfile ;
başlamaq
update_status ; / / Sürücü statusu çevirir
Test_save ; / Test üçün / a mətn faylı bütün nəticələri yazır
/ cəhd / tətbiqi üçün marker fayl KillExec yaratmaq . exe biləcək ” saat ” crash əvvəl tətbiq
AssignFile (tf , yol + ‘ logs \ log – analizer . stp ‘ ) ;
/ / Proqram düzgün stampfile istifadə çalışan WDT bildir ” \ log daxil – analizer . stp ”
yenidən yazmaq (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
nəhayət ;
closefile (tf) ;
son ;
son ;