Κτίριο eHouse Αυτοματισμού – Δημιουργώντας ένα επικαλύψεις λογισμικού των Windows και έθιμο αλγορίθμων

Αυτοματισμού eHouse με το λογισμικό PC σας επιτρέπει να δημιουργήσετε επικαλύψεις για το σύστημα αυτοματισμού κτιρίου .
Αυτό σας δίνει τη δυνατότητα να δημιουργήσετε το δικό σας , μεμονωμένα αλγόριθμοι , δεν εφαρμόζονται σε λογισμικό firmware ή οδηγών που ελέγχει τη σειριακή Αυτοματισμού eHouse .
Για το σκοπό αυτό , θα παρέχει στους χρήστες με τους κωδικούς πηγή λογισμικού (στους Δελφούς 5) . Μπορούν να καταρτίζονται με νεότερες εκδόσεις των Δελφών ή να χρησιμοποιηθούν για άλλες γλώσσες προγραμματισμού .
Εμείς επιλέξαμε συνειδητά αυτό το αρχαϊκό εκδόσεις που είναι ήδη διαθέσιμα για δωρεάν πρόγραμμα για ερασιτέχνες .
Εργάζονται εξίσου αξιόπιστα με τα Windows XP , Μακρινή θέα , Windows 7 και τα δύο 32 και 64 bit .
Το λογισμικό αυτό ονομάζεται eHouseLogAnalizer και αυτές οι εφαρμογές πρότυπο κούτσουρα που διαβάζουν αρχεία κειμένου μέχρι σήμερα .
Μπορεί να διαχειρίζεται και παρακολουθείται από τις εφαρμογές KillWdt . exe .
Βασικά χαρακτηριστικά της εφαρμογής:

  • Διαβάζοντας την κατάσταση και τα ονόματα όλων των οδηγών
  • Διαβάστε κατάσταση και να εισάγετε τα ονόματα όλων των οδηγών
  • Διαβάστε τις μετρήσεις και τα ονόματα όλων των οδηγών μέτρηση των εισροών
  • Φορτώστε όλα τα δεδομένα στην εσωτερική μνήμη προγράμματος , τα οποία μπορούν να υποστούν περαιτέρω επεξεργασία από μια εφαρμογή

Η εφαρμογή χρησιμοποιεί την ιδιότητα του δημιουργήθηκε σε αρχεία κειμένου σε έναν κατάλογο ‘ logs / κατάσταση / ‘ επέκταση ‘ . κατάσταση ‘ .
Το αρχείο είναι μόνο για ανάγνωση σε περίπτωση αλλαγών στην εφαρμογή eHouse . exe .

Οι υπεύθυνοι της επεξεργασίας δεδομένων φορτωθεί στις ακόλουθες περιπτώσεις Records ” ehouse_rm_em_hm ” απαριθμούνται στο RM σειρά .

