Penyahkodan status perduaan pengawal automasi rumah – kod sumber percuma

Automasi Utama , Pengurusan Bangunan eHouse – Penyahkodan status pengawal mikropemproses
Automasi Utama diterima oleh panel kawalan disambungkan ke LAN atau WiFi , melalui UDP (User Datagram Protocol) .
Rangka standard penerimaan status dalam bentuk perduaan , dengan Pengawal telah dibincangkan dalam artikel ” Bangunan Pintar eHouse pengawal status pakej ” .
Penyahkodan bingkai perlu untuk menganalisis setiap bit data dari pek .
Di samping itu , setiap jenis pengawal:

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

Mempunyai perbezaan dalam jumlah input digital , pengukuran input , output digital , dimmers , pemantauan fungsi dan algoritma yang mengakibatkan , bahawa data dalam bermutasi bingkai standard bergantung kepada jenis pengawal .
Ini menyebabkan keperluan untuk penyahkodan bit demi sedikit bagi setiap jenis pengawal bebas .
Dalam kes pelaksanaan semua jenis pengawal mikropemproses untuk mencipta dan menguji algoritma bingkai penyahkodan mungkin mengambil masa sehingga 1 bulan .
Untuk meminimumkan masa ini kepada minimum , untuk memudahkan bersedia untuk membentangkan algoritma yang dipinjam dari eHouse . permohonan exe , secara automatik decode semua maklumat dari pengawal dan data beban ke dalam rekod template panel sentuh (untuk tablet) Windows XP , Vista , 7 , 8 .
Selepas secara automatik memuatkan data ke dalam perpustakaan perisian eHouse , dengan beberapa baris kod , anda boleh membuat eHouse sistem algoritma kawalan anda sendiri dalam beberapa minit .
Frame Perduaan perisian penyahkodan status standard eHouse dilaksanakan di perpustakaan template untuk panel . Ia perlu dilakukan binari , langsung status penyahkodan daripada pengawal Ethernet tanpa eHouse . Exe permohonan penyeliaan .
Penyahkodan rangka keseluruhan (untuk pengawal mikropemproses eHouse1 RM , EM , HM) yang dijalankan oleh fungsi set_rm prosedur (str: array_of_char ; TCP_INDEX_INC: integer) ;
parameter fungsi status penampan dan anjakan (mengimbangi) . Penimbal mengandungi semua data yang diterima daripada status . Ofset bergantung kepada jenis penghantaran (alamat dilanjutkan , biasa , dan lain-lain aplikasi masa depan bergantung kepada algoritma komunikasi) .
Ia secara automatik mengisi status array untuk pengawal setiap individu dan kemudian terus boleh memanipulasi data atau mengemaskini data secara automatik pada panel skrin sentuh .
Fungsi ini diaktifkan dalam prosedur peristiwa menerima data daripada komponen soket UDP (TNMUDP – dipanggil binari) sekiranya onDataReceived .
Penerimaan adalah seperti berikut:
prosedur TForm1 . binaryDataReceived (sender: TComponent ;
NumberBytes: Integer ; FromIP: String ; Port: Integer) ;
var C: array [0 . . 1024] daripada char ;
MyStream: TMemoryStream ;
memulakan
jika filesystem_status kemudian keluar ; / / Jika tiada sistem fail filesystem_status
MyStream: = TMemoryStream . Buat ; / / Buat aliran data
binari . ReadStream (MyStream) ; / / Baca aliran data
MyStream . Baca (C [0] , NumberBytes) ; / / Beban C penampan
set_rm (C , 1) ; / / Menukarkan data binari dan beban daftar rm [indeks] untuk pengawal eHouse 1
Test_save ; / / Ujian merekodkan output ke fail teks untuk operasi mudah
update_panel ; / / Beban data untuk panel kawalan
akhir ;
Ia membolehkan anda secara automatik dan bukan – koleksi invasif data melalui LAN atau Wi – Fi dengan siaran pakej melalui UDP (User Datagram Protocol) .
Apa lagi yang tidak memerlukan sambungan terbuka kepada pelayan hanya mendengar siaran pelabuhan ‘ 6789 ‘ lalai atau lain-lain .
Pautan Kesilapan , Rangkaian , router tidak mengakibatkan penggantungan atau kesilapan perisian yang tidak ditentukan (seperti dalam kes komunikasi dengan pelayan TCP) , tetapi hilang hanya mengemaskini data tanpa menjejaskan data atau pelayan yang sesuai UDP pelanggan permohonan .

