Dekodifikazzjoni-istatus binarja ta 'kontrolluri awtomazzjoni dar – kodiċi ħielsa sors

Awtomazzjoni Home , Ġestjoni Bini eHouse – Dekodifikazzjoni l-istatus tal-kontrolluri mikroproċessur
Awtomazzjoni Home riċevuti mill-pannell tal-kontroll konness mal-LAN jew WiFi , permezz UDP (User Datagram Protokoll) .
L-istandard qafas riċeviment status f'forma binarja , ma Kontrolluri ġie diskuss fil-artikolu ” Intelliġenti Bini eHouse kontrollur istatus pakkett ” .
Dekodifikazzjoni-qafas jeħtieġ li tanalizza kull daqsxejn ta 'data mill-pakkett .
Minbarra , kull tip ta 'kontrollur:

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

Have differenza fl-ammont ta 'inputs diġitali , kejl inputs , outputs diġitali , dimmers , monitoraġġ funzjonijiet u algoritmi li jwasslu , li d-data fl-jindiblu qafas standard skond it-tip ta 'kontrollur .
Dan jirriżulta fl-bżonn ta 'dekodifikazzjoni l-ftit ftit għal kull tip ta' kontrollur indipendenti .
Fil-każ tal-implimentazzjoni ta 'kull tip ta' kontrolluri mikroproċessur biex joħolqu u jittestjaw l-algoritmu ta 'dekodifikazzjoni qafas jista' jieħu sa 1 xahar .
Biex jiġi minimizzat dan iż-żmien għall-minimu , biex jiffaċilitaw lest biex jippreżenta l-algoritmu mislufa mill eHouse . applikazzjoni exe , li awtomatikament jiddekowdja l-informazzjoni kollha mill-kontrollur tad-dejta u tat-tagħbija fir-rekords template ta 'panel touch (għal pilloli) Windows XP , Vista , 7 , 8 .
Wara awtomatikament tagħbija tad-data fil-libreriji software eHouse , bi ftit linji ta 'kodiċi , inti tista 'toħloq stess kontroll tiegħek algoritmi eHouse sistema fi ftit minuti .
Frame Binarju software dekowdjar ta 'l-istandard istatus eHouse hija implimentata fil-librerija mudell għall-panel . Dan jeħtieġ li jsir binarju , għall dekodifikazzjoni status dirett mill-kontrolluri Ethernet mingħajr eHouse . Superviżjoni applikazzjoni Exe .
Dekodifikazzjoni l-qafas kollu (għall-kontrolluri mikroproċessur eHouse1 RM , EM , HM) isir mill-funzjoni set_rm proċedura (str: array_of_char ; TCP_INDEX_INC: numru sħiħ) ;
parametri huma funzjonijiet ta 'l-istatus buffer u shift (offset) . Il-buffer fih id-data riċevuta mill-istatus . Offset jiddependi mit-tip ta 'trażmissjoni (indirizz estiż , normali , u applikazzjonijiet futuri oħra dipendenti fuq algoritmi ta 'komunikazzjoni) .
Hija awtomatikament timla l-istatus firxa għal kull kontrollur individwalment u jista 'mbagħad direttament jimmanipulaw id-data jew id-data ta' aġġornament awtomatikament fuq panewijiet touch screen .
Din il-funzjoni hija attivata fil-proċedura f'każ ta 'jirċievu data minn UDP komponent sokit (TNMUDP – imsejħa binarju) fil-każ onDataReceived .
L-ilqugħ huwa kif ġej:
Proċedura TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: Integer ; FromIP: String ; Port: Integer) ;
var C: [array 0 . . 1024] tal char ;
MyStream: TMemoryStream ;
tibda
jekk filesystem_status allura ħruġ ; / / Jekk l-ebda fajl sistema filesystem_status
MyStream: = TMemoryStream . Oħloq ; / / Oħloq fluss ta 'data
binarja . ReadStream (MyStream) ; / / Aqra l-fluss ta 'data
MyStream . Aqra (C [0] , NumberBytes) ; / / Tagħbijiet l C buffer
set_rm (C , 1) ; / / Tikkonverti l-data binarja u tagħbijiet-reġistri rm [indiċi] għall-kontrolluri eHouse 1
Test_save ; / / Test jirrekordja l-output għall-fajl test għat-tħaddim faċli
update_panel ; / / Tagħbija data għall-pannell tal-kontroll
aħħar ;
Hija tippermetti li inti awtomatikament u mhux – ġbir invażiva ta 'data fuq LAN jew Wi – Fi mal-xandira pakkett permezz UDP (User Datagram Protokoll) .
X'aktar ma teħtieġx konnessjoni miftuħa għall-server biss jisma fis-xandira port ‘ 6789 ‘ inadempjenza jew .
Żbalji rabta , Netwerk , routers ma jirriżultawx f 'sospensjoni jew żbalji software mhux speċifikati (bħal fil-każ ta' komunikazzjoni ma 'TCP server) , iżda tisparixxi biss taġġorna d-data mingħajr ma jaffettwa d-data jew adattat server UDP klijent ta 'applikazzjoni .

