Het decoderen van de binaire status van domotica controllers – gratis source code

Home Automation , Building Management eHouse – Het decoderen van de status van de microprocessor controllers
Home Automation ontvangen door het bedieningspaneel aangesloten op de LAN of WiFi , via UDP (User Datagram Protocol) .
De standaard frame ontvangststatus in binaire vorm , met Controllers besproken in het artikel ” Intelligent Building eHouse controller status van pakket ” .
Het decoderen van het frame moet analyseren elke bit van de gegevens van verpakking .
Bovendien , elk type controller:

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

Een verschil in de hoeveelheid digitale ingangen , meetingangen , digitale uitgangen , dimmers , bewakingsfuncties en algoritmen die resulteren , De gegevens in de standaard frame muteren afhankelijk van het type controller .
Dit resulteert in de noodzaak voor het decoderen van bit voor bit voor iedere regelaar zelfstandig .
Bij de uitvoering van alle soorten microprocessor controllers maken en testen het frame decodeeralgoritme kan tot een maand .
Om dit te minimaliseren tot een minimum , te vergemakkelijken klaar om het algoritme geleend van eHouse presenteren . exe toepassingsfout , om alle informatie van de controller en de belasting gegevens automatisch decoderen in de template records van touch panel (voor tabletten) Windows XP , Vergezicht , 7 , 8 .
Na automatisch laden van de gegevens in de eHouse software bibliotheken , met een paar regels code , kunt u uw eigen controle algoritmes eHouse systeem in een paar minuten .
Binaire Frame decoding software van de eHouse status van standaard wordt geïmplementeerd in template bibliotheek voor paneel . Het moet worden gedaan binaire , voor directe decodering status van Ethernet-controllers zonder eHouse . Exe toepassingsfout toezicht .
Het decoderen van het hele beeld (voor microprocessor controllers eHouse1 RM , EM , HM) wordt uitgevoerd door de procedure set_rm functie (str: array_of_char ; TCP_INDEX_INC: integer) ;
parameters zijn functies van de buffer status en shift (offset) . De buffer bevat alle data ontvangen van de status . Offset afhankelijk van het type overbrenging (extended adres , normaal , en andere toekomstige toepassingen afhankelijk van de communicatie-algoritmen) .
Het vult automatisch de array-status voor elke controller afzonderlijk en kunnen dan direct automatisch manipuleren van de gegevens of de update gegevens op het scherm touch panels .
Deze functie wordt geactiveerd in geval de procedure van gegevens ontvangen van UDP-socket component (TNMUDP – genoemd binair) in geval onDataReceived .
De receptie is als volgt:
procedure TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: Integer ; FromIP: String ; Poort: Integer) ;
var C: array [0 . . 1024] van char ;
MyStream: TMemoryStream ;
beginnen
Als filesystem_status sluit ; / / Als er geen bestandssysteem filesystem_status
MyStream: = TMemoryStream . Creëren ; / / Maak een stroom van gegevens
binair . ReadStream (MyStream) ; / / Lees de datastroom
MyStream . Lees (C [0] , NumberBytes) ; / / Laadt de buffer C
set_rm (C , 1) ; / / Converteert het binaire gegevens en laadt de registers rm [index] voor controllers eHouse 1
Test_save ; / / Test registreert de uitvoer naar een tekstbestand voor een eenvoudige bediening
update_panel ; / / Load data voor het bedieningspaneel
einde ;
Hiermee kunt u automatisch en niet- – invasieve verzamelen van gegevens via een LAN of Wi – Fi met het pakket uitgezonden via UDP (User Datagram Protocol) .
Wat meer is niet nodig een open verbinding naar de server luistert op de poort uitzending ‘ 6789 ‘ verzuim of een ander .
Fouten koppeling , Netwerk , routers niet tot een suspensie of onbepaalde software fouten (zoals in het geval van communicatie met TCP server) , maar verdwijnt gewoon de gegevens te actualiseren zonder dat de gegevens of geschikte server UDP client-toepassing .

