Dekodeerimine binaarne staatuse koduautomaatika kontrollerid – vaba lähtekoodi

Home Automation , Hoone juhtimine eHouse – Dekodeerimine staatus mikroprotsessor kontrollerid
Home Automation laekunud juhtpaneel ühendatud LAN ja WiFi , UDP (User Datagram Protocol) .
Standard raami vastuvõtt staatuse kahendvormis , koos Kontrollerid arutati artikkel ” Intelligent Building eHouse kontroller staatus pakett ” .
Dekodeerimine raam peab analüüsima iga natuke andmeid pakk .
Veel , igat tüüpi kontroller:

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

Kas vahe summa digitaalsisendit , mõõtmise sisendite , digitaalväljundite , himmentimet , järelevalve funktsioone ja algoritmid, mis tulenevad , et andmed standard raami muteeruvad sõltuvalt kontrolleri .
Selle tulemuseks on vaja dekodeerimine vähehaaval iga tüüpi kontroller iseseisvalt .
Juhul rakendamise kõigi mikroprotsessor kontrollerid luua ja katsetada raami dekodeerimine algoritm võib võtta kuni 1 kuu .
Et vähendada seda aega vähemalt , hõlbustada valmis esitama algoritm laenatud eHouse . exe rakenduse , automaatselt dekodeerida kõik info kontroller ja koormuse andmed malli arvestust puutepaneel (tablettide) Windows XP , Vista , 7 , 8 .
Pärast automaatselt laadimise andmed eHouse tarkvara raamatukogud , koos paar rida koodi , saate luua oma kontrolli algoritmid eHouse süsteem mõne minuti pärast .
Binary Frame dekodeerimine tarkvara eHouse staatus standardit rakendatakse malli raamatukogu paneel . Tuleb teha binaarne , otsese dekodeerimine staatuse Ethernet kontrollerid ilma eHouse . Exe rakenduse järelevalve .
Dekodeerimine kogu raamiga (mikroprotsessor kontrollerid eHouse1 RM , EM , HM) viib läbi menetlust set_rm funktsioon (str: array_of_char ; TCP_INDEX_INC: integer) ;
parameetrid on funktsioone puhver staatus ja vahetustega (offset) . Puhver sisaldab kõiki saadud andmeid staatus . Offset sõltub edastamise (laiendatud aadress , normaalne , ja muid tulevasi rakendusi sõltuv side algoritmid) .
See automaatselt täidab massiivi staatus iga kontroller üksikult ja siis otse manipuleerida andmeid või andmeid uuendama automaatselt ekraanile puutepaneelid .
See funktsioon on aktiveeritud sündmuse protseduuri vastu andmeid UDP socket osa (TNMUDP – nimetatakse binaarne) kui onDataReceived .
Vastuvõtt on järgmine:
menetluse TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: Integer ; FromIP: String ; Port: Integer) ;
var C: array [0 . . 1024] char ;
MyStream: TMemoryStream ;
algama
kui filesystem_status sulgege ; / / Kui failisüsteemi filesystem_status
MyStream: = TMemoryStream . Looma ; / / Loo oja andmete
binaarne . ReadStream (MyStream) ; / / Loe andmevoo
MyStream . Loe (C [0] , NumberBytes) ; / / Koormused puhver C
set_rm (C , 1) ; / / Teisendab binaarandmeid ning koormuste registrite rm [index] jaoks kontrollerid eHouse 1
Test_save ; / / Katse rekord väljund tekstifailina lihtne operatsioon
update_panel ; / / Load andmed juhtpaneel
lõpp ;
See võimaldab teil automaatselt ja mitte – Invasiivse andmete kogumine üle LAN või WiFi – Ühendus koos pakendiga ringhäälingu kaudu UDP (User Datagram Protocol) .
Mida rohkem ei vaja avatud ühendus serveriga ainult kuulab sadama saade ‘ 6789 ‘ täitmatajätmise või muu .
Vead link , Võrk , ruuterid ei põhjusta peatamise või määramata tarkvara vead (nagu näiteks side TCP server) , kuid kaob lihtsalt uuendada andmeid mõjutamata andmete või sobiva serveri UDP klientprogramm .

