EHouse շենք ավտոմատացում – Ստեղծել Windows ծրագրային ապահովման եւ մաքսային overlays ալգորիթմեր

Home Automation eHouse PC հետ: Ծրագիրը թույլ է տալիս Ձեզ ստեղծել overlays կառուցելու Ավտոմատացման համակարգեր .
Սա թույլ է տալիս Ձեզ ստեղծել Ձեր սեփական , անհատական ​​ալգորիթմներ , չեն իրականացվում, կամ վարորդը որոնվածը ծրագրային է, որ վերահսկում է սերիալը Home Automation eHouse .
Այս նպատակով , մենք ապահովել օգտվողներին կոդով ծրագրային ապահովման կոդերի (in Delphi 5) . Նրանք կարող են հեղուկ ից տարբերակների Delphi կամ օգտագործվել այլ ծրագրավորման լեզուների .
Մենք գիտակցաբար ընտրեցինք այս հնացած տարբերակներ, քանի որ նրանք արդեն իսկ հասանելի է անվճար սիրողական ծրագիրը .
Նրանք աշխատում են այնպես, ինչպես հուսալի Windows XP , Ծառուղի , Windows 7 եւ 32, եւ 64 բիտ .
Այս ծրագիրը կոչվում eHouseLogAnalizer եւ այդ տեղեկամատյանները Կաղապար դիմումները, որոնք կարդալ տեքստային ֆայլեր են մինչեւ օրս .
Այն կարող է կառավարվում եւ վերահսկվում է դիմումների KillWdt . Փոխանցել .
Առանցքային առանձնահատկություններ է դիմումը:

  • Կարդալով կարգավիճակը եւ անուն բոլոր վարորդների
  • Կարդալ կարգավիճակ եւ մուտքագրեք անունները բոլոր վարորդների
  • Կարդացեք չափագրումներ եւ ընկերակցության բոլոր վարորդներին չափման օժանդակության
  • Բեռնել բոլոր տվյալները, ինչպես նաեւ ներքին ծրագրի հիշատակին , որը կարող է հետագայում մշակվում է հայտի

Դիմումը օգտագործում կարգավիճակ ստեղծված ֆայլերը տեքստային ֆայլերի directory ‘ տեղեկամատյանները / կարգավիճակը / ‘ երկարացնելը ‘ . կարգավիճակ ‘ .
Ֆայլը միայն կարդալու դեպքում փոփոխությունների հայտի eHouse . Փոխանցել .

Տվյալների արարիչներ են բեռնվել է հետեւյալ դեպքերում Records ” ehouse_rm_em_hm ” նշված է array RM .

