Разшифроване на двоичен статут на контролери за автоматизация на дома – свободно изходния код

Home Automation , Building Management EHouse – Разшифроване на статут на микропроцесорни контролери
Home Automation получена от контролния панел, свързан към LAN или WiFi , чрез UDP (User Datagram Protocol) .
Стандартната рамка прием статус в двоичен вид , с Контролери бе обсъден в статията ” Intelligent Building EHouse пакет контролер статус ” .
Разшифроване на рамката трябва да анализира всяка част от данните от опаковката .
В допълнение , всеки вид на контролера:

  • RoomManager
  • ExternalManager
  • HeatManager
  • InputExtender
  • CommManager
  • LevelManager
  • EthernetRoomManager

Разлика в размер на цифровите входове , измервателни входове , цифрови изходи , къси светлини , контролни функции и алгоритми, които са резултат , че данните в стандартната рамка мутира в зависимост от вида на контролера .
Това води до необходимостта за декодиране на малко по малко за всеки вид на контролера, независимо .
В случай на изпълнението на всички видове на микропроцесорни контролери за създаване и тестване на рамката декодиране алгоритъм може да отнеме до 1 месец .
За да се намали това време до минимум , да се улесни готов да представи алгоритъм, заимствани от EHouse . Exe Заявление , автоматично декодира цялата информация от контролера и се зареждат данните в шаблона записи на сензорен панел (таблетки) Windows XP , Перспектива , 7 , 8 .
След автоматично зареждане на данни в EHouse софтуерни библиотеки , с няколко реда код , в рамките на няколко минути можете да създадете свой собствен контрол алгоритми система EHouse .
Binary Frame декодиране на софтуер на стандарта EHouse състояние се реализира в библиотеката с шаблони за панел . Това трябва да се направи двоичен , за директна статут декодиране от Ethernet контролери без EHouse . Exe Заявление надзор .
Разшифроване на целия кадър (микропроцесорни контролери eHouse1 RM , EM , HM) се извършва от функция процедура set_rm (ул.: array_of_char ; TCP_INDEX_INC: цяло число) ;
параметри са функции на състоянието на буфера и отместване (офсет) . Буфер съдържа всички получени данни от състоянието . Offset зависи от типа на предаване (разширен адрес , нормален , и други бъдещи приложения, зависими от комуникационни алгоритми) .
Автоматично попълва състоянието на масива поотделно за всеки контролер и след това директно може да манипулира данни или актуализация на данни автоматично при докосване на екрана панели .
Тази функция се активира в случай процедура да получават данни от UDP компонент гнездо (TNMUDP – бинарни) в onDataReceived събитие .
Рецепцията е, както следва:
процедура TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: целочислени ; FromIP: String ; Пристанище: Integer) ;
VaR C: масив [0 . . 1024] от Чар ;
MyStream: TMemoryStream ;
започвам
ако filesystem_status след това излезте ; / / Ако не файловата система filesystem_status
MyStream: = TMemoryStream . Създаване на ; / / Създаване на поток от данни
двоен . ReadStream (MyStream) ; / / Потока от данни
MyStream . Прочетете (C [0] , NumberBytes) ; / / Зарежда буфер C
set_rm (C , 1) ; / / Преобразува двоични данни и товари регистрите RM [индекс] за ръководителите на EHouse 1
Test_save ; / / Test записва изход към текстов файл за лесна работа
update_panel ; / / Зареждане на данни за контролния панел
край ;
Тя ви позволява автоматично и не – инвазивна събирането на данни през LAN или Wi – Fi с пакета предаване чрез UDP (User Datagram Protocol) .
Какво още не изисква отворена връзка към сървъра само слуша на пристанището предаване ‘ 6789 ‘ неизпълнение или друго .
Грешки връзка , Мрежа , рутери не доведе до временно спиране или неуточнени софтуерни грешки (както е в случая на комуникация с TCP сървъра) , но изчезва просто актуализиране на данните, без да се засяга данни или подходящ сървър приложение UDP клиент .

