Giải mã tình trạng nhị phân của bộ điều khiển tự động hóa nhà – mã nguồn miễn phí

Home Automation , Quản lý tòa nhà eHouse – Giải mã các trạng thái của bộ điều khiển bộ vi xử lý
Home Automation nhận được bảng điều khiển kết nối với mạng LAN hoặc WiFi , thông qua UDP (User Datagram Protocol) .
Khung tiêu chuẩn tiếp nhận trạng thái dưới dạng nhị phân , với Bộ điều khiển đã được thảo luận trong bài viết ” Tòa nhà thông minh eHouse điều khiển trạng thái của gói ” .
Giải mã khung cần phải phân tích tất cả các bit dữ liệu từ gói .
Ngoài ra , mỗi loại điều khiển:

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

Có một sự khác biệt trong số lượng các yếu tố đầu vào kỹ thuật số , đo lường đầu vào , đầu ra số , dimmers , giám sát chức năng và các thuật toán mà kết quả , rằng các dữ liệu trong các đột biến khung tiêu chuẩn tùy thuộc vào loại của bộ điều khiển .
Điều này dẫn đến sự cần thiết phải giải mã các bit bit cho mỗi loại điều khiển độc lập .
Trong trường hợp việc thực hiện tất cả các loại bộ điều khiển bộ vi xử lý để tạo ra và kiểm tra các khung giải mã thuật toán có thể mất đến 1 tháng .
Để giảm thiểu thời gian này để mức tối thiểu , để tạo điều kiện thuận lợi sẵn sàng để trình bày các thuật toán vay mượn từ eHouse . exe ứng dụng , để tự động giải mã tất cả các thông tin từ bộ điều khiển và dữ liệu tải vào các hồ sơ mẫu của bảng điều khiển cảm ứng (đối với thuốc viên) Windows XP , Vista , 7 , 8 .
Sau khi tự động tải dữ liệu vào các thư viện phần mềm eHouse , với một vài dòng mã , bạn có thể tạo điều khiển hệ thống của riêng eHouse thuật toán của bạn trong một vài phút .
Khung giải mã nhị phân phần mềm của tiêu chuẩn tình trạng eHouse được thực hiện trong thư viện mẫu cho bảng điều khiển . Nó cần phải được thực hiện nhị phân , Tình trạng giải mã trực tiếp từ bộ điều khiển Ethernet mà không eHouse . Exe ứng dụng giám sát .
Giải mã toàn bộ khung (cho các bộ điều khiển vi xử lý eHouse1 RM , EM , HM) được thực hiện bởi các chức năng set_rm thủ tục (str: array_of_char ; TCP_INDEX_INC: số nguyên) ;
các thông số chức năng của tình trạng bộ đệm và chuyển (offset) . Bộ đệm chứa tất cả các dữ liệu nhận được từ tình trạng . Bù đắp phụ thuộc vào các loại hình truyền (địa chỉ mở rộng , bình thường , và các ứng dụng khác trong tương lai phụ thuộc vào các thuật toán thông tin liên lạc) .
Nó sẽ tự động điền vào tình trạng mảng cho mỗi bộ điều khiển cá nhân và sau đó có thể trực tiếp thao tác các dữ liệu hoặc cập nhật dữ liệu tự động trên các tấm màn hình cảm ứng .
Chức năng này được kích hoạt trong thủ tục sự kiện nhận dữ liệu từ các thành phần UDP ổ cắm (TNMUDP – được gọi là nhị phân) trong trường hợp onDataReceived .
Tiếp nhận là như sau:
thủ tục TForm1 . binaryDataReceived (Tên người gửi: TComponent ;
NumberBytes: Integer ; FromIP: String ; Port: Integer) ;
var C: array [0 . . 1024] của char ;
MyStream: TMemoryStream ;
bắt đầu
nếu filesystem_status sau đó thoát ; / / Nếu không có hệ thống tập tin filesystem_status
MyStream: = TMemoryStream . Tạo ; / / Tạo một dòng dữ liệu
nhị phân . ReadStream (MyStream) ; / / Đọc các dòng dữ liệu
MyStream . Đọc (C [0] , NumberBytes) ; / / Tải C đệm
set_rm (C , 1) ; / / Chuyển đổi các dữ liệu nhị phân và tải đăng ký rm [index] cho các bộ điều khiển của eHouse 1
Test_save ; / / Kiểm tra ghi lại các đầu ra vào một tập tin văn bản cho hoạt động dễ dàng
update_panel ; / / Load dữ liệu cho bảng điều khiển
cuối ;
Nó cho phép bạn tự động và không – xâm lấn thu thập dữ liệu qua mạng LAN hoặc Wi – Fi với việc phát sóng gói thông qua UDP (User Datagram Protocol) .
Nhiều hơn những gì không đòi hỏi một kết nối đến máy chủ chỉ lắng nghe trên cổng phát sóng ‘ 6789 ‘ mặc định hoặc các .
Liên kết lỗi , Mạng , router không dẫn đến việc đình chỉ hoặc lỗi phần mềm không xác định (như trong trường hợp của truyền thông với máy chủ TCP) , nhưng biến mất chỉ cần cập nhật các dữ liệu mà không ảnh hưởng đến dữ liệu hoặc UDP máy chủ ứng dụng khách hàng phù hợp .

