EHouse аўтаматызацыі будынкаў – Стварэнне праграмнага забеспячэння для Windows накладак і карыстацкіх алгарытмаў

Home Automation EHouse з ПК праграмнае забеспячэнне дазваляе ствараць накладкі для пабудовы сістэмы аўтаматызацыі .
Гэта дазволіць вам стварыць свой уласны , асобныя алгарытмы , не рэалізаваныя ў прашыўцы або драйвер, які кіруе паслядоўным Home Automation EHouse .
Для гэтага , мы прадстаўляем карыстальнікам зыходныя коды праграмнага забеспячэння (у Delphi 5) . Яны могуць быць скампіляваны з новымі версіямі Delphi або выкарыстоўваць для іншых моў праграмавання .
Мы свядома абралі гэты архаічны версіі, яны ўжо даступныя для бясплатнага аматарскага праграмы .
Яны працуюць так жа надзейна, на Windows XP , Перспектыва , Windows 7 32 і 64 біта .
Гэтая праграма называецца eHouseLogAnalizer і гэтыя часопісы шаблонаў прыкладанняў, чытаць тэкставыя файлы да даты .
Ён можа кіравацца і кантралявацца KillWdt прыкладанняў . ехе .
Асноўныя магчымасці праграмы:

  • Счытванне статусу і назвы ўсіх вадзіцеляў
  • Чытайце статусу і ўвядзіце імёны ўсіх вадзіцеляў
  • Чытайце вымярэнняў і імёны ўсіх драйвераў вымяральных уваходаў
  • Загрузіце ўсе дадзеныя ва ўнутранай памяці праграмы , якія могуць у далейшым апрацоўвацца прыкладаннем

Дадатак выкарыстоўвае статус створаныя файлы ў тэкставыя файлы ў каталогу ‘ Часопісы / Статус / ‘ пашырэнне ‘ . статус ‘ .
Файл толькі для чытання, у выпадку змяненняў у дадатак EHouse . ехе .

Дадзеныя кантролеры будуць загружаныя ў наступных выпадках запісаў ” ehouse_rm_em_hm ” , Пералічаных ў масіве RM .