TWISSIJA! . Jekk inti toħloq software kontroll fuq Windows għal Awtomazzjoni Home eHouse , huwa meħtieġ li jiġu implimentati kollha algoritmi applikazzjoni waħda , li tanalizza d-dejta u twettaq l-algoritmi u Ħares minnhom . Aħna osservat kultant li 2 socket semmiegħ UDP ma tista 'teżisti fuq il-PC istess .
Il-varjabbli l-aktar importanti fil-binarju librerija:
boiler_alarm: Boolean = foloz ; / / Boiler allarm allarm għat-temperatura pprogrammata fuq
/ / Tul – kaldarun allarm għat-temperatura
bonfire_stat: numru sħiħ ; / / Ħuġġieġa tisħin livell 0 – 7 għall-modalità binarja – nar istatus tax-xogħol
/ / 0 – nar off – ma sħana
/ / 1 – Nar on / jitfi => ; ; aħdar livell < ; ; temperatura ġakketta (aħdar LED Teptip) – jiskadi fwawar aħdar
/ / 2 – nar => ; ; livell aħdar> ; ; Ġakketta Temp => ; ; isfar livell – histeressis (aħdar LED) – aħdar
/ / 3 – nar => ; ; isfar livell – histeressis> ; ; jacket temperatura> ; ; livell histeressis + isfar) (aħdar + isfar LEDs) – aħdar – isfar
/ / 4 – nar => ; ; isfar livell + histeressis> ; ; jacket temperatura> ; ; aħmar livell – histeressis (isfar) – isfar
/ / 5 – inkundizzjonata => ; ; aħmar livell – histeressis < ; ; ġakketta temperatura < ; ; histeressis livell + aħmar (red + isfar LEDs) isfar – aħmar
/ / 6 – inkundizzjonata => ; ; jacket temperatura> ; ; livell histeressis + aħmar (red LED kostanti) – aħmar
/ / 7 – inkundizzjonata => ; ; jacket temperatura> ; ; allarm ħuġġieġa (aħmar LED Teptip) ALLARM – fwawar aħmar
bonfire_sensor_error: Boolean = foloz ; / / Error sensors ħuġġieġa wisq sensuri differenti ġakketta ilma ta 'temperatura Bejn Żewġ
/ / Error nar mantell b'sensors tat-temperatura differenza kbira wisq
recuperator_status: string ; / / Status ta 'irkupru , ventilazzjoni , tisħin bl-ajru – recuperator u l-istatus tal-ventilazzjoni
recu_winter: Boolean = foloz ; / / Recuperator xitwa / sajf modalità heat exchanger attivat / diżattivat – xitwa recuperator / sajf
recu_manual_amalva: Boolean = vera ; / / Recuperator auto / manwali mode għal amalva recuperator (auto ġestit mill interna controler amalva , manwal għall eHouse HeatManager) / /
recuperator amalva manwali / awtomatika
went_cooler: Boolean = vera ; / / Ilma jkessaħ on / off għall-ventilazzjoni jew apparat li jkessaħ fil-irkupru irkupru sistema jew GWC ON / OFF
went_gwc: Boolean = foloz ; Servomutur / / ghe (skambjatur tas-sħana art) mixgħul / mitfi – sħana art skambjatur mutur mixgħul / mitfi
went_aux_gwc_fan: Boolean = foloz ; / / Awżiljarju GWC ventilatur / fann on / off switch għall-heat exchanger art – Fann GWC assistiti
bonfire_dgp: Boolean = foloz ; / / Ħuġġieġa sistema sħuna distribuzzjoni arja attivat / diżattivat – Distribuzzjoni Fan ta 'arja sħuna mill-DGP nar
ventilation_on: Boolean = foloz ; / / Ventilazzjoni bħalissa qed taħdem fuq / mitfi – jinkludu ventilazzjoni u l-irkupru tas-sħana
heater_pump: Boolean = vera ; / / Pompa għall-heater għal ventilazzjoni mixgħul / mitfi – tisħin pompa u ċ-ċirkwit ventilazzjoni għal radjaturi
three_ways_cutoff: numru sħiħ = 0 ; / / Tliet modi direzzjoni cutoff 0 off , Żieda livell 1 , – Tnaqqis fil-livell 1) id-direzzjoni ta 'rotazzjoni elettro – valv mod
solar_pump: Boolean = foloz ; / / Pompa solari mixgħul / mitfi – solari pompa
boiler_on: Boolean = foloz ; / / Boiler attivat / diżattivat – kaldarun mixgħul / mitfi
boiler_pump: Boolean = foloz ; / / Status tal-pompa kaldarun mixgħul / mitfi – pompa kaldarun mixgħul / mitfi
boiler_fuel_out: Boolean = foloz ; / / Boiler l-fjuwil aproximate (għadd sigħat ta 'tisħin) – nuqqasijiet stmati tal-karburant għall kaldaruni fjuwil solidu (ikkalkolat fuq il-bażi ta 'sigħat ta' operazzjoni tal-bojler)
boiler_power_on: Boolean = foloz ; / / Boiler supplay qawwa mixgħul / mitfi ; – Enerġija Boiler mixgħul / mitfi
boiler_fuel_supply_override: Boolean = foloz ; / / Override fjuwil supplyier bojler (kontroll mill eHouse / kontrollur kaldarun intern) – Ikkontrollat ​​Parent fjuwil kunsinna sistema eHouse mixgħul / mitfi
bonfire_pump: Boolean = foloz ; / / Ħuġġieġa pompa istatus mixgħul / mitfi – pompa tan-nar mixgħul / mitfi
recu_speed: numru sħiħ = 0 ; / / Recuperator Speeed 0 . . 3 – recuperator veloċità
recu_temperature: numru sħiħ ; / / Temperatura livell ta 'reçu 0 . . 30C temperatura recuperator għall amalwa
_recu_mode: string = ‘ ‘ ; / / Irkupru mod li test kif HEatManager pannell tal-kontroll (eHouse . exe) – Mod recuperator bħala l-pannell tal-kontroll eHouse applikazzjoni HeatMAnagerem . exe
marru: string ; / / Test ventilazzjoni status bħala panel Kontroll HeatManager (eHouse . exe) – status ta 'ventilazzjoni l-istess bħal fil-panel HeatManager ta eHouse . exe
kaldarun , solari: string ; / / Boiler , Solar test HeatManager istatus bħala Control Panel (eHouse . exe) – istatus tal-bojler u l-solar panel kontroll (HeatManager) eHouse . exe
Komi: string ; / / Test ħuġġieġa status bħala panel Kontroll HeatManager (eHouse . exe) – istatus bħala l-nar pannell tal-kontroll heatmanager applikazzjoni eHouse . exe
Kontroll Lights