బిల్డింగ్ ఆటోమేషన్ eHouse – ఒక Windows సాఫ్ట్వేర్ విస్తరణలు మరియు అనుకూల అల్గారిథంతో సృష్టిస్తోంది

ఇంటి ఆటోమేషన్ PC సాఫ్ట్వేర్ eHouse మీరు బిల్డింగ్ ఆటోమేషన్ వ్యవస్థ కోసం విస్తరణలు సృష్టించడానికి అనుమతిస్తుంది .
ఇది మీ సొంత సృష్టించడానికి అనుమతిస్తుంది , వ్యక్తిగత అల్గోరిథంలు , సీరియల్ నియంత్రిస్తుంది ఫర్మువేర్ ​​లేదా డ్రైవర్ సాఫ్ట్వేర్ అమలు లేదు ఇంటి ఆటోమేషన్ eHouse .
ఈ క్రమంలో , మేము (డెల్ఫీ 5 లో) సాఫ్ట్వేర్ సోర్స్ సంకేతాలు వినియోగదారులకు అందించేందుకు . వారు డెల్ఫీ యొక్క కొత్త వెర్షన్లు తో సంకలనం లేదా ఇతర ప్రోగ్రామింగ్ భాషల ఉపయోగించవచ్చు .
వారు ఔత్సాహిక కార్యక్రమం కోసం ఉచితంగా ఇప్పటికే అందుబాటులో ఉన్నాయి వంటి మేము ఉద్దేశపూర్వకంగానే ఈ ప్రాచీన సంస్కరణలు ఎంచుకున్నారు .
వారు Windows XP లో కేవలం విశ్వసనీయంగా పని , Vista , Windows 7 32 మరియు 64 బిట్ రెండు .
ఈ సాఫ్ట్వేర్ eHouseLogAnalizer మరియు తేదీ వరకు టెక్స్ట్ ఫైళ్లు చదివే ఈ లాగ్లను టెంప్లేట్ అప్లికేషన్లు అంటారు .
ఇది అనువర్తనాలు KillWdt ద్వారా నిర్వహిస్తుంది మరియు పర్యవేక్షించడం చేయవచ్చు . exe .
అప్లికేషన్ యొక్క కీలక అంశాలు:

  • అన్ని డ్రైవర్లు యొక్క స్థితి మరియు పేర్లను పఠనం
  • స్థితి చదివి అన్ని డ్రైవర్లు పేర్లు నమోదు
  • ఇన్పుట్లను కొలిచే అన్ని డ్రైవర్లు యొక్క కొలతలు మరియు పేర్లు చదవండి
  • అంతర్గత ప్రోగ్రామ్ మెమరీ అన్ని డేటాను లోడ్ , ఇది మరింత అప్లికేషన్ ద్వారా ప్రాసెస్ చెయ్యబడతాయి

అప్లికేషన్ డైరెక్టరీ లో టెక్స్ట్ ఫైళ్లు ఏర్పాటు ఫైళ్ళ స్థాయి ఉపయోగిస్తుంది ‘ లాగ్లను / స్థితి / ‘ పొడిగింపు ‘ . హోదా ‘ .
ఫైలు మాత్రమే దరఖాస్తు eHouse మార్పులు సందర్భంలో చదవబడుతుంది . exe .

డేటా కంట్రోలర్లు ఈ క్రింది సందర్భాలలో రికార్డ్స్ లో లోడ్ ” ehouse_rm_em_hm ” అర్రే RM లో జాబితా .