У дадатак , Дадзеныя захоўваюцца HeatManager наступныя зменныя:
bonfire_status: радок ; / / Статус вогнішча HeatManager – Статус камінам ацяпленне панэлі EHouse . ехе
boiler_status: радок ; / / Стан катла для HM – Стан панэлі EHouse ацяпляльны кацёл . ехе
Solar_status: радок ; / / Стан сонечнай сістэмы – Стан сонечнай EHouse панэльнага ацяплення . ехе
recuperator_status: радок ; / / Стан рэкуперацыі , вентыляцыя , падагрэў паветра – Статус вентыляцыі ацяплення і рэкуперацыі цяпла
HADC: масіў [0 . . 15] двайны ; / / Цяпло Тэмпература мэнэджара – HeatManager вымярэння тэмпературы
/ / Цяпло менеджэр індэксаў для прамога доступу да масіву HADC – Сталыя паказчыкі тэмпературы для прамога счытвання тэмпературы HeatManager
CONST HM_GWC = 3 ; / / GWC – Цеплаабменнік цяпло зямлі
HM_KOM1 = 4 ; / / Каміны паліто 1 – Вогнішча вадзяной кашуляй 1
HM_KOMKONV = 5 ; / / Каміны konvekcyjne – канвекцыі вогнішча
HM_KOM2 = 6 ; / / Пажарная плоскасці 2 – Вогнішча вадзяной кашуляй 2 (рэзервовае капіяванне)
HM_TWEWN = 7 ; / / Унутраная тэмпература ў памяшканні – ўнутраная тэмпература ў памяшканні
HM_SOLAR = 9 ; / / Калекцыянер нд – сонечная сістэма
HM_ZEWNPN = 8 ; / / Знешняя тэмпература поўнач – знешняя тэмпература поўнач
HM_ZEWNPD = 1 ; / / Знешняя тэмпература на поўдні – знешняя тэмпература поўдзень
HM_KOC = 10 ; / / Тэмпература катла – тэмпература катла
HM_BANDOL = 11 ; / / CO / гарачай вады ўніз – гарачая буфера ніжняй Watter
HM_REQIN = 12 ; / / Чыстае паветра рекуператор ўваход – аднаўленне ясна паветра на ўваходзе
HM_REQOUT = 13 ; / / Выснова рекуператор дома – heaten аднаўлення свежага паветра ў пакой ўдар – тэмпература
HM_NAG = 14 ; / / Кантроль тэмпературы 3 – Зваротны клапан для ацяплення і для радыятараў – Тэмпература пасля трох спосабаў абразання для воданагравальніка ці іншай сістэмы ацяплення
HM_REQWYC = 15 ; / / Галоўная рекуператор экстракт брудныя – аднаўленне з дома брудныя выхлапной тэмпературы
HM_BANGORA = 2 ; / / Ацяпленне / гарачай вады гара – ТОП гарачай вады буфера
HM_BANSRO = 0 ; / / Ацяпленне / бак для гарачай вады сродкамі – Блізкім гарачай вады буфера
VAR HADCNames: масіў [0 . . 15] радок ; / / Імёны датчыкаў (вымяральных уваходаў) HeatManagera
Асноўныя EhouseLogAnalizer функцыі:
Працэдура init_heat_temperature_names ; / / Ініцыялізаваць і / або датчыкі тэмпературы чытаць імёны HM
Працэдура loadnames_rm ; / / Загрузіць RoomManagerĂłw імёны (EHouse 1)
Працэдура readethernetdevs ; / / Чытае Ethernet імёны драйвераў (EHouse 2)
get_index_rm функцыі (вул.: String): Integer ; / / Вяртае індэкс табліцы з roomManagerami пошук па назве файла статус
Функцыя Гб (CHR: Char): Boolean ; / / Вяртае лагічнае значэнне для счытвання стану
adc_hm працэдуры (вул.: радок ; Index: Integer) ; / / Пераўтворыць радок з запісам тэмпературы для чытання статусу HeatManagera
adc_rm працэдуры (вул.: радок ; Index: Integer) ; / / Пераўтворыць радок аналагавых вымярэнняў пры чытанні статус RoomManagerĂłw
GBS функцыі (б: Boolean): String ; / / Запісаць лагічнае ў выглядзе тэксту (0 , 1)
RMDeviceIndexByName функцыі (вул.: String): Integer ; / / Вяртае індэкс табліцы з RoomManagerami пошуку па імя драйвера
RMGetOutputStateNr функцыі (Index: Integer ; OutputNr: Integer): Boolean ; / / Вяртаем RM стан выхаду [індэкс] і OutputNR нумар выхаду
RMGetOutputState функцыі (Index: Integer ; OutputName: String): Boolean ; / / Вяртае RM стан выхаду [індэкс] і паклікаў OutputName
RMGetInputStateNr функцыі (Index: Integer ; InputNr: Integer): Boolean ; / / Вяртае стан ўваходу RM [індэкс] і нумар запісу InputNr
RMGetInputState функцыі (Index: Integer ; InputName: String): Boolean ; / / Вяртае стан ўваходу RM [індэкс], а імя запісу InputName
RMGetTempNr функцыі (Index: Integer ; InputNr: Integer): двухмесны ; / / Вяртае RM тэмпература [індэкс] і нумар запісу InputNr
RMGetTemp функцыі (Index: Integer ; InputName: String): двухспальны ; / / Вяртае RM тэмпература [індэкс], а імя запісу InputName
RMGetInvPercent функцыі (Index: Integer ; InputName: String): двухспальны ; / / Вяртае адсотак вымярэнняў зваротных 100 % – х RM [індэкс], а імя запісу InputName (у залежнасці ад напружання харчавання кантролера)
RMGetInvPercentNr функцыі (Index: Integer ; InputNr: Integer): двухмесны ; / / Вяртае адсотак вымярэнняў зваротных 100 % – х RM [індэкс] і нумар запісу InputNr (у залежнасці ад напружання харчавання кантролера)
RMGetPercent функцыі (Index: Integer ; InputName: String): двухспальны ; / / Вяртае адсотак вымярэнняў RM [індэкс], а імя запісу InputName (у залежнасці ад напружання харчавання кантролера)
RMGetPercentNr функцыі (Index: Integer ; InputNr: Integer): двухмесны ; / / Вяртае адсотак вымярэнняў зваротных 100 % – х RM [індэкс], а імя запісу InputNr (у залежнасці ад напружання харчавання кантролера)
RMGetDeviceOutputState функцыі (Devname: радок ; OutputName: String): Boolean ; / / Вяртае стан выхаду драйвера называюцца Devname і паклікаў OutputName
RMGetDeviceInputState функцыі (Devname: радок ; InputName: String): Boolean ; / / Вяртае стан вадзіцеля ўвесці імя і імя InputName Devname запіс
HMGetTemp функцыі (InputName: String): двухспальны ; / / Вяртанне тэмпературы вымяральны ўваход заклікаў HeatManagera InputName
HMGetTempNr функцыі (InputNr: Integer): двухмесны ; / / Вяртанне тэмпературы вымяральнага уводу нумара для HeatManagera InputNr (1 . . 16)
chk_int функцыі (ST: String): Integer ; / / Safe для пераўтварэння радкі ў цэлае
Працэдура update_status ; / / Абнаўленне статусу ўсіх кіроўцаў у табліцы (павінен быць запушчаны перыядычна)
Працэдура Test_save ; / / Працэдура выпрабаванняў для запісу вынікаў у тэкставы файл для зручнага
Ініцыялізацыя кіроўца і ўсе імёны вырабляюцца адзін раз запуску прыкладання (FormCreate)
Працэдура TForm1 . FormCreate (Sender: TObject) ;
пачынаць
Шлях: = GetCurrentDir () ; / / Атрымаць бягучы шлях да праграмы, павінны быць у каталог % eHouse_DIR % \ BIN \
Шлях: = StringReplace (шлях , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Атрымаць шлях прыкладання EHouse – ўсталёўвае EHouse шляху прыкладання
loadnames_rm ; / / Загрузіць кантролер імёны ehouse1 – грузы драйверы імя EHouse 1
init_heat_temperature_names ; / / Датчыкі нагрузкі heatManagera імя
readethernetdevs ; / / Загрузіць кантролеры Ethernet імёны EHouse – прылада чытання імёнаў EHouse 2
timer1 . Інтэрвал: = 3000 ; / / Устанавіць інтэрвал цыклічныя задачы ў мілісекундах – Усталёўвае час да пачатку праверкі цыклічных дадзеных
timer1 . Уключана: = True ; / / Запуск аўтаматычных задач (абнаўленне статусу – ўключае ў сябе рэгулярныя праверкі дадзеных
update_status ; / / Чытаем першы статус
канец ;
Цыклічная праверка дадзеных выконваецца з дапамогай функцыі Timer1 (Timer1Timer) працуе ў інтэрвале часу, зададзенага у параметры Timer1 . Інтэрвал (у мілісекундах) .
Працэдура TForm1 . Timer1Timer (Sender: TObject) ;
VAR TF: тэкставы ;
пачынаць
update_status ; / / Пераўтворыць стан кіроўцы
Test_save ; / / Для тэсту запісвае ўсе вынікі ў тэкставы файл
паспрабуйце / / стварыць маркер файл для прымянення KillExec . EXE, які можа ” глядзець ” заяўкі да аварыі
AssignFile (тс , Шлях + ‘ Часопісы \ Часопіс – аналізатарам . STP ‘ ) ;
/ / Апавяшчэнне WDT Гэта прыкладанне працуе правільна выкарыстаннем stampfile ” увайсці \ часопіс – аналізатарам . STP ”
Перапішам (тс) ;
WriteLn (тс , ‘ 1 ‘ ) ;
у рэшце рэшт ;
CloseFile (тс) ;
канец ;
канец ;