Αποκωδικοποίηση η δυαδική κατάσταση των ελεγκτών οικιακού αυτοματισμού – ελεύθερο πηγαίο κώδικα

Αυτοματισμού , Διαχείριση Κτιρίων eHouse – Αποκωδικοποιώντας το καθεστώς των ελεγκτών μικροεπεξεργαστή
Αυτοματισμού έλαβε από τον πίνακα ελέγχου συνδεδεμένο με το LAN ή WiFi , μέσω UDP (User Datagram Protocol) .
Η τυπική κατάσταση λήψης καρέ σε δυαδική μορφή , με Ελεγκτές συζητήθηκε στο άρθρο ” Ευφυής eHouse Κτίριο ελεγκτή πακέτο κατάστασης ” .
Αποκωδικοποιώντας το πλαίσιο πρέπει να αναλύσουμε κάθε κομμάτι των δεδομένων από το πακέτο .
Εξάλλου , κάθε τύπο του ελεγκτή:

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

Ρίξτε μια διαφορά στο ποσό των ψηφιακών εισόδων , είσοδοι μέτρησης , ψηφιακές εξόδους , dimmers , λειτουργίες παρακολούθησης και αλγορίθμων που προκύπτουν , ότι τα δεδομένα στο πρότυπο μεταλλάσσονται πλαισίου ανάλογα με τον τύπο του ελεγκτή .
Αυτό οδηγεί στην ανάγκη για την αποκωδικοποίηση του λίγο-λίγο για κάθε τύπο ελεγκτή ανεξάρτητα .
Στην περίπτωση της εφαρμογής όλων των τύπων των ελεγκτών μικροεπεξεργαστή για να δημιουργήσετε και να ελέγξετε το πλαίσιο αποκωδικοποίησης αλγόριθμος μπορεί να διαρκέσει έως και 1 μήνα .
Για να ελαχιστοποιηθεί αυτή τη φορά σε ένα ελάχιστο , να διευκολύνει έτοιμοι να παρουσιάσουμε τον αλγόριθμο που δανείστηκε από eHouse . εφαρμογή exe , να αποκωδικοποιήσει αυτόματα όλες τις πληροφορίες από τον υπεύθυνο της επεξεργασίας των δεδομένων και το φορτίο στα αρχεία πρότυπο της οθόνης αφής (για ταμπλέτες) των Windows XP , Μακρινή θέα , 7 , 8 .
Μετά φορτώνει αυτόματα τα δεδομένα στις βιβλιοθήκες λογισμικού eHouse , με λίγες γραμμές κώδικα , μπορείτε να δημιουργήσετε το δικό σύστημα ελέγχου eHouse αλγόριθμοι σας μέσα σε λίγα λεπτά .
Δυαδική Πλαίσιο λογισμικό αποκωδικοποίησης του προτύπου κατάσταση eHouse υλοποιείται στη βιβλιοθήκη πρότυπο για τον πίνακα . Θα πρέπει να γίνει δυαδικό , για την άμεση αποκωδικοποίηση από το καθεστώς Ethernet ελεγκτές χωρίς eHouse . Exe την εποπτεία εφαρμογής .
Αποκωδικοποίηση ολόκληρο το πλαίσιο (για τους ελεγκτές μικροεπεξεργαστή eHouse1 RM , EM , ΗΜ) διεξάγεται με τη συνάρτηση set_rm διαδικασία (str: array_of_char ; TCP_INDEX_INC: integer) ;
παράμετροι είναι λειτουργίες του ρυθμιστικού καθεστώτος και μετατόπιση (offset) . Το ρυθμιστικό διάλυμα περιέχει όλα τα δεδομένα που έλαβε από το καθεστώς . Offset εξαρτάται από τον τύπο της μετάδοσης (εκτεταμένη διεύθυνση , κανονικός , και άλλες μελλοντικές εφαρμογές εξαρτάται από αλγόριθμους επικοινωνίας) .
Γεμίζει αυτόματα την κατάσταση των συστοιχιών για κάθε ελεγκτή ξεχωριστά και στη συνέχεια μπορεί να χειριστεί άμεσα τα δεδομένα ή δεδομένα ενημέρωσης αυτόματα στο πάνελ οθόνη αφής .
Αυτή η λειτουργία ενεργοποιείται σε περίπτωση διαδικασίας λήψης δεδομένων από συστατικό UDP socket (TNMUDP – που ονομάζεται δυαδική) σε περίπτωση onDataReceived .
Η υποδοχή έχει ως εξής:
διαδικασία TForm1 . binaryDataReceived (Αποστολέας: TComponent ;
NumberBytes: Ακέραιος ; FromIP: String ; Λιμάνι: Integer) ;
var C: array [0 . . 1024] του char ;
MyStream: TMemoryStream ;
αρχίζουν
αν filesystem_status τότε βγείτε ; / / Αν δεν υπάρχει αρχείο συστήματος filesystem_status
MyStream: = TMemoryStream . Δημιουργία ; / / Δημιουργήστε μια ροή δεδομένων
δυαδικό . ReadStream (MyStream) ; / / Διαβάστε τη ροή δεδομένων
MyStream . Διαβάστε (C [0] , NumberBytes) ; / / Φορτώνει το ρυθμιστικό C
set_rm (C , 1) ; / / Μετατρέπει τα δυαδικά δεδομένα και τα φορτία των μητρώων rm [δείκτη] για τους ελεγκτές eHouse 1
Test_save ; / / Δοκιμή καταγράφουν την έξοδο σε ένα αρχείο κειμένου για εύκολη λειτουργία
update_panel ; / / Φόρτωση δεδομένων για τον πίνακα ελέγχου
τέλος ;
Σας επιτρέπει την αυτόματη και μη – επεμβατική συλλογή των δεδομένων μέσω LAN ή Wi – Fi με την εκπομπή μέσω του πακέτου UDP (User Datagram Protocol) .
Τι περισσότερο δεν απαιτεί μια ανοικτή σύνδεση με το διακομιστή ακούει μόνο για την εκπομπή λιμάνι ‘ 6789 ‘ αδυναμίας πληρωμής ή άλλου .
Λάθη σύνδεσμο , Δίκτυο , δρομολογητές δεν οδηγούν σε ένα εναιώρημα ή απροσδιόριστο σφάλματα του λογισμικού (όπως στην περίπτωση της επικοινωνίας με το διακομιστή TCP) , αλλά εξαφανίζεται μόλις ενημερώσετε τα δεδομένα χωρίς να επηρεάζει τα δεδομένα ή κατάλληλο UDP server εφαρμογή πελάτη .