అదనంగా , డేటా HeatManager క్రింది వేరియబుల్స్ ఉంచుతారు:
bonfire_status: స్ట్రింగ్ ; HeatManager కోసం భోగి మంటలు యొక్క / / స్థితి – స్థాయి పొయ్యి వేడి ప్యానెల్ eHouse . exe
boiler_status: స్ట్రింగ్ ; HM కోసం బాయిలర్ యొక్క / / స్థితి – బాయిలర్ వేడి ప్యానెల్ eHouse యొక్క స్థితి . exe
Solar_status: స్ట్రింగ్ ; సౌర వ్యవస్థ యొక్క / / స్థితి – సౌర తాపన ప్యానెల్ eHouse యొక్క స్థితి . exe
recuperator_status: స్ట్రింగ్ ; బలమును తిరిగి పొందుట యొక్క / / స్థితి , వెంటిలేషన్ , గాలి తాపన – వేడి వెంటిలేషన్ మరియు వేడి రికవరీ యొక్క స్థితి
HADC: అర్రే [0 . . 15] డబుల్ యొక్క ; / / హీట్ ఉష్ణోగ్రతలు మేనేజర్ – ఉష్ణోగ్రత కొలతలు HeatManager
HADC శ్రేణి యొక్క ప్రత్యక్ష కోసం / / హీట్ మేనేజర్ సూచికలు – ఉష్ణోగ్రత HeatManager ప్రత్యక్ష పఠనం కోసం స్థిరమైన ఉష్ణోగ్రత సూచీలు
కాన్స్ట్ HM_GWC = 3 ; / / GWC – గ్రౌండ్ ఉష్ణ వినిమాయకం
HM_KOM1 = 4 ; / / అగ్నిమాపక కోట్ 1 – బెల్లపుపాగుతో నీటి జాకెట్ 1
HM_KOMKONV = 5 ; / / అగ్నిమాపక konvekcyjne – ఉష్ణప్రసరణ భోగి మంటలు
HM_KOM2 = 6 ; / / ఫైర్ విమానం 2 – భోగి మంటలు నీటి జాకెట్ 2 (బ్యాకప్)
HM_TWEWN = 7 ; / / అంతర్గత గది ఉష్ణోగ్రత – అంతర్గత గది ఉష్ణోగ్రత
HM_SOLAR = 9 ; / / కలెక్టర్ సూర్యుడు – సౌర వ్యవస్థ
HM_ZEWNPN = 8 ; / / బాహ్య ఉష్ణోగ్రత ఉత్తర – బాహ్య ఉష్ణోగ్రత ఉత్తర
HM_ZEWNPD = 1 ; దక్షిణ / / బాహ్య ఉష్ణోగ్రత – బాహ్య ఉష్ణోగ్రత దక్షిణ
HM_KOC = 10 ; / / ఉష్ణోగ్రత బాయిలర్ – బాయిలర్ ఉష్ణోగ్రత
HM_BANDOL = 11 ; / / CO / వేడి నీటి ట్యాంక్ డౌన్ – హాట్ watter క్రింద బఫర్
HM_REQIN = 12 ; / / క్లీన్ ఎయిర్ recuperator ఇన్పుట్ – బలమును తిరిగి పొందుట స్పష్టమైన గాలి ఇన్పుట్
= 13 HM_REQOUT ; / / అవుట్పుట్ recuperator హోమ్ – గదికి heaten బలమును తిరిగి పొందుట తాజా దెబ్బ గాలి – ఉష్ణోగ్రత
= 14 HM_NAG ; / / ఉష్ణోగ్రత మూడు నియంత్రించబడుతుంది – వేడి మరియు రేడియేటర్ల మార్గం వాల్వ్ – నీటి హీటర్ లేదా ఇతర వేడి వ్యవస్థ కోసం మూడు విధాలుగా తేడాను తర్వాత ఉష్ణోగ్రత
HM_REQWYC = 15 ; / / Home recuperator సారం డర్టీ – హోం డర్టీ ఎగ్జాస్ట్ టెంప్ నుండి బలమును తిరిగి పొందుట
HM_BANGORA = 2 ; / / తాపన / వేడి నీటి ట్యాంక్ గోరా – వేడి నీటి బఫర్ TOP
HM_BANSRO = 0 ; / / తాపన / వేడి నీటి నిల్వ ట్యాంక్ ఒక మార్గంగా – MIDDLE వేడి నీటి బఫర్
var HADCNames: అర్రే [0 . . 15] స్ట్రింగ్ యొక్క ; / / సెన్సార్ల పేర్లు (ఇన్పుట్లను కొలిచే) HeatManagera
ప్రాధమిక విధులు EhouseLogAnalizer:
ప్రక్రియ init_heat_temperature_names ; / / ప్రారంభించును మరియు / లేదా ఉష్ణోగ్రత సెన్సార్లు HM పేర్లు చదవండి
ప్రక్రియ loadnames_rm ; / / లోడ్ RoomManagerĂłw పేర్లు (eHouse 1)
ప్రక్రియ readethernetdevs ; / / ఈథర్నెట్ డ్రైవర్ పేర్లు (eHouse 2) పుస్తకాలు
get_index_rm ఫంక్షన్ (STR: స్ట్రింగ్): పూర్ణాంక ; / / రిటర్న్స్ ఫైల్ పేరు స్థితి ద్వారా roomManagerami శోధన తో పట్టిక సూచిక
ఫంక్షన్ GB (chr: చార్): బూలియన్ ; / / చదవడానికి స్థితి కోసం బూలియన్ విలువ చూపిస్తుంది
adc_hm ప్రక్రియ (STR: స్ట్రింగ్ ; సూచిక: పూర్ణాంక) ; / / చదవడానికి స్థాయి HeatManagera యొక్క రికార్డ్ ఉష్ణోగ్రతలు స్ట్రింగ్ మార్పిడి
adc_rm ప్రక్రియ (STR: స్ట్రింగ్ ; సూచిక: పూర్ణాంక) ; స్థితి RoomManagerĂłw చదివేటప్పుడు / / అనలాగ్ కొలతలను స్ట్రింగ్ మార్పిడి
gbs ఫంక్షన్ (బి బూలియన్): స్ట్రింగ్ ; / / టెక్స్ట్ రూపం (0 లో బూలియన్ వ్రాయండి , 1)
RMDeviceIndexByName ఫంక్షన్ (STR: స్ట్రింగ్): పూర్ణాంక ; / / రిటర్న్స్ పేరు డ్రైవర్ ద్వారా RoomManagerami శోధన తో పట్టిక సూచిక
RMGetOutputStateNr ఫంక్షన్ (సూచిక: పూర్ణాంక ; OutputNr: పూర్ణాంక): బూలియన్ ; / / అవుట్పుట్ రాష్ట్ర RM చూపించు [ఇండెక్స్] మరియు అవుట్పుట్ సంఖ్య OutputNR
RMGetOutputState ఫంక్షన్ (సూచిక: పూర్ణాంక ; OutputName: స్ట్రింగ్): బూలియన్ ; / / రిటర్న్స్ అవుట్పుట్ రాష్ట్ర RM [ఇండెక్స్] మరియు OutputName అవుట్ అని
RMGetInputStateNr ఫంక్షన్ (సూచిక: పూర్ణాంక ; InputNr: పూర్ణాంక): బూలియన్ ; / / రిటర్న్స్ ఇన్పుట్ RM స్థితి [ఇండెక్స్] మరియు ఎంట్రీ InputNr సంఖ్య
RMGetInputState ఫంక్షన్ (సూచిక: పూర్ణాంక ; InputName: స్ట్రింగ్): బూలియన్ ; / / రిటర్న్స్ ఇన్పుట్ RM స్థితి [ఇండెక్స్] మరియు ఎంట్రీ InputName యొక్క పేరు
RMGetTempNr ఫంక్షన్ (సూచిక: పూర్ణాంక ; InputNr: పూర్ణాంక): డబుల్ ; / / RM ఉష్ణోగ్రత చూపిస్తుంది [ఇండెక్స్] మరియు ఎంట్రీ InputNr సంఖ్య
RMGetTemp ఫంక్షన్ (సూచిక: పూర్ణాంక ; InputName: స్ట్రింగ్): డబుల్ ; / / RM ఉష్ణోగ్రత చూపిస్తుంది [ఇండెక్స్] మరియు ఎంట్రీ InputName యొక్క పేరు
RMGetInvPercent ఫంక్షన్ (సూచిక: పూర్ణాంక ; InputName: స్ట్రింగ్): డబుల్ ; / / రిటర్న్స్ రివర్స్ 100 శాతం కొలత % – x RM [ఇండెక్స్] మరియు ఎంట్రీ InputName యొక్క పేరు (సరఫరా వోల్టేజ్ నియంత్రిక సంబంధించి)
RMGetInvPercentNr ఫంక్షన్ (సూచిక: పూర్ణాంక ; InputNr: పూర్ణాంక): డబుల్ ; / / రిటర్న్స్ రివర్స్ 100 శాతం కొలత % – x RM [ఇండెక్స్] మరియు ఎంట్రీ InputNr సంఖ్య (సరఫరా వోల్టేజ్ నియంత్రిక సంబంధించి)
RMGetPercent ఫంక్షన్ (సూచిక: పూర్ణాంక ; InputName: స్ట్రింగ్): డబుల్ ; / / రిటర్న్స్ RM [ఇండెక్స్] యొక్క ఒక శాతం కొలత మరియు ఎంట్రీ InputName యొక్క పేరు (సరఫరా వోల్టేజ్ నియంత్రిక సంబంధించి)
RMGetPercentNr ఫంక్షన్ (సూచిక: పూర్ణాంక ; InputNr: పూర్ణాంక): డబుల్ ; / / రిటర్న్స్ రివర్స్ 100 శాతం కొలత % – x RM [ఇండెక్స్] మరియు ఎంట్రీ InputNr యొక్క పేరు (సరఫరా వోల్టేజ్ నియంత్రిక సంబంధించి)
RMGetDeviceOutputState ఫంక్షన్ (Devname: స్ట్రింగ్ ; OutputName: స్ట్రింగ్): బూలియన్ ; / / రిటర్న్స్ Devname అని అవుట్పుట్ డ్రైవర్ యొక్క రాష్ట్ర మరియు OutputName అవుట్ అని
RMGetDeviceInputState ఫంక్షన్ (Devname: స్ట్రింగ్ ; InputName: స్ట్రింగ్): బూలియన్ ; / / రిటర్న్స్ డ్రైవర్ ఇన్పుట్ స్థాయి పేరు మరియు ఎంట్రీ Devname InputName యొక్క పేరు
HMGetTemp ఫంక్షన్ (InputName: స్ట్రింగ్): డబుల్ ; HeatManagera InputName పిలుపునిచ్చారు కొలిచే ఇన్పుట్ / / రిటర్న్ ఉష్ణోగ్రత
HMGetTempNr ఫంక్షన్ (InputNr: పూర్ణాంక): డబుల్ ; HeatManagera InputNr లెక్కించేటప్పుడు ఇన్పుట్ సంఖ్య (1 / / రిటర్న్ ఉష్ణోగ్రత . . 16)
chk_int ఫంక్షన్ (స్టంప్: స్ట్రింగ్): పూర్ణాంక ; / / సేఫ్ పూర్ణాంకం ఒక స్ట్రింగ్ మార్చడానికి
ప్రక్రియ update_status ; / / పట్టిక లో అన్ని డ్రైవర్లు డేట్ (క్రమానుగతంగా రన్ చెయ్యాలి)
ప్రక్రియ Test_save ; / / టెస్ట్ ప్రక్రియ సులభం కోసం ఒక టెక్స్ట్ ఫైల్ కు ఫలితాలను రాయడానికి
డ్రైవర్ ప్రారంభించును మరియు అప్లికేషన్ ప్రారంభమైంది ఒకసారి అన్ని పేర్లు (FormCreate) చేస్తారు
ప్రక్రియ TForm1 . FormCreate (పంపినవారు: TObject) ;
ప్రారంభం
మార్గం: = getcurrentdir () ; / / ప్రోగ్రామ్ యొక్క ప్రస్తుత మార్గం డైరెక్టరీలో ఉండాలి పొందండి % eHouse_DIR % \ BIN \
మార్గం: = stringreplace (మార్గం , ‘ \ బిన్ ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / అప్లికేషన్ eHouse యొక్క మార్గం పొందండి – అప్లికేషన్ మార్గం eHouse సెట్స్
loadnames_rm ; / / లోడ్ నియంత్రిక పేర్లు ehouse1 – బరువులు డ్రైవర్లు పేరు eHouse 1
init_heat_temperature_names ; / / లోడ్ సెన్సార్లు heatManagera పేరు
readethernetdevs ; / / లోడ్ కంట్రోలర్లు ఈథర్నెట్ eHouse పేర్లు – పరికరం పేర్లు eHouse 2 reading
timer1 . విరామం: = 3000 ; మిల్లిసెకన్లలో / / సెట్ చక్రీయ పని విరామం – చక్రీయ డేటా తనిఖీ ప్రారంభించడానికి సమయం అమర్చండి
timer1 . ప్రారంభించబడింది: = true ; / / (డేట్ ఆటోమేటిక్ పనులు ప్రారంభం – డేటా యొక్క నిరంతర తనిఖీ కలిగి
update_status ; / / మొదటి స్థాయి పుస్తకాలు
చివర ;
చక్రీయ డేటా తనిఖీని ఫంక్షన్ Timer1 ద్వారా జరుగుతుంది (Timer1Timer) పారామితి Timer1 లో సెట్ సమయం విరామం లో నడుస్తుంది . విరామం (మిల్లిసెకన్లలో) .
ప్రక్రియ TForm1 . Timer1Timer (పంపినవారు: TObject) ;
var tf: textfile ;
ప్రారంభం
update_status ; / / డ్రైవర్ యొక్క స్థితి మార్పిడి
Test_save ; / పరీక్షలో / a టెక్స్ట్ ఫైల్ అన్ని ఫలితాలను రాశాడు
/ ప్రయత్నించండి / అనువర్తనం కోసం గుర్తు ఫైల్ KillExec సృష్టించడానికి . exe ఏమిటంటే ” చూడటానికి ” క్రాష్ ముందు అప్లికేషన్
AssignFile (tf , మార్గం + ‘ లాగ్లను \ లాగ్ – analizer . ఎస్టీపీ ‘ ) ;
/ / అప్లికేషన్ సరిగ్గా stampfile ఉపయోగించి పని ఆ WDT తెలియజేయి ” \ లాగ్ లాగ్ – analizer . ఎస్టీపీ ”
తిరిగి (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
చివరకు ;
closefile (tf) ;
చివర ;
చివర ;