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 ; / / Контроль температури три – Зворотний клапан для опалення та для радіаторів – Температура після трьох способів обрізання для водонагрівача або іншої системи опалення
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 (тс) ;
кінець ;
кінець ;