ΠΡΟΣΟΧΗ! . Αν έχετε δημιουργήσει λογισμικό ελέγχου στα Windows για Αυτοματισμού Αρχική eHouse , είναι αναγκαία για την εφαρμογή όλων των αλγορίθμων σε μία εφαρμογή , η οποία αναλύει τα δεδομένα και εκτελεί όλες τις αλγορίθμους και να απεικονίσει τους . Παρατηρήσαμε μερικές φορές ότι τα 2 υποδοχή ακροατή UDP δεν μπορεί να υπάρξει στον ίδιο υπολογιστή .
Οι σημαντικότερες μεταβλητές στο δυαδικό βιβλιοθήκης:
boiler_alarm: Boolean = false ; / / Λέβητα συναγερμού συναγερμού προγραμματισμένη θερμοκρασία πάνω από
/ / Πάνω από – θερμοκρασία λέβητα συναγερμού
bonfire_stat: ακέραιος ; / / Επίπεδο θέρμανσης Φωτιά 0 – 7 για την κατάσταση δυαδικής – απασχόλησης φωτιά κατάστασης
/ / 0 – φωτιά μακριά – δεν θερμαίνει
/ / 1 – Φωτιά / πυρόσβεσης => ; ; πράσινο επίπεδο < ; ; temp σακάκι (πράσινο LED αναβοσβήνει) – λήγει αναβοσβήνει με πράσινο χρώμα
/ / 2 – πυρκαγιά σε => ; ; πράσινο επίπεδο> ; ; = Σακάκι Θερμοκρασία> ; ; κίτρινο επίπεδο – histeressis (πράσινο LED) – πράσινος
/ / 3 – πυρκαγιά σε => ; ; κίτρινο επίπεδο – histeressis> ; ; σακάκι temp> ; ; histeressis επίπεδο + κίτρινο) (+ κίτρινο πράσινο LED) – πράσινος – κίτρινος
/ / 4 – πυρκαγιά σε => ; ; + κίτρινο επίπεδο histeressis> ; ; σακάκι temp> ; ; κόκκινο επίπεδο – histeressis (κίτρινο) – κίτρινος
/ / 5 – άνευ όρων => ; ; κόκκινο επίπεδο – histeressis < ; ; σακάκι temp < ; ; histeressis επίπεδο + κόκκινο (κόκκινο + κίτρινο LED) κίτρινο – κόκκινος
/ / 6 – άνευ όρων => ; ; σακάκι temp> ; ; histeressis επίπεδο + κόκκινο (κόκκινο LED σταθερά) – κόκκινος
/ / 7 – άνευ όρων => ; ; σακάκι temp> ; ; φωτιά συναγερμού (κόκκινο LED αναβοσβήνει) ALARM – αναβοσβήνει κόκκινο
bonfire_sensor_error: Boolean = false ; / / Σφάλμα φωτιά αισθητήρες πάρα πολύ διαφορετικούς αισθητήρες θερμοκρασίας του νερού σακάκι μεταξύ δύο
/ / Σφάλμα αισθητήρες θερμοκρασίας τζάκι μανδύα πολύ μεγάλη διαφορά
recuperator_status: string ; / / Κατάσταση της ανάρρωσης , αερισμός , θέρμανση του αέρα – συλλέκτης και εξαερισμού κατάσταση
recu_winter: Boolean = false ; / / Recuperator χειμώνα / καλοκαίρι λειτουργία εναλλάκτη θερμότητας ενεργοποιηθεί / απενεργοποιηθεί – recuperator χειμώνα / καλοκαίρι
recu_manual_amalva: boolean = true ; / / Recuperator αυτόματη / χειροκίνητη λειτουργία για Amalva recuperator (auto διαχειρίζεται η εσωτερική controler Amalva , εγχειρίδιο για να eHouse HeatManager) / /
recuperator Amalva χειροκίνητη / αυτόματη
went_cooler: boolean = true ; / / Το νερό ψύξης on / off για τον εξαερισμό ή πιο δροσερές στην ανάκτηση ανάκτηση του συστήματος ή GWC ON / OFF
went_gwc: Boolean = false ; / / GHE (έδαφος εναλλάκτη θερμότητας) Σερβοκινητήρας on / off – γείωση του μοτέρ εναλλάκτη θερμότητας on / off
went_aux_gwc_fan: Boolean = false ; / / Βοηθητικό GWC ανεμιστήρα / ανεμιστήρας διακόπτη on / off για το γεωεναλλάκτη – GWC τη βοήθεια ανεμιστήρα
bonfire_dgp: Boolean = false ; / / Bonfire καυτό σύστημα διανομής αέρα ενεργοποιείται / απενεργοποιείται – Fan διανομή του θερμού αέρα από το τζάκι DGP
ventilation_on: Boolean = false ; / / Εξαερισμού εργάζεται αυτή τη στιγμή on / off – περιλαμβάνουν εξαερισμού και ανάκτησης θερμότητας
heater_pump: boolean = true ; / / Αντλίας για θέρμανση για τον εξαερισμό on / off – θέρμανσης αντλία και το κύκλωμα εξαερισμού για καλοριφέρ
three_ways_cutoff: integer = 0 ; / / Τρεις τρόποι κατεύθυνση αποκοπής από 0 , Αύξηση επιπέδου 1 , – Μείωση επίπεδο 1) την κατεύθυνση της περιστροφής electro – βαλβίδα
solar_pump: Boolean = false ; / / Ηλιακή αντλία on / off – ηλιακή αντλία
boiler_on: Boolean = false ; / / Λέβητα ενεργοποιείται / απενεργοποιείται – λέβητα on / off
boiler_pump: Boolean = false ; / / Κατάσταση της αντλίας λέβητα on / off – αντλία λέβητα on / off
boiler_fuel_out: Boolean = false ; / / Λέβητα από καύσιμα aproximate (μετράνε ώρες θέρμανσης) – Εκτιμάται ελλείψεις καυσίμων για λέβητα καύσεως στερεών καυσίμων (υπολογιζόμενη επί τη βάσει των ωρών λειτουργίας του λέβητα)
boiler_power_on: Boolean = false ; / / Λέβητα supplay δύναμη on / off ; – Λέβητας εξουσία on / off
boiler_fuel_supply_override: Boolean = false ; / / Παράκαμψη λέβητα καυσίμου supplyier (έλεγχος από eHouse / εσωτερικό ελεγκτή του λέβητα) – Μητρική ελεγχόμενη παράδοση καυσίμων eHouse σύστημα on / off
bonfire_pump: Boolean = false ; / / Bonfire κατάσταση αντλία on / off – πυροσβεστική αντλία on / off
recu_speed: integer = 0 ; / / Recuperator Speeed 0 . . 3 – recuperator ταχύτητα
recu_temperature: ακέραιος ; / / Επίπεδο θερμοκρασίας του reçu 0 . . 30C θερμοκρασία recuperator για amalwa
_recu_mode: string = ‘ ‘ ; / / Ανάκτηση λειτουργία στο κείμενο, δεδομένου ότι HeatManager πίνακα ελέγχου (eHouse . exe) – recuperator λειτουργία ως τον πίνακα ελέγχου eHouse εφαρμογή HeatMAnagerem . exe
πήγε: string ; / / Κείμενο κατάσταση εξαερισμού ως ομάδα ελέγχου HeatManager (eHouse . exe) – κατάσταση εξαερισμού το ίδιο όπως στον πίνακα του HeatManager eHouse . exe
λέβητας , ηλιακή: string ; / / Λέβητα , Ηλιακή κατάσταση HeatManager κείμενο ως Πίνακα Ελέγχου (eHouse . exe) – κατάσταση του λέβητα και το ηλιακό πάνελ ελέγχου (HeatManager) eHouse . exe
Κώμη: string ; / / Κείμενο φωτιά κατάσταση ως ομάδα ελέγχου HeatManager (eHouse . exe) – καθεστώς ελέγχου πυρκαγιάς πίνακα εφαρμογή eHouse HeatManager . exe
Φώτα Ελέγχου