WAARSCHUWING! . Als u controle software op een Windows voor eHouse Home Automation , moet alle algoritmen in een applicatie , die de gegevens analyseert en voert alle algoritmen en visualiseren . We zagen wel eens dat 2 UDP luisteraar socket niet kan bestaan ​​op dezelfde pc .
De belangrijkste variabelen in de bibliotheek binair:
boiler_alarm: Boolean = false ; / / Boiler alarm alarm geprogrammeerde temperatuur boven
/ / Meer dan – temperatuuralarm ketel
bonfire_stat: integer ; / / Bonfire verwarming niveau 0 – 7 voor binaire modus – arbeidsstatus brand
/ / 0 – vuur af – verwarmt niet
/ / 1 – Brand op / blussen => ; ; groene niveau < ; ; temp jas (groene LED knippert) – verloopt knippert groen
/ / 2 – vuur op => ; ; groene niveau> ; ; = Temp jas> ; ; geel niveau – histeressis (groene LED) – groen
/ / 3 – vuur op => ; ; geel niveau – histeressis> ; ; temp jas> ; ; histeressis niveau + geel) (groen + geel leds) – groen – geel
/ / 4 – vuur op => ; ; geel level + histeressis> ; ; temp jas> ; ; rode niveau – histeressis (geel) – geel
/ / 5 – onvoorwaardelijke => ; ; rode niveau – histeressis < ; ; temp jas < ; ; histeressis niveau + red (rood + geel leds) geel – rood
/ / 6 – onvoorwaardelijke => ; ; temp jas> ; ; histeressis niveau + rood (rode LED constant) – rood
/ / 7 – onvoorwaardelijke => ; ; temp jas> ; ; vreugdevuur alarm (rode LED knippert) ALARM – rode flitsen
bonfire_sensor_error: Boolean = false ; / / Error sensoren vreugdevuur te veel verschillende watermantel temperatuursensoren Between Two
/ / Error open haard mantel temperatuursensoren te groot verschil
recuperator_status: string ; / / Status van herstel , ventilatie , luchtverwarming – recuperator en ventilatie-status
recu_winter: Boolean = false ; / / Recuperator winter / zomer warmtewisselaar modus ingeschakeld / uitgeschakeld – recuperator winter / zomer
recu_manual_amalva: Boolean = true ; / / Recuperator auto / handmatige modus voor amalva recuperator (auto beheerd door interne controler amalva , handleiding om eHouse HeatManager) / /
recuperator amalva manueel / auto
went_cooler: Boolean = true ; / / Water koeler aan / uit voor ventilatie of lagere in het systeem herstel recuperatie of GWC AAN / UIT
went_gwc: Boolean = false ; / / GHE (bodemwarmtewisselaar) Servomotor aan / uit – bodemwarmtewisselaar motor aan / uit
went_aux_gwc_fan: Boolean = false ; / / Extra GWC ventilator / ventilator aan / uit schakelaar voor bodemwarmtewisselaar – Bijgestaan ​​GWC ventilator
bonfire_dgp: Boolean = false ; / / Bonfire hete lucht distributiesysteem ingeschakeld / uitgeschakeld – Fan distributie van warme lucht van de open haard DGP
ventilation_on: Boolean = false ; / / Ventilatie werkt momenteel aan / uit – onder meer ventilatie en warmteterugwinning
heater_pump: Boolean = true ; / / Pomp voor verwarming voor ventilatie aan / uit – pomp verwarming en ventilatie circuit voor radiatoren
three_ways_cutoff: integer = 0 ; / / Drie manieren cutoff richting 0 uit , Het verhogen van niveau 1 , – Dalende 1) de draairichting electro – wegklep
solar_pump: Boolean = false ; / / Solar pomp aan / uit – solarpomp
boiler_on: Boolean = false ; / / Ketel ingeschakeld / uitgeschakeld – ketel aan / uit
boiler_pump: Boolean = false ; / / Status van de ketel pomp aan / uit – ketelpomp aan / uit
boiler_fuel_out: Boolean = false ; / / Boiler zonder brandstof indicatief (tel uur van verwarming) – geschat brandstoftekorten voor vastebrandstofketel (berekend op basis van bedrijfsuren van de ketel)
boiler_power_on: Boolean = false ; / / Boiler supplay power on / off ; – Ketel aan / uit
boiler_fuel_supply_override: Boolean = false ; / / Override supplyier brandstof ketel (controle door eHouse / interne ketelregelaar) – Parent gecontroleerde brandstoftoevoersysteem eHouse aan / uit
bonfire_pump: Boolean = false ; / / Bonfire status van de pomp aan / uit – brandbluspomp aan / uit
recu_speed: integer = 0 ; / / Recuperator Speeed 0 . . 3 – recuperator snelheid
recu_temperature: integer ; / / Temperatuur niveau van reçu 0 . . 30C temperatuur recuperator voor amalwa
_recu_mode: string = ‘ ‘ ; / / Recuperatie-modus in tekst als het HeatManager bedieningspaneel (eHouse . exe) – recuperator modus als het bedieningspaneel toepassing HeatMAnagerem eHouse . exe
ging: string ; / / Text ventilatie status als HeatManager Bedieningspaneel (eHouse . exe) – ventilatie stand hetzelfde als in HeatManager panel van eHouse . exe
ketel , zonne-energie: string ; / / Boiler , Solar tekst HeatManager status als een Control Panel (eHouse . exe) – status van de ketel en het zonnepaneel regelaar (HeatManager) eHouse . exe
komi: string ; / / Text vreugdevuur status als HeatManager Bedieningspaneel (eHouse . exe) – status als de brandmeldcentrale toepassing HeatManager eHouse . exe
Controle verlichting