Jengo Automation eHouse – Kujenga overlays programu za Windows na algorithms desturi

Home Automation eHouse na programu PC inaruhusu kujenga overlays kwa ajili ya kujenga mfumo automatisering .
Hii inaruhusu wewe kuunda yako mwenyewe , mtu binafsi algorithms , si kutekelezwa katika firmware au dereva programu kwamba udhibiti Serial Home Automation eHouse .
Hadi mwisho huu , sisi kutoa watumiaji na codes chanzo programu (katika Delphi 5) . Wanaweza kuwa compiled na matoleo mapya ya Delphi au kutumika kwa lugha nyingine programu .
Sisi uangalifu alichagua versions hii ya kizamani kwani tayari inapatikana kwa bure kwa ajili ya mpango Amateur .
Wao kazi tu kama reliably juu ya Windows XP , Vista , Windows 7 wote 32 na 64 kidogo .
Programu hii inaitwa eHouseLogAnalizer na maombi haya magogo template kwamba kusoma Nakala files hadi tarehe .
Ni inaweza kusimamiwa na kufuatiliwa na KillWdt maombi . exe .
Vipengele muhimu ya maombi:

  • Kusoma nje hadhi majina na ya madereva wote
  • Soma hadhi na kuingia majina ya madereva wote
  • Soma vipimo na majina ya madereva wote kupima pembejeo
  • Mzigo data zote kwa kumbukumbu za ndani ya mpango , ambayo inaweza kuwa zaidi kusindika na maombi

maombi anatumia hali ya files umba Nakala files katika saraka ‘ magogo / hadhi / ‘ ugani ‘ . hadhi ‘ .
faili ni kusoma tu katika tukio la mabadiliko katika eHouse maombi . exe .

Controllers data ni kubeba katika Kumbukumbu zifuatazo matukio ” ehouse_rm_em_hm ” waliotajwa katika safu RM .