Ի լրումն , տվյալները պահպանվում են հետեւյալ փոփոխականները HeatManager:
bonfire_status, STRING ; / / Կարգավիճակը խարույկը HeatManager – Status բուխարի ջեռուցման վահանակը eHouse . Փոխանցել
boiler_status, STRING ; / / Կարգավիճակը կաթսա համար Հ.Մ. – կարգավիճակը կաթսայատան ջեռուցման վահանակի eHouse . Փոխանցել
Solar_status, STRING ; / / Կարգավիճակը արեգակնային համակարգում – կարգավիճակը արեւային ջեռուցման վահանակի eHouse . Փոխանցել
recuperator_status, STRING ; / / Կարգավիճակը առողջացում , օդափոխություն , Air ջեռուցում – կարգավիճակը, օդափոխության եւ ջեռուցման ջերմային վերականգնման
HADC: array [0 . . 15] կրկնակի ; / / Ջերմային ջերմաստիճանների մենեջեր – ջերմաստիճանի չափումներ HeatManager
/ / Ջերմային manager ԻՆԴԵՔՍԸ ուղղակի մատչելիության HADC Array – Մշտական ​​ջերմաստիճանի ցուցանիշները ուղղակի ընթերցման ջերմաստիճանի HeatManager
Const HM_GWC = 3 ; / / GWC – Ground ջերմության exchanger
HM_KOM1 = 4 ; / / Բուխարի COAT 1 – Խարույկ ջրով բաճկոն 1
HM_KOMKONV = 5 ; / / Բուխարի konvekcyjne – կոնվենցիայով խարույկ
HM_KOM2 = 6 ; / / Fire 2 ինքնաթիռ – խարույկ ջրով բաճկոն 2 (կրկնօրինակում)
HM_TWEWN = 7 ; / / Ներքին սենյակային ջերմաստիճանում – ներքին սենյակային ջերմաստիճանում
HM_SOLAR = 9 ; / / Collector Sun – Արեգակնային համակարգ
HM_ZEWNPN = 8 ; / / Արտաքին ջերմաստիճանը հյուսիս – Արտաքին ջերմաստիճանը հյուսիս
HM_ZEWNPD = 1 ; / / Արտաքին ջերմաստիճանի հարավ – Արտաքին Հարավային ջերմաստիճանը
HM_KOC = 10 ; / / Ջերմաստիճան կաթսա – կաթսա ջերմաստիճանը
HM_BANDOL = 11 ; / / CO / տաք ջրի բաք ներքեւ – տաք բուֆերային watter bottom
HM_REQIN = 12 ; / / Մաքուր օդի Recuperator ներածում – առողջացում պարզ օդի ներածում
HM_REQOUT = 13 ; / / Արդյունք Recuperator Գլխավոր – heaten առողջացում թարմ օդ հարված սենյակ – ջերմաստիճան
HM_NAG = 14 ; / / Ջերմաստիճան վերահսկվում է երեք – ճանապարհ փական ջեռուցման մարտկոցների եւ – ջերմաստիճանը հետո երեք ուղիներ կտրվածքի համար ջրատաքացուցիչը կամ այլ ջեռուցման համակարգի
HM_REQWYC = 15 ; / / Ինտերնետ Recuperator հյութ կեղտոտ – առողջացում տնից կեղտոտ ծծել temp
HM_BANGORA = 2 ; / / Ջեռուցման / տաք ջրի բաք Գորա – տաք ջուր բուֆեր TOP
HM_BANSRO = 0 ; / / Ջեռուցման / տաք ջրի բաք պահպանման միջոց – MIDDLE տաք ջուր բուֆեր
Var HADCNames: array [0 . . 15] պարանի ; / / The անունները տվիչների (չափիչ օժանդակության) HeatManagera
Հիմնական գործառույթները EhouseLogAnalizer:
կարգը init_heat_temperature_names ; / / Initialize եւ / կամ ջերմաստիճանի տվիչների կարդալ անունները Հ.Մ.
կարգը loadnames_rm ; / / Բեռնել RoomManagerĂłw Անուններ (eHouse 1)
կարգը readethernetdevs ; / / – Ասված է Ethernet Վարորդի անունը (eHouse 2)
get_index_rm ֆունկցիա (փողոց, STRING) թիվ ; / / Վերադարձնում է ցուցանիշը աղյուսակը roomManagerami որոնել ըստ ֆայլի անունը կարգավիճակի
ֆունկցիա GB (chr: char): Բուլյան ; / / Վերադարձնում է բուլյան արժեքը համար read կարգավիճակի
adc_hm կարգը (փող, STRING ; Ինդեքսի թիվ) ; / / Նորադարձների լարային հետ արձանագրված ջերմաստիճանի եւ կարդալ կարգավիճակի HeatManagera
adc_rm կարգը (փող, STRING ; Ինդեքսի թիվ) ; / / Նորադարձների տողը անալոգային չափումների ժամանակ, երբ կարդում ստատուս RoomManagerĂłw
gbs ֆունկցիա (b: Բուլյան): String ; / / Գրելու բուլյան տեքստային ձեւով (0 , 1)
RMDeviceIndexByName ֆունկցիա (փողոց, STRING) թիվ ; / / Վերադարձնում է ցուցանիշը աղյուսակը RoomManagerami որոնել ըստ անվանման վարորդ
RMGetOutputStateNr ֆունկցիա (ինդեքս `ամբողջ թիվ ; OutputNr: թիվ): Բուլյան ; / / Վերադարձ արտադրանքի պետական ​​RM [ինդեքս] եւ արտադրանքի քանակի OutputNR
RMGetOutputState ֆունկցիա (ինդեքս `ամբողջ թիվ ; OutputName, STRING): Բուլյան ; / / Վերադարձնում է թողարկման պետական ​​RM [ինդեքս] եւ կանչեց OutputName
RMGetInputStateNr ֆունկցիա (ինդեքս `ամբողջ թիվ ; InputNr: թիվ): Բուլյան ; / / Վերադարձնում է կարգավիճակի մուտքագրման RM [ինդեքս] իսկ մուտքի InputNr
RMGetInputState ֆունկցիա (ինդեքս `ամբողջ թիվ ; InputName, STRING): Բուլյան ; / / Վերադարձնում է կարգավիճակի մուտքագրման RM [ինդեքս] եւ անունը, մուտքի InputName
RMGetTempNr ֆունկցիա (ինդեքս `ամբողջ թիվ ; InputNr: ամբողջ) երկտեղանոց ; / / Վերադարձնում է RM ջերմաստիճանը [ինդեքս] իսկ մուտքի InputNr
RMGetTemp ֆունկցիա (ինդեքս `ամբողջ թիվ ; InputName, STRING) երկտեղանոց ; / / Վերադարձնում է RM ջերմաստիճանը [ինդեքս] եւ անունը, մուտքի InputName
RMGetInvPercent ֆունկցիա (ինդեքս `ամբողջ թիվ ; InputName, STRING) երկտեղանոց ; / / Վերադարձնում է տոկոսային չափումը հակառակը 100 % – x RM [ինդեքս] եւ անունը մուտքի InputName (առնչությամբ մատակարարման լարման վերահսկիչ)
RMGetInvPercentNr ֆունկցիա (ինդեքս `ամբողջ թիվ ; InputNr: ամբողջ) երկտեղանոց ; / / Վերադարձնում է տոկոսային չափումը հակառակը 100 % – x RM [ինդեքս] իսկ մուտքի InputNr (առնչությամբ մատակարարման լարման վերահսկիչ)
RMGetPercent ֆունկցիա (ինդեքս `ամբողջ թիվ ; InputName, STRING) երկտեղանոց ; / / Վերադարձնում է տոկոսային չափումը RM [index] եւ անունը մուտքի InputName (առնչությամբ մատակարարման լարման վերահսկիչ)
RMGetPercentNr ֆունկցիա (ինդեքս `ամբողջ թիվ ; InputNr: ամբողջ) երկտեղանոց ; / / Վերադարձնում է տոկոսային չափումը հակառակը 100 % – x RM [ինդեքս] եւ անունը մուտքի InputNr (առնչությամբ մատակարարման լարման վերահսկիչ)
RMGetDeviceOutputState ֆունկցիա (Devname, STRING ; OutputName, STRING): Բուլյան ; / / Վերադարձնում է պետության թողարկում վարորդի կոչված Devname եւ կոչ է արել դուրս OutputName
RMGetDeviceInputState ֆունկցիա (Devname, STRING ; InputName, STRING): Բուլյան ; / / Եկամուտները կարգավիճակի Վարորդի մուտքի անունը եւ անունը մուտքի Devname InputName
HMGetTemp ֆունկցիա (InputName, STRING) երկտեղանոց ; / / Return of the ջերմաստիճանի չափման համար մուտքային կոչված HeatManagera InputName
HMGetTempNr ֆունկցիա (InputNr: ամբողջ) երկտեղանոց ; / / Return of the ջերմաստիճանի չափման մուտքագրման համարը (1 HeatManagera InputNr . . 16)
chk_int ֆունկցիա (փ, STRING) թիվ ; / / Անվտանգ է փոխարկել մի տողը, որպեսզի ամբողջ թիվ
կարգը update_status ; / / Update կարգավիճակ բոլոր վարորդների աղյուսակում (պետք է պարբերաբար)
կարգը Test_save ; / / Test կարգը գրել արդյունքների տեքստային ֆայլի համար դյուրին
Initialize վարորդին եւ բոլոր անունները, որոնք պատրաստվում են եւս մեկ անգամ դիմում է սկսվել (FormCreate)
կարգը TForm1 . FormCreate (Sender: TObject) ;
սկսել
Path: getcurrentdir = () ; / / Get ներկայիս ուղին ծրագրի պետք է գրացուցակում % eHouse_DIR % \ ԲԵՆ \
Path: = stringreplace (ճանապարհ , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get ճանապարհը eHouse դիմումը – սահմանում է հայտի eHouse ուղին
loadnames_rm ; / / Բեռնել controller անունները ehouse1 – բեռներ վարորդների Անունը eHouse 1
init_heat_temperature_names ; / / Load սենսորների heatManagera անունը
readethernetdevs ; / / Load վերահսկողները Ethernet eHouse անունները – ընթերցանության սարքի անունները eHouse 2
timer1 . Ինտերվալ: = 3000 ; / / Set ցիկլային խնդիրը ընդմիջում է milliseconds – Սահմանում է ժամանակը սկսելու ստուգման տվյալների պարբերական
timer1 . Միացված: = ճիշտ ; / / Start ավտոմատ առաջադրանքներ (Կարգավիճակի թարմացում – ներառում է կանոնավոր ստուգումը տվյալները
update_status ; / / – Ասվում է առաջին կարգավիճակ
վերջ ;
Ցիկլային ստուգում տվյալների կատարվում է գործում Timer1 (Timer1Timer) վարում է ընդմիջումից ժամանակ սահմանված պարամետր Timer1 . Ինտերվալ (in milliseconds) .
կարգը TForm1 . Timer1Timer (Sender: TObject) ;
var TF: textfile ;
սկսել
update_status ; / / Նորադարձների կարգավիճակ վարորդի
Test_save ; / / Test-ը գրում է, որ բոլոր արդյունքները տեքստային ֆայլը
Փորձում / / ստեղծել Մարկեր ֆայլի կիրառման KillExec . Փոխանցել որոնք կարող են ” դիտել ” հայտի մինչեւ վթարի
AssignFile (TF , ճանապարհը + ‘ տեղեկամատյանները \ Մուտք – analizer . STP ‘ ) ;
/ / Ծանուցել WDT Այդ դիմումը Աշխատանքային ճիշտ օգտագործելով stampfile ” մուտք \ Մուտք – analizer . STP ”
վերաշարադրել (TF) ;
writeln (TF , ‘ 1 ‘ ) ;
վերջապես ;
closefile (TF) ;
վերջ ;
վերջ ;