ВНИМАНИЕ! . Ако се създаде софтуер за управление на Windows за дома EHouse Автоматизация , е необходимо да се прилагат всички алгоритми в едно приложение , който анализира данните и изпълнява всички алгоритми и ги визуализира . Ние наблюдавахме, че понякога две UDP гнездо слушателят не може да съществува на същия компютър .
Най-важните променливи в библиотеката двоичен:
boiler_alarm: Булева = фалшиви ; / / Котел аларма, програмирана температура над
/ / Над – температурата на котела аларма
bonfire_stat: цяло число ; / / Нивото на Bonfire отопление 0 – 7 за двоичен режим – статус в заетостта огън
/ / 0 – огън на разстояние – не загрява
/ / 1 – Огън / гасене => ; ; зелен ниво < ; ; ТЕМП яке (зелен LED мига) – изтича мига зелено
/ / 2 – огън => ; ; зелен ниво> ; ; = Temp яке> ; ; жълто ниво – histeressis (зелен светодиод) – зелен
/ / 3 – огън => ; ; жълто ниво – histeressis> ; ; темп яке> ; ; histeressis ниво + жълт) (зелен + жълт LED) – зелен – жълт
/ / 4 – огън => ; ; жълто ниво + histeressis> ; ; темп яке> ; ; нивото на червените – histeressis (жълт) – жълт
/ / 5 – безусловна => ; ; нивото на червените – histeressis < ; ; темп яке < ; ; histeressis ниво + червено (червено + жълто LED) жълт – червен
/ / 6 – безусловна => ; ; темп яке> ; ; histeressis ниво + червено (червен LED постоянно) – червен
/ / 7 – безусловна => ; ; темп яке> ; ; огън аларма (червен светодиод мига) ALARM – червени мига
bonfire_sensor_error: Булева = фалшиви ; / / Грешка датчици огън на открито, твърде много различни сензори водна риза температура между двама
/ / Грешка камина сензори мантия температурни твърде голяма разлика
recuperator_status: низ ; / / Статус на възстановяване , вентилация , затопляне на въздуха – статут на рекуператор и вентилация
recu_winter: Булева = фалшиви ; / / Рекуператор зимен / летен режим топлообменник активира / дезактивира – рекуператор зима / лято
recu_manual_amalva: Булева = вярно ; / / Рекуператор автоматичен / ръчен режим за Amalva рекуператор (автоматично управлява от вътрешния контролер Amalva , ръководство, за да EHouse HeatManager) / /
рекуператор Amalva ръчно / автоматично
went_cooler: булев = вярно ; / / Вода охладител за включване / изключване за вентилация или охладител в възстановяване на система за възстановяване или GWC ON / OFF
went_gwc: Булева = фалшиви ; / / GHE (приземен топлообменник) Сервомотор за включване / изключване – земята двигател топлообменник за включване / изключване
went_aux_gwc_fan: Булева = фалшиви ; / / Спомагателен GWC вентилатор / вентилатор за включване / изключване за топлообменника на земята топлина – GWC подпомаган от вентилатор
bonfire_dgp: Булева = фалшиви ; / / Bonfire горещ въздух разпределителна система активира / дезактивира – Fan разпределение на горещ въздух от камината DGP
ventilation_on: Булева = фалшиви ; / / Вентилация в момента работи за включване / изключване – вентилация и оползотворяване на отпадна топлина
heater_pump: Булева = вярно ; / / Помпа за нагревател за вентилация за включване / изключване – помпа за отопление и вентилация верига за радиатори
three_ways_cutoff: Integer = 0 ; / / Три начина посока изключване изключване 0 , Увеличаването на ниво 1 , – Намаляване на ниво 1) посоката на въртене електро – пътен вентил
solar_pump: Булева = фалшиви ; / / Соларната помпа за включване / изключване – соларна помпа
boiler_on: Булева = фалшиви ; / / Котел активира / дезактивира – бойлер за включване / изключване
boiler_pump: Булева = фалшиви ; / / Състояние на помпата на котела за включване / изключване – котел помпа за включване / изключване
boiler_fuel_out: Булева = фалшиви ; / / Котел на гориво aproximate (брои часа на отопление) – очакваните недостиг на гориво за котел на твърдо гориво (изчислен въз основа на часовете на работа на котела)
boiler_power_on: Булева = фалшиви ; / / Котел supplay за включване / изключване ; – Котел за включване / изключване
boiler_fuel_supply_override: Булева = фалшиви ; / / Override supplyier котела (контрол от EHouse / вътрешен контролер бойлер) – Майка контролирано EHouse система за подаване на гориво за включване / изключване
bonfire_pump: Булева = фалшиви ; / / Bonfire състоянието на помпата за включване / изключване – пожарна помпа за включване / изключване
recu_speed: Integer = 0 ; / / Рекуператор Speeed 0 . . 3 – рекуператор скорост
recu_temperature: цяло число ; / / Температура на нивото на спасените от незаконен из 0 . . 30C температура рекуператор за amalwa
_recu_mode: низ = ‘ ‘ ; / / Възстановяване режим в текста, тъй като HeatManager контролния панел (EHouse . EXE) – рекуператор режим, тъй като прилагането на контролния панел EHouse HeatMAnagerem . EXE
отиде: низ ; / / Текст вентилация статут Контролен панел HeatManager (EHouse . EXE) – вентилация статута на същите като в HeatManager панел на EHouse . EXE
бойлер , слънчева енергия: низ ; / / Котел , Слънчева състоянието на текста HeatManager като Control Panel (EHouse . EXE) – състоянието на котела и слънчевата контролния панел (HeatManager) EHouse . EXE
коми: низ ; / / Текст огън статут Контролен панел HeatManager (EHouse . EXE) – статут като огън контролния панел прилагане EHouse HeatManager . EXE
Контролни лампи