Aidha , data ni agizo HeatManager vigezo zifuatazo:
bonfire_status: string ; / / Hali ya bonfire kwa HeatManager – Hali fireplace inapokanzwa jopo eHouse . exe
boiler_status: string ; / / Hali ya boiler kwa HM – Hali ya eHouse boiler inapokanzwa jopo . exe
Solar_status: string ; / / Hali ya mfumo wa jua – Hali ya nishati ya jua inapokanzwa eHouse jopo . exe
recuperator_status: string ; / / Hali ya recuperation , uingizaji hewa , hewa inapokanzwa – Hali ya joto uingizaji hewa na joto ahueni
HADC: array [0 . . 15] ya mara mbili ; / / Joto Joto meneja – joto vipimo HeatManager
/ / Joto meneja bahati kwa ajili ya kupata moja kwa moja ya safu HADC – Mara kwa mara joto fahirisi kwa ajili ya kusoma moja kwa moja ya HeatManager joto
Const HM_GWC = 3 ; / / GWC – Ground joto Exchanger
HM_KOM1 = 4 ; / / Mekoni Coat 1 – Bonfire maji Jacket 1
HM_KOMKONV = 5 ; / / Mekoni konvekcyjne – convection bonfire
HM_KOM2 = 6 ; / / Moto ndege 2 – bonfire maji Jacket 2 (Backup)
HM_TWEWN = 7 ; / / Ndani ya chumba cha joto – ndani ya chumba cha joto
HM_SOLAR = 9 ; / / Mkusanyaji jua – mfumo wa jua
HM_ZEWNPN = 8 ; / / Nje joto kaskazini – nje joto kaskazini
HM_ZEWNPD = 1 ; / / Nje joto ya kusini – nje joto kusini
HM_KOC = 10 ; / / Joto boiler – boiler joto
HM_BANDOL = 11 ; / / CO / maji ya moto tank chini – moto watter chini buffer
HM_REQIN = 12 ; / / Clean hewa recuperator pembejeo – recuperation wazi hewa pembejeo
HM_REQOUT = 13 ; / / Output recuperator nyumbani – heaten recuperation safi pigo hewa kwa chumba – joto
HM_NAG = 14 ; / / Joto kudhibitiwa tatu – njia valve kwa inapokanzwa na kwa radiators – joto baada cutoff njia tatu kwa maji heater au mfumo mwingine inapokanzwa
HM_REQWYC = 15 ; / / Home recuperator dondoo chafu – recuperation kutoka nyumbani chafu kutolea nje temp
HM_BANGORA = 2 ; / / Kukanza / moto maji tank gora – maji ya moto buffer TOP
HM_BANSRO = 0 ; / / Kukanza / moto maji kuhifadhi tank njia ya – MIDDLE maji ya moto buffer
var HADCNames: array [0 . . 15] cha kamba ; / / Majina ya sensorer (kupima pembejeo) HeatManagera
Basic kazi EhouseLogAnalizer:
utaratibu init_heat_temperature_names ; / / Initialize na / au joto sensorer kusoma majina ya HM
utaratibu loadnames_rm ; / / Load RoomManagerĂłw majina (eHouse 1)
utaratibu readethernetdevs ; / / Ukisoma majina dereva Ethernet (eHouse 2)
get_index_rm kazi (str: string): integer ; / / Returns index ya meza na roomManagerami utafutaji na faili hadhi jina
kazi gb (CHR: Char): bulin ; / / Returns thamani ya bulin kwa hali ya kusoma
adc_hm utaratibu (str: string ; index: integer) ; / / Waongofu string na joto kumbukumbu ya kusoma hali HeatManagera
adc_rm utaratibu (str: string ; index: integer) ; / / Waongofu kamba ya vipimo Analog wakati kusoma RoomManagerĂłw hadhi
GBS kazi (b: bulin): Kamba ; / / Andika bulin katika fomu asilia (0 , 1)
RMDeviceIndexByName kazi (str: string): integer ; / / Returns index ya meza na RoomManagerami tafuta na dereva jina
RMGetOutputStateNr kazi (index: integer ; OutputNr: integer): bulin ; / / Rudi hali pato RM [index] na idadi pato OutputNR
RMGetOutputState kazi (index: integer ; OutputName: string): bulin ; / / Returns hali pato RM [index] na kuitwa nje OutputName
RMGetInputStateNr kazi (index: integer ; InputNr: integer): bulin ; / / Returns ya sasa ya RM pembejeo [index] na idadi ya InputNr kuingia
RMGetInputState kazi (index: integer ; InputName: string): bulin ; / / Returns ya sasa ya RM pembejeo [index] na jina la InputName kuingia
RMGetTempNr kazi (index: integer ; InputNr: integer): mara mbili ; / / Returns joto RM [index] na idadi ya InputNr kuingia
RMGetTemp kazi (index: integer ; InputName: string): mara mbili ; / / Returns joto RM [index] na jina la InputName kuingia
RMGetInvPercent kazi (index: integer ; InputName: string): mara mbili ; / / Returns kipimo asilimia ya reverse 100 % – x RM [index] na jina la InputName kuingia (katika uhusiano na mtawala voltage ugavi)
RMGetInvPercentNr kazi (index: integer ; InputNr: integer): mara mbili ; / / Returns kipimo asilimia ya reverse 100 % – x RM [index] na idadi ya InputNr kuingia (katika uhusiano na mtawala voltage ugavi)
RMGetPercent kazi (index: integer ; InputName: string): mara mbili ; / / Returns kipimo asilimia ya [index] RM na jina la InputName kuingia (katika uhusiano na mtawala voltage ugavi)
RMGetPercentNr kazi (index: integer ; InputNr: integer): mara mbili ; / / Returns kipimo asilimia ya reverse 100 % – x RM [index] na jina la InputNr kuingia (katika uhusiano na mtawala voltage ugavi)
RMGetDeviceOutputState kazi (Devname: string ; OutputName: string): bulin ; / / Returns hali ya dereva pato kuitwa Devname na kuitwa nje OutputName
RMGetDeviceInputState kazi (Devname: string ; InputName: string): bulin ; / / Returns ya sasa ya pembejeo dereva jina na jina la InputName Devname kuingia
HMGetTemp kazi (InputName: string): mara mbili ; / / Kurudi joto ya pembejeo kupimia kuitwa kwa ajili ya HeatManagera InputName
HMGetTempNr kazi (InputNr: integer): mara mbili ; / / Kurudi joto ya idadi ya kupimia ya pembejeo kwa HeatManagera InputNr (1 . . 16)
chk_int kazi (st: string): integer ; / / Salama kubadili kamba integer
utaratibu update_status ; / / Mwisho hali ya madereva wote katika meza (lazima kukimbia mara kwa mara)
utaratibu Test_save ; / / Test utaratibu kuandika matokeo ya faili Nakala rahisi kwa
Initialize dereva na majina yote yaliyotolewa mara moja maombi ni kuanza (FormCreate)
utaratibu TForm1 . FormCreate (Sender: TObject) ;
kuanza
Njia: = getcurrentdir () ; / / Pata njia ya sasa ya mpango lazima katika saraka % eHouse_DIR % \ BIN \
Njia: = stringreplace (njia , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Pata njia ya eHouse maombi – anaweka njia ya maombi eHouse
loadnames_rm ; / / Load mtawala majina ehouse1 – mizigo jina madereva eHouse 1
init_heat_temperature_names ; / / Sensorer heatManagera Load jina
readethernetdevs ; / / Load controllers ethernet eHouse majina – kusoma majina kifaa eHouse 2
timer1 . Interval: = 3000 ; / / Set cyclic kazi Interval katika milliseconds – Sets wakati wa kuanza kuangalia data cyclic
timer1 . Kuwezeshwa: = kweli ; / / Anza kazi moja kwa moja (kwa sasa update – ni pamoja na kuangalia mara kwa mara ya data
update_status ; / / Ukisoma hadhi kwanza
mwisho ;
Cyclic kuangalia data ni kufanyika kwa kazi Timer1 (Timer1Timer) anaendesha katika kipindi cha muda kuweka katika parameter Timer1 . Interval (katika milliseconds) .
utaratibu TForm1 . Timer1Timer (Sender: TObject) ;
var tf: textfile ;
kuanza
update_status ; / / Waongofu hali ya dereva
Test_save ; / / Kwa mtihani anaandika matokeo yote kwa faili Nakala
kujaribu / / kuunda faili marker kwa maombi KillExec . exe ambayo inaweza ” kuangalia ” maombi kabla ya ajali
AssignFile (tf , njia + ‘ magogo \ logi – analizer . STP ‘ ) ;
/ / Mjulishe WDT Hiyo maombi kufanya kazi kwa usahihi kwa kutumia stampfile ” logi \ logi – analizer . STP ”
rewrite (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
hatimaye ;
closefile (tf) ;
mwisho ;
mwisho ;