Εξάλλου , τα δεδομένα φυλάσσονται HeatManager οι ακόλουθες μεταβλητές:
bonfire_status: string ; / / Κατάσταση φωτιά για HeatManager – Κατάσταση θέρμανση τζάκι eHouse πίνακα . exe
boiler_status: string ; / / Κατάσταση του λέβητα για HM – κατάσταση της θέρμανσης eHouse πίνακα του λέβητα . exe
Solar_status: string ; / / Κατάσταση του ηλιακού συστήματος – κατάσταση των ηλιακών πάνελ θέρμανσης eHouse . exe
recuperator_status: string ; / / Κατάσταση της ανάρρωσης , αερισμός , θέρμανση του αέρα – καθεστώς του αερισμού θέρμανσης και ανάκτηση θερμότητας
HADC: array [0 . . 15] της διπλής ; / / Θερμότητας διευθυντής Θερμοκρασίες – θερμοκρασία HeatManager μετρήσεις
/ / Θερμότητας δείκτες διευθυντής για άμεση πρόσβαση των HADC σειρά – Σταθερή δείκτες θερμοκρασίας για άμεση ανάγνωση της θερμοκρασίας HeatManager
CONST HM_GWC = 3 ; / / GWC – Ισόγειο εναλλάκτη θερμότητας
HM_KOM1 = 4 ; / / Επικάλυψη 1 Τζάκι – Φωτιά σακάκι νερό 1
HM_KOMKONV = 5 ; / / Τζάκι konvekcyjne – φωτιά συναγωγή
HM_KOM2 = 6 ; / / Φωτιά επίπεδο 2 – φωτιά σακάκι νερό 2 (backup)
HM_TWEWN = 7 ; / / Εσωτερική θερμοκρασία δωματίου – εσωτερική θερμοκρασία δωματίου
HM_SOLAR = 9 ; / / SUN Collector – ηλιακό σύστημα
HM_ZEWNPN = 8 ; / / Εξωτερική θερμοκρασία βόρεια – εξωτερική θερμοκρασία βόρεια
HM_ZEWNPD = 1 ; / / Εξωτερική θερμοκρασία του νότου – εξωτερική θερμοκρασία νότια
HM_KOC = 10 ; / / Λέβητα Θερμοκρασία – θερμοκρασία λέβητα
HM_BANDOL = 11 ; / / CO / ζεστού νερού κάτω – ζεστό ρυθμιστικό κάτω Watter
HM_REQIN = 12 ; / / Clean εισόδου αέρα recuperator – ανάκτηση σαφές εισόδου αέρα
HM_REQOUT = 13 ; / / Έξοδος recuperator σπίτι – heaten ανάρρωση φρέσκο ​​αέρα πλήγμα στο δωμάτιο – θερμοκρασία
HM_NAG = 14 ; / / Θερμοκρασία ελεγχόμενη τρεις – βαλβίδα για θέρμανση και για καλοριφέρ – θερμοκρασία μετά από τρεις τρόπους για αποκοπής θερμοσίφωνα ή άλλο σύστημα θέρμανσης
HM_REQWYC = 15 ; / / Αρχική recuperator εκχύλισμα βρώμικο – ανάκτηση από το σπίτι βρώμικο εξάτμισης temp
HM_BANGORA = 2 ; / / Θέρμανση / ζεστό νερό της δεξαμενής gora – ζεστό νερό TOP ρυθμιστικό
HM_BANSRO = 0 ; / / Θέρμανση / δεξαμενή αποθήκευσης ζεστού νερού μέσα από ένα – ΜΕΣΗ ζεστό νερό ρυθμιστικό
var HADCNames: array [0 . . 15] των εγχόρδων ; / / Τα ονόματα των αισθητήρων (μέτρηση των εισροών) HeatManagera
Βασικές λειτουργίες EhouseLogAnalizer:
init_heat_temperature_names διαδικασία ; / / Αρχικοποίηση και / ή αισθητήρες θερμοκρασίας διαβάσει τα ονόματα των HM
loadnames_rm διαδικασία ; / / Φορτίο ονόματα RoomManagerĂłw (eHouse 1)
readethernetdevs διαδικασία ; / / Διαβάζει τα ονόματα των προγραμμάτων οδήγησης Ethernet (eHouse 2)
get_index_rm λειτουργία (οδός: string): ακέραιος ; / / Επιστρέφει ο δείκτης του πίνακα με την αναζήτηση roomManagerami από το καθεστώς το όνομα του αρχείου
λειτουργία gb (chr: char): boolean ; / / Επιστρέφει μια boolean τιμή για την κατάσταση ανάγνωσης
adc_hm διαδικασία (οδός: string ; Δείκτης: integer) ; / / Μετατρέπει τη συμβολοσειρά με θερμοκρασίες που καταγράφονται από την κατάσταση ανάγνωσης HeatManagera
adc_rm διαδικασία (οδός: string ; Δείκτης: integer) ; / / Μετατρέπει σειρά των αναλογικών μετρήσεων κατά την ανάγνωση της κατάστασης RoomManagerĂłw
GBS λειτουργία (β: boolean): String ; / / Γράψτε boolean σε μορφή κειμένου (0 , 1)
Λειτουργία RMDeviceIndexByName (οδός: string): ακέραιος ; / / Επιστρέφει ο δείκτης του πίνακα με την αναζήτηση του οδηγού RoomManagerami με όνομα
RMGetOutputStateNr λειτουργία (δείκτης: ακέραιες ; OutputNr: ακέραιος αριθμός): boolean ; / / Επιστροφή του RM κατάσταση εξόδου [δείκτη] και ο αριθμός OutputNR εξόδου
RMGetOutputState λειτουργία (δείκτης: ακέραιες ; OutputName: string): boolean ; / / Επιστρέφει το RM κατάσταση εξόδου [δείκτης] και φώναξε OutputName
RMGetInputStateNr λειτουργία (δείκτης: ακέραιες ; InputNr: ακέραιος αριθμός): boolean ; / / Επιστρέφει η κατάσταση της RM εισόδου [δείκτη] και ο αριθμός των InputNr εισόδου
RMGetInputState λειτουργία (δείκτης: ακέραιες ; InputName: string): boolean ; / / Επιστρέφει η κατάσταση της RM εισόδου [δείκτη] και το όνομα του InputName εισόδου
RMGetTempNr λειτουργία (δείκτης: ακέραιες ; InputNr: ακέραιος αριθμός): διπλό ; / / Επιστρέφει το RM θερμοκρασία [δείκτης] και ο αριθμός των InputNr εισόδου
RMGetTemp λειτουργία (δείκτης: ακέραιες ; InputName: string): διπλό ; / / Επιστρέφει το RM θερμοκρασία [δείκτης] και το όνομα του InputName εισόδου
RMGetInvPercent λειτουργία (δείκτης: ακέραιες ; InputName: string): διπλό ; / / Επιστρέφει μια μέτρηση ποσοστό της αντίστροφης 100 % – RM x [index] και το όνομα του InputName εισόδου (σε σχέση με το ρυθμιστή τάσης)
RMGetInvPercentNr λειτουργία (δείκτης: ακέραιες ; InputNr: ακέραιος αριθμός): διπλό ; / / Επιστρέφει μια μέτρηση ποσοστό της αντίστροφης 100 % – RM x [index] και ο αριθμός των InputNr εισόδου (σε σχέση με το ρυθμιστή τάσης)
RMGetPercent λειτουργία (δείκτης: ακέραιες ; InputName: string): διπλό ; / / Επιστρέφει μια μέτρηση ποσοστό του RM [ευρετήριο] και το όνομα του InputName εισόδου (σε σχέση με το ρυθμιστή τάσης)
RMGetPercentNr λειτουργία (δείκτης: ακέραιες ; InputNr: ακέραιος αριθμός): διπλό ; / / Επιστρέφει μια μέτρηση ποσοστό της αντίστροφης 100 % – RM x [index] και το όνομα του InputNr εισόδου (σε σχέση με το ρυθμιστή τάσης)
RMGetDeviceOutputState λειτουργία (Devname: string ; OutputName: string): boolean ; / / Επιστρέφει την κατάσταση του οδηγού εξόδου ονομάζεται Devname και φώναξε OutputName
RMGetDeviceInputState λειτουργία (Devname: string ; InputName: string): boolean ; / / Επιστρέφει την κατάσταση της εισόδου του οδηγού το όνομα και το όνομα του InputName Devname είσοδο
HMGetTemp λειτουργία (InputName: string): διπλό ; / / Επιστροφή θερμοκρασία της μέτρησης εισροών ζήτησε HeatManagera InputName
HMGetTempNr λειτουργία (InputNr: ακέραιος αριθμός): διπλό ; / / Επιστροφή θερμοκρασία της μέτρησης αριθμό εισόδου για HeatManagera InputNr (1 . . 16)
chk_int λειτουργία (st: string): ακέραιος ; / / Ασφαλές να μετατρέψετε ένα string σε ακέραιο
διαδικασία update_status ; / / Ενημέρωση την κατάσταση όλων των οδηγών στον πίνακα (θα πρέπει να εκτελείται περιοδικά)
Test_save διαδικασία ; / / Διαδικασία δοκιμής για να γράψει τα αποτελέσματα σε ένα αρχείο κειμένου για εύκολη
Η προετοιμασία του οδηγού και όλα τα ονόματα που μόλις ξεκινά η εφαρμογή (FormCreate)
διαδικασία TForm1 . FormCreate (Αποστολέας: TObject) ;
αρχίζουν
διαδρομή: getcurrentdir = () ; / / Πάρτε την τρέχουσα πορεία του προγράμματος πρέπει να είναι στον κατάλογο % eHouse_DIR % \ BIN \
διαδρομή: = stringreplace (διαδρομή , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get πορεία της εφαρμογής eHouse – ορίζει την πορεία εφαρμογής eHouse
loadnames_rm ; / / Load ονόματα ελεγκτή ehouse1 – φορτώνει το όνομα τους οδηγούς eHouse 1
init_heat_temperature_names ; / / Load όνομα heatManagera αισθητήρες
readethernetdevs ; / / Load ελεγκτές ethernet ονόματα eHouse – συσκευή ανάγνωσης eHouse τα ονόματά τους 2
timer1 . Διάστημα: = 3000 ; / / Ορισμός διάστημα κυκλική εργασία σε χιλιοστά του δευτερολέπτου – Ρυθμίζει την ώρα για να ξεκινήσει ο έλεγχος κυκλικά δεδομένα
timer1 . Enabled: = true ; / / Έναρξη αυτόματης εργασίες (ενημέρωση της κατάστασής – περιλαμβάνει ο τακτικός έλεγχος των δεδομένων
update_status ; / / Διαβάζει την πρώτη θέση
τέλος ;
Κυκλικές έλεγχο των δεδομένων γίνεται με τη λειτουργία χρονιστή Timer1 (Timer1Timer) τρέχει σε ένα χρονικό διάστημα που καθορίζεται στην παράμετρο χρονιστή Timer1 . Interval (σε χιλιοστά του δευτερολέπτου) .
διαδικασία TForm1 . Timer1Timer (Αποστολέας: TObject) ;
var tf: textfile ;
αρχίζουν
update_status ; / / Μετατρέπει την κατάσταση του οδηγού
Test_save ; / / Για δοκιμή γράφει όλα τα αποτελέσματα σε ένα αρχείο κειμένου
προσπαθήστε / / δημιουργήσει ένα αρχείο δείκτη για την εφαρμογή KillExec . exe που μπορεί να ” παρακολουθώ ” εφαρμογή πριν από συντριβή
AssignFile (tf , μονοπάτι + ‘ logs \ log – analizer . stp ‘ ) ;
/ / Ειδοποίηση WDT Η εφαρμογή συνεργάζεται με σωστά stampfile ” log \ log – analizer . stp ”
ξαναγράψουμε (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
τελικά ;
closefile (tf) ;
τέλος ;
τέλος ;