Дэкадаванне двайковых статус кантролераў хатняй аўтаматызацыі – бясплатны зыходны код

Home Automation , Кіравання будынкам EHouse – Расшыфроўка статусу мікрапрацэсарныя кантролеры
Home Automation атрыманыя панэлі кіравання падлучаны да лакальнай сеткі або Wi-Fi , праз UDP (User Datagram Protocol) .
Стандартнае стан прыёму кадра ў двайковай форме , з Кантролеры абмяркоўвалася ў артыкуле ” Інтэлектуальнае будынак EHouse стану кантролера пакет ” .
Расшыфроўка кадраў неабходна прааналізаваць кожны біт дадзеных з пакета .
У дадатак , кожны тып кантролера:

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

Ёсць розніца ў колькасці лічбавых уваходаў , вымяральных уваходаў , лічбавыя выхады , диммеры , Кантрольныя функцыі і алгарытмы, якія з'яўляюцца вынікам , што дадзеныя ў стандартным мутаваць кадраў у залежнасці ад тыпу кантролера .
Гэта прыводзіць да неабходнасці для дэкадавання біт за бітам для кожнага тыпу кантролера самастойна .
У выпадку рэалізацыі ўсіх тыпаў мікрапрацэсарных кантролераў для стварэння і тэставанні алгарытм дэкадавання кадра можа заняць да 1 месяца .
Каб звесці да мінімуму гэты раз да мінімуму , для палягчэння гатовая прадставіць алгарытм запазычаныя з EHouse . EXE-прыкладанні , аўтаматычна дэкадаваць ўсю інфармацыю ад кантролера і загрузкі дадзеных у шаблон запісу сэнсарнай панэлі (для таблетак) для Windows XP , Перспектыва , 7 , 8 .
Пасля аўтаматычнай загрузкі дадзеных у бібліятэках EHouse праграмнага забеспячэння , з дапамогай некалькіх радкоў кода , Вы можаце ствараць свае ўласныя алгарытмы кіравання EHouse сістэмы на працягу некалькіх хвілін .
Двайковыя кадраў праграмнае забеспячэнне для дэкадавання стандартнага стану EHouse ажыццяўляецца ў бібліятэку шаблонаў на панэлі . Гэта павінна быць зроблена двайковай , для прамога статусу дэкадавання Ethernet кантролераў без EHouse . Нагляд Exe прыкладанняў .
Расшыфроўка ўвесь кадр (для мікрапрацэсарных кантролераў eHouse1 RM , EM , HM) ажыццяўляе функцыі set_rm працэдуры (вул.: array_of_char ; TCP_INDEX_INC: Integer) ;
Параметры функцыі буфера статусу і зрух (зрушэнне) . Буфер змяшчае ўсе атрыманыя дадзеныя ад статусу . Зрушэнне залежыць ад тыпу скрынкі перадач (пашыраны адрас , нармальны , і іншых будучых прыкладанняў, якія базуюцца на сувязі алгарытмы) .
Яна аўтаматычна запаўняе масіў статусу для кожнага кантролера індывідуальна і можа наўпрост кіраваць дадзенымі або абнаўленне дадзеных аўтаматычна на панэлі сэнсарнага экрана .
Гэтая функцыя актывуецца ў выпадку працэдура атрымання дадзеных з кампанентаў UDP сокет (TNMUDP – называюць двайковым) у выпадку onDataReceived .
Прыём заключаецца ў наступным:
Працэдура TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: Integer ; 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 ; / / Праверка запісу выходных дадзеных у тэкставы файл для зручнасці эксплуатацыі
update_panel ; / / Загрузіць дадзеныя для панэлі кіравання
канец ;
Яна дазваляе аўтаматычна і не – інвазівных збору дадзеных праз лакальную сетку ці Wi – Fi з дапамогай пакета вяшчання праз UDP (User Datagram Protocol) .
Што больш не патрабуецца злучэнне з серверам толькі слухае на порце трансляцыі ‘ 6789 ‘ змаўчанні ці іншых .
Памылкі спасылку , Сетка , Маршрутызатары не прыводзяць да прыпынення або нявызначанага памылкі праграмнага забеспячэння (як у выпадку зносін з TCP-сервер) , але знікае толькі абнавіць дадзеныя, не закранаючы дадзеныя або падыходны сервер UDP кліенцкіх прыкладанняў .