HOIATUS! . Kui loote juhtimise tarkvara Windowsi jaoks eHouse Home Automation , on vaja rakendada kõiki algoritme ühe taotluse , mis analüüsib andmeid ning teeb kõik algoritmid ja visualiseerida neid . Jälgisime mõnikord, et 2 UDP kuulaja pistikupesa ei saa eksisteerida samal PC .
Kõige olulisemad muutujad raamatukogu binaarne:
boiler_alarm: Boole'i ​​= false ; / / Boiler Äratus programmeeritud temperatuuri üle
/ / Üle – temperatuuri alarm katla
bonfire_stat: täisarv ; / / Lõke kütte tase 0 – 7 binaarsed – töösuhte tulekahju
/ / 0 – tulekahju ära – ei soojene
/ / 1 – Fire / kustutusvahendid => ; ; roheline tase < ; ; temp jope (roheline LED vilgub) – lõpeb vilgub roheline
/ / 2 – tule => ; ; roheline tase> ; ; = Temp jope> ; ; kollane tasemel – histeressis (roheline LED) – roheline
/ / 3 – tule => ; ; kollane tasemel – histeressis> ; ; temp jope> ; ; histeressis tasandil + kollane) (roheline + kollane LED) – roheline – kollane
/ / 4 – tule => ; ; kollane tasandil + histeressis> ; ; temp jope> ; ; punane tasemel – histeressis (kollane) – kollane
/ / 5 – tingimusteta => ; ; punane tasemel – histeressis < ; ; temp jope < ; ; histeressis tasandil + punane (punane + kollane LED) kollane – punane
/ / 6 – tingimusteta => ; ; temp jope> ; ; histeressis tasandil + punane (punane LED konstantne) – punane
/ / 7 – tingimusteta => ; ; temp jope> ; ; lõke häire (punane LED vilgub) ALARM – punane vilgub
bonfire_sensor_error: Boole'i ​​= false ; / / Viga andurid lõke liiga palju erinevaid vee jope temperatuuriandurid Between Two
/ / Viga kamin mantlit temperatuuriandurid liiga suur erinevus
recuperator_status: string ; / / Staatus puhkuseks , ventilatsioon , õhu soojendamiseks – recuperator ja ventilatsioon staatus
recu_winter: Boole'i ​​= false ; / / Recuperator talv / suvi soojusvaheti režiimi sisse / välja lülitada – recuperator talv / suvi
recu_manual_amalva: boolean = true ; / / Recuperator Auto / Käsitsi režiim Amalva recuperator (auto juhtimine toimub sisemiste controler Amalva , manuaal eHouse HeatManager) / /
recuperator Amalva käsitsi / automaatne
went_cooler: boolean = true ; / / Veejahuti sees / väljas ventilatsioon või jahedam süsteemi puhkuseks puhkuseks või GWC ON / OFF
went_gwc: Boole'i ​​= false ; / / GHE (maasoojusvaheti) Servomotor sisse / välja – maasoojusvaheti mootor sisse / välja
went_aux_gwc_fan: Boole'i ​​= false ; / / Auxiliary GWC ventilaator / ventilaator / off lüliti maasoojusvaheti – GWC ventilaatoriga
bonfire_dgp: Boole'i ​​= false ; / / Lõke kuuma õhu jaotussüsteem sisse / välja lülitada – Fan jaotus kuuma õhu kamin DGP
ventilation_on: Boole'i ​​= false ; / / Ventilatsioon töötab praegu sisse / välja – sisaldavad ventilatsiooni ja soojuse taaskasutamise
heater_pump: boolean = true ; / / Pump küttekeha ventilatsiooni sisse / välja – pump kütte-ja ventilatsioonisüsteemi radiaatorite
three_ways_cutoff: integer = 0 ; / / Kolm võimalust tarneseisak suunas 0 väljas , Suurendamine tase 1 , – Vähendamise 1) pöörlemissuunda elektro – tee ventiil
solar_pump: Boole'i ​​= false ; / / Päikese pumba sisse / välja – päikese pumba
boiler_on: Boole'i ​​= false ; / / Boiler sisse / välja lülitada – boiler sisse / välja
boiler_pump: Boole'i ​​= false ; / / Staatus katla pumba sisse / välja – katla pump sisse / välja
boiler_fuel_out: Boole'i ​​= false ; / / Boiler kütus otsas aproximate (loe tundi soojendus) – Hinnanguliselt kütuse puudust tahkekütuse katel (arvutatud põhjal lahtiolekuajad katel)
boiler_power_on: Boole'i ​​= false ; / / Boiler supplay sisse / välja lülitada ; – Boiler on / off
boiler_fuel_supply_override: Boole'i ​​= false ; / / Alistamine supplyier kütuse katel (kontrolli eHouse / sisemine katlaregulaator) – Vanem külmkäivitusel süsteem eHouse sisse / välja
bonfire_pump: Boole'i ​​= false ; / / Lõke pumba olekus sees / väljas – tuletõrjepump sisse / välja
recu_speed: integer = 0 ; / / Recuperator Speeed 0 . . 3 – recuperator kiirus
recu_temperature: täisarv ; / / Temperatuuri tase RECU 0 . . 30C temperatuuri recuperator jaoks amalwa
_recu_mode: string = ‘ ‘ ; / / Tagastamine režiimi teksti, kuna see HeatManager juhtpaneel (eHouse . exe) – recuperator režiimi kui juhtpaneel taotluse HeatMAnagerem eHouse . exe
läks: string ; / / Tekst ventilatsioon staatuse HeatManager Juhtpaneel (eHouse . exe) – ventilatsioon staatus sama HeatManager paneeli eHouse . exe
katel , päikeseenergia: string ; / / Boiler , Päikese tekst HeatManager staatuse Control Panel (eHouse . exe) – staatuse katla ja päikesepaneel kontroll (HeatManager) eHouse . exe
Komi: string ; / / Tekst lõke staatuse HeatManager Juhtpaneel (eHouse . exe) – staatuse tuletõrje juhtpaneelil taotluse HeatManager eHouse . exe
Kontroll Tuled