AMARAN! . Jika anda mencipta perisian kawalan pada Windows untuk eHouse Automasi Utama , ia adalah perlu untuk melaksanakan algoritma semua dalam satu permohonan , yang menganalisis data dan melakukan semua algoritma dan menggambarkan mereka . Kami kadang-kadang diperhatikan bahawa 2 UDP pendengar soket tidak boleh wujud pada PC yang sama .
Pembolehubah yang paling penting dalam binari perpustakaan:
boiler_alarm: Boolean = palsu ; / / Dandang penggera penggera suhu diprogramkan atas
/ / Lebih – suhu penggera dandang
bonfire_stat: integer ; / / Unggun api pemanasan tahap 0 – 7 untuk mod perduaan – Status pekerjaan kebakaran
/ / 0 – mencedera – tidak memanaskan
/ / 1 – Kebakaran / pemadam => ; ; tahap hijau < ; ; temp jaket (hijau LED berkelip) – tamat berkelip hijau
/ / 2 – kebakaran di => ; ; tahap hijau> ; ; = Suhu jaket> ; ; tahap kuning – histeressis (hijau LED) – hijau
/ / 3 – kebakaran di => ; ; tahap kuning – histeressis> ; ; jaket temp> ; ; tahap histeressis + kuning) (hijau + kuning LED) – hijau – kuning
/ / 4 – kebakaran di => ; ; tahap kuning + histeressis> ; ; jaket temp> ; ; tahap merah – histeressis (kuning) – kuning
/ / 5 – bersyarat => ; ; tahap merah – histeressis < ; ; jaket menggoda < ; ; histeressis tahap + merah (merah + kuning LED) kuning – merah
/ / 6 – bersyarat => ; ; jaket temp> ; ; tahap histeressis + merah (merah LED berterusan) – merah
/ / 7 – bersyarat => ; ; jaket temp> ; ; unggun api penggera (LED merah berkelip) ALARM – berkelip merah
bonfire_sensor_error: Boolean = palsu ; / / Sensor Ralat unggun api terlalu banyak yang berbeza suhu air sensor jaket Antara Dua
/ / Perapian Ralat suhu sensor mantel perbezaan terlalu besar
recuperator_status: string ; / / Status pemulihan , pengudaraan , pemanas udara – status recuperator dan pengudaraan
recu_winter: Boolean = palsu ; / / Recuperator musim sejuk / musim panas penukar haba mod membolehkan / kurang upaya – recuperator musim sejuk / panas
recu_manual_amalva: boolean = true ; / / Recuperator auto / manual mod untuk amalva recuperator (auto diuruskan oleh Controler amalva dalaman , manual untuk eHouse HeatManager) / /
recuperator amalva pengguna / auto
went_cooler: boolean = true ; / / Air sejuk on / off untuk pengudaraan atau sejuk dalam pemulihan pemulihan sistem atau GWC ON / OFF
went_gwc: Boolean = palsu ; Servomotor / / GHE (tanah penukar haba) on / off – tanah penukar haba motor on / off
went_aux_gwc_fan: Boolean = palsu ; / / Bantuan GWC ventilator / kipas on / off suis untuk penukar haba tanah – Kipas GWC dibantu
bonfire_dgp: Boolean = palsu ; / / Unggun api udara panas sistem pengagihan membolehkan / kurang upaya – Fan pengedaran udara panas dari perapian DGP
ventilation_on: Boolean = palsu ; / / Pengudaraan kini bekerja on / off – termasuk pengudaraan dan pemulihan haba
heater_pump: boolean = true ; / / Pam untuk pemanas untuk pengudaraan on / off – pemanasan pam dan litar pengudaraan untuk radiator
three_ways_cutoff: integer = 0 ; / / Tiga cara potong arah 0 off , Meningkatkan tahap 1 , – Pengurangan tahap 1) arah putaran elektro – injap cara
solar_pump: Boolean = palsu ; / / Pam Suria on / off – pam solar
boiler_on: Boolean = palsu ; / / Dandang membolehkan / kurang upaya – dandang on / off
boiler_pump: Boolean = palsu ; / / Status pam dandang on / off – Pam dandang on / off
boiler_fuel_out: Boolean = palsu ; / / Dandang bahan api aproximate (mengira jam pemanasan) – kekurangan bahan api yang dianggarkan untuk dandang bahan api pepejal (dikira berdasarkan jam operasi dandang)
boiler_power_on: Boolean = palsu ; / Supplay / Dandang kuasa on / off ; – Kuasa Dandang on / off
boiler_fuel_supply_override: Boolean = palsu ; / / Override supplyier bahan api dandang (kawalan oleh eHouse / dandang pengawal dalaman) – Ibu Bapa bahan api dikawal sistem penyampaian eHouse on / off
bonfire_pump: Boolean = palsu ; / Pam / unggun api status on / off – Pam kebakaran on / off
recu_speed: integer = 0 ; / / Recuperator Speeed 0 . . 3 – recuperator kelajuan
recu_temperature: integer ; / / Suhu tahap RECU 0 . . 30C suhu recuperator untuk amalwa
_recu_mode: string = ‘ ‘ ; Mod / / pemulihan dalam teks kerana ia HeatManager panel kawalan (eHouse . exe) – mod recuperator sebagai panel kawalan HeatMAnagerem eHouse permohonan . exe
pergi: string ; / Pengalihudaraan / Teks status sebagai panel Kawalan HeatManager (eHouse . exe) – status pengudaraan yang sama seperti dalam panel HeatManager eHouse . exe
dandang , suria: string ; / / Dandang , Teks Suria HeatManager status sebagai Panel Kawalan (eHouse . exe) – status dandang dan kawalan panel solar (HeatManager) eHouse . exe
Komi: string ; / Unggun api / Teks status sebagai panel Kawalan HeatManager (eHouse . exe) – status sebagai kawalan kebakaran panel HeatManager eHouse permohonan . exe
Kawalan Lampu