УВАГА! . Калі вы ствараеце кантролю праграмнага забеспячэння на Windows, для аўтаматызацыі Галоўная EHouse , неабходна для рэалізацыі ўсіх алгарытмаў ў адным дадатку , які аналізуе дадзеныя і выконвае ўсе алгарытмы і візуалізаваць іх . Мы назіралі часам, што 2 UDP сокет не можа існаваць на адным кампутары .
Найбольш важныя зменныя ў бібліятэцы двайковым выглядзе:
boiler_alarm: Boolean = False ; / / Катлы трывога запраграмаванай тэмпературы вышэй
/ / За – Тэмпература катла сігналізацыі
bonfire_stat: цэлае ; / / Bonfire ацяпленне узроўні 0 – 7 для двайковым рэжыме – пажар занятасці
/ / 0 – выпаліць – не награваецца
/ / 1 – Пажар на / пажаратушэння => ; ; зялёны ўзровень < ; ; Тэмпература куртка (зялёны святлодыёд міргае) – мінае міргае зялёным
/ / 2 – агонь => ; ; зялёны ўзровень> ; ; = Temp курткі> ; ; жоўтыя узроўні – histeressis (зялёны святлодыёд) – зялёны
/ / 3 – агонь => ; ; жоўтыя узроўні – histeressis> ; ; Тэмпература курткі> ; ; histeressis ўзроўні + жоўты) (зялёны + жоўты святлодыёды) – зялёны – жоўты
/ / 4 – агонь => ; ; жоўтыя ўзроўні + histeressis> ; ; Тэмпература курткі> ; ; чырвоны ўзровень – histeressis (жоўты) – жоўты
/ / 5 – безумоўнай => ; ; чырвоны ўзровень – histeressis < ; ; Тэмпература курткі < ; ; histeressis ўзроўні + чырвоны (чырвоны + жоўты святлодыёды) жоўты – чырвоны
/ / 6 – безумоўнай => ; ; Тэмпература курткі> ; ; histeressis ўзроўні + чырвоны (чырвоны святлодыёд пастаяннай) – чырвоны
/ / 7 – безумоўнай => ; ; Тэмпература курткі> ; ; Вогнішча трывогі (чырвоны святлодыёд міргае) ALARM – міргае чырвоны
bonfire_sensor_error: Boolean = False ; / / Памылка датчыка вогнішча занадта шмат розных вадзяной кашуляй датчыкі тэмпературы паміж двума
/ / Памылка каміннай паліцы датчыкаў тэмпературы занадта вялікая розніца
recuperator_status: радок ; / / Стан рэкуперацыі , вентыляцыя , падагрэў паветра – рекуператор і вентыляцыі статус
recu_winter: Boolean = False ; / / Рекуператор зіма / лета цеплаабменнік рэжыме ўключана / выключана – рекуператор зіма / лета
recu_manual_amalva: Boolean = True ; / / Рекуператор аўтаматычны / ручной рэжым для AMALVA рекуператор (аўтаматычна кіраваныя унутраным кантролерам AMALVA , Кіраўніцтва да EHouse HeatManager) / /
рекуператор AMALVA ручной / аўтаматычны
went_cooler: Boolean = True ; / / Кулер для вады / выключэння для вентыляцыі або халадней у аднаўленне сістэмы рэкуперацыі або GWC ON / OFF
went_gwc: Boolean = False ; / / GHE (цеплаабменнік цяпло зямлі) Сервопривод вкл / выкл – зямлі цеплаабменніка рухавіка вкл / выкл
went_aux_gwc_fan: Boolean = False ; / / Дапаможныя GWC вентылятар / вентылятар ўключэння / выключэння для наземнага цеплаабменніка – GWC вентылятарам
bonfire_dgp: Boolean = False ; / / Bonfire гарачай сістэмы размеркавання паветра ўключана / выключана – Вентылятар размеркавання гарачага паветра з каміна DGP
ventilation_on: Boolean = False ; / / Вентыляцыя ў цяперашні час працуе вкл / выкл – ўключаюць вентыляцыі і рэкуперацыі цяпла
heater_pump: Boolean = True ; / / Помпа для нагревателя для вентыляцыі ўключэння / выключэння – помпа сістэмы ацяплення і вентыляцыі схема для радыятараў
three_ways_cutoff: цэлае = 0 ; / / Тры спосабу абразання кірунку 0 выкл , Павелічэнне ўзроўня 1 , – Зніжэнне ўзроўню 1) кірунак кручэння электра – хадавога клапана
solar_pump: Boolean = False ; / / Сонечны помпа вкл / выкл – сонечны помпа
boiler_on: Boolean = False ; / / Катлы уключаны / выключаны – катла вкл / выкл
boiler_pump: Boolean = False ; / / Стан катла помпа вкл / выкл – Помпа катла вкл / выкл
boiler_fuel_out: Boolean = False ; / / Катлы з прыблізнага паліва (кол-ць гадзін ацяпленне) – прыблізна недахопу паліва для катла на цвёрдым паліве (разлічваецца на аснове гадзін працы катла)
boiler_power_on: Boolean = False ; / / Катлы supplay ўключэння / выключэння ; – Магутнасць катла вкл / выкл
boiler_fuel_supply_override: Boolean = False ; / / Override supplyier кацельнага паліва (кантроль EHouse / ўнутраны кантролер катла) – Бацька кантраляванай падачы паліва Сістэма EHouse ўключэння / выключэння
bonfire_pump: Boolean = False ; / / Bonfire стан помпы вкл / выкл – пажарны насос вкл / выкл
recu_speed: цэлае = 0 ; / / Рекуператор Speeed 0 . . 3 – рекуператор хуткасці
recu_temperature: цэлае ; / / Узровень тэмпературы RECU 0 . . 30С тэмпература рекуператор для amalwa
_recu_mode: String = ‘ ‘ ; / / Аздараўленчыя рэжым у тэксце, як гэта HEatManager панэлі кіравання (EHouse . EXE) – рекуператор рэжым кантролю прыкладанняў EHouse панэлі HeatMAnagerem . ехе
пайшлі: радок ; / / Тэкст вентыляцыі статус HeatManager панэлі кіравання (EHouse . EXE) – вентыляцыі статус такі ж, як у HeatManager панэлі EHouse . ехе
кацёл , Сонечнай: радок ; / / Катлы , Сонечная статус HeatManager тэкст як панэль кіравання (EHouse . EXE) – Стан катлоў і сонечных панэляў кіравання (HeatManager) EHouse . ехе
Комі: радок ; / / Тэкст вогнішча статус HeatManager панэлі кіравання (EHouse . EXE) – статус, як і панэль кіравання агнём EHouse прыкладання heatmanager . ехе
Кіраваць асвятленнем