CẢNH BÁO! . Nếu bạn tạo ra phần mềm điều khiển trên Windows cho eHouse Trang chủ Tự động hóa , nó là cần thiết để thực hiện tất cả các thuật toán trong một ứng dụng , trong đó phân tích các dữ liệu và thực hiện tất cả các thuật toán và hiển thị chúng . Chúng tôi quan sát đôi khi đó 2 ổ cắm nghe UDP không thể tồn tại trên cùng một máy PC .
Các biến số quan trọng nhất trong nhị phân thư viện:
boiler_alarm: Boolean = false ; / / Nồi hơi báo động nhiệt độ báo động được lập trình trên
/ / Over – nhiệt độ báo động lò hơi
bonfire_stat: số nguyên ; / / Bonfire sưởi ấm mức 0 – 7 chế độ nhị phân – tình trạng việc làm cháy
/ / 0 – bắn ra – không làm nóng
/ / 1 – Fire on / chữa cháy => ; ; màu xanh lá cây cấp độ < ; ; tạm thời áo khoác (đèn LED màu xanh nhấp nháy) – hết hạn nhấp nháy màu xanh lá cây
/ / 2 – lửa => ; ; màu xanh lá cây cấp> ; ; = Temp áo khoác> ; ; màu vàng mức – histeressis (LED màu xanh lá cây) – xanh
/ / 3 – lửa => ; ; màu vàng mức – histeressis> ; ; tạm thời áo khoác> ; ; histeressis cấp độ + vàng) (màu xanh lá cây + màu vàng LEDs) – xanh – màu vàng
/ / 4 – lửa => ; ; màu vàng level + histeressis> ; ; tạm thời áo khoác> ; ; đỏ cấp – histeressis (màu vàng) – màu vàng
/ / 5 – vô điều kiện => ; ; đỏ cấp – histeressis < ; ; tạm thời áo khoác < ; ; histeressis cấp + màu đỏ (màu đỏ + màu vàng LEDs) vàng – đỏ
/ / 6 – vô điều kiện => ; ; tạm thời áo khoác> ; ; histeressis level + màu đỏ (màu đỏ LED liên tục) – đỏ
/ / 7 – vô điều kiện => ; ; tạm thời áo khoác> ; ; lửa trại báo động (đèn LED màu đỏ nhấp nháy) ALARM – màu đỏ nhấp nháy
bonfire_sensor_error: Boolean = false ; / / Lỗi cảm biến lửa trại quá nhiều nước khác nhau áo khoác nhiệt độ cảm biến Between Two
/ / Lỗi lò sưởi lớp phủ nhiệt độ cảm biến quá sự khác biệt lớn
recuperator_status: string ; / / Tình trạng hồi phục , thông gió , không khí nóng – người lại sức và tình trạng thông gió
recu_winter: Boolean = false ; / / Chế độ trao đổi nhiệt người lại sức mùa đông / hè kích hoạt / vô hiệu hóa – người lại sức mùa đông / mùa hè
recu_manual_amalva: boolean = true ; / / Người lại sức tự động / bằng tay chế độ cho amalva người lại sức (tự động quản lý bởi nội bộ controler amalva , hướng dẫn sử dụng để eHouse HeatManager) / /
người lại sức amalva dẫn sử dụng / tự động
went_cooler: boolean = true ; / / Làm mát, on / off cho thông gió mát vào hệ thống phục hồi sức khoẻ phục hồi sức khoẻ hoặc GWC ON / OFF
went_gwc: Boolean = false ; / / Ghe (mặt đất bị trao đổi nhiệt) động cơ servo on / off – mặt đất bị trao đổi nhiệt động cơ on / off
went_aux_gwc_fan: Boolean = false ; / / Phụ GWC máy thở / quạt tắc bật / tắt cho trao đổi nhiệt mặt đất – GWC quạt gió
bonfire_dgp: Boolean = false ; / / Bonfire hệ thống phân phối không khí nóng kích hoạt / vô hiệu hóa – Fan phân phối của không khí nóng từ các DGP lò sưởi
ventilation_on: Boolean = false ; / / Thông gió hiện đang làm việc on / off – bao gồm thông gió và thu hồi nhiệt
heater_pump: boolean = true ; / / Máy bơm để nóng cho thông gió on / off – bơm sưởi ấm và mạch thông gió cho bộ tản nhiệt
three_ways_cutoff: integer = 0 ; / / Ba cách cắt hướng 0 off , Tăng cấp 1 , – Giảm cấp 1) hướng của điện luân phiên – van
solar_pump: Boolean = false ; / / Máy bơm năng lượng mặt trời on / off – năng lượng mặt trời máy bơm
boiler_on: Boolean = false ; / / Nồi hơi kích hoạt / vô hiệu hóa – nồi hơi on / off
boiler_pump: Boolean = false ; / / Tình trạng của các máy bơm nồi hơi on / off – nồi hơi bơm on / off
boiler_fuel_out: Boolean = false ; / / Nồi hơi nhiên liệu aproximate (đếm giờ sưởi ấm) – tình trạng thiếu nhiên liệu ước tính cho lò hơi nhiên liệu rắn (tính trên cơ sở giờ hoạt động của lò hơi)
boiler_power_on: Boolean = false ; / / Nồi hơi supplay power on / off ; – Nồi hơi điện on / off
boiler_fuel_supply_override: Boolean = false ; / / Override supplyier nhiên liệu lò hơi (kiểm soát của eHouse / nội bộ nồi hơi điều khiển) – Cha mẹ kiểm soát hệ thống cung cấp nhiên liệu eHouse on / off
bonfire_pump: Boolean = false ; / / Bonfire bơm trạng thái on / off – cháy máy bơm on / off
recu_speed: integer = 0 ; / / Người lại sức Speeed 0 . . 3 – người lại sức tốc độ
recu_temperature: số nguyên ; / / Nhiệt độ mức độ RECU 0 . . 30C nhiệt độ người lại sức cho amalwa
_recu_mode: string = ‘ ‘ ; / / Phục hồi sức khoẻ ở chế độ văn bản như HEatManager bảng điều khiển (eHouse . exe) – người lại sức chế độ như eHouse ứng dụng bảng điều khiển HeatMAnagerem . exe
đã đi: chuỗi ; / / Tiêu đề thông gió tình trạng như là một bảng điều khiển HeatManager (eHouse . exe) – thông gió tình trạng tương tự như trong HeatManager bảng điều khiển của eHouse . exe
nồi hơi , năng lượng mặt trời: string ; / / Nồi hơi , Năng lượng mặt trời HeatManager tình trạng văn bản như là một Control Panel (eHouse . exe) – tình trạng của lò hơi và bảng điều khiển năng lượng mặt trời (HeatManager) eHouse . exe
Komi: string ; / / Tiêu đề lửa trại trạng thái như là một bảng điều khiển HeatManager (eHouse . exe) – tình trạng như eHouse lửa ứng dụng bảng điều khiển heatmanager . exe
Kiểm soát Lights