家庭自動化控制器解碼的二進制狀態 – 免費的源代碼

家庭自動化 , 大廈管理 eHouse – 解碼微處理器控制器的狀態
家庭自動化 收到連接到局域網或無線的控制面板 , 通過UDP(User Datagram Protocol,用戶數據報協議) .
標準幀接收狀態以二進制形式 , 同 控制器 本文中討論的 ” 智能建築eHouse控制器的狀態包 ” .
解碼幀需要分析每一個位的數據包 .
此外 , 每種類型的控制器:

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

在數字輸入量有差別 , 測量輸入 , 數字輸出 , 調光器 , 監控功能和算法, , 根據控制器的類型的數據在標準幀發生變異 .
這導致在需要為每個類型的控制器獨立地進行解碼的比特由位 .
在實施所有類型的微處理器控制器來創建和測試幀的解碼算法的情況下,可能需要長達1個月 .
為了盡量減少這種時間降至最低 , ,方便準備提出的算法借用eHouse . exe應用程序 , 能夠自動解碼控制器和負載數據的所有信息到模板中記錄的觸摸屏(片)的Windows XP , 遠景 , 7 , 8 .
後自動加載的的eHouse軟件庫的數據 , 幾行代碼 , 你可以在幾分鐘之內創建自己的控制算法eHouse系統 .
二進制的幀解碼軟件的eHouse狀態標準模板庫面板中實現 . 需要做二進制 , 沒有eHouse的以太網控制器,可直接解碼狀態 . exe應用程序監督 .
解碼整個幀(微處理器控制器eHouse1 RM , EM , HM)是通過(參數str:array_of_char的程序set_rm功能 ; TCP_INDEX_INC:整數) ;
參數的函數的緩衝區狀態和偏移(位移) . 緩衝區中包含的所有接收到的數據從狀態 . 偏移量取決於傳輸類型(擴展模式的地址 , 正常 , 和其他未來通信算法依賴於應用程序) .
它會自動填充陣列狀態為每一個單獨的控制器,可以直接在屏幕上觸摸面板操作的數據或更新數據自動 .
此功能被激活時,在事件過程中接收數據從UDP socket組件(TNMUDP – 稱為二進制)的事件onDataReceived .
接待處如下:
程序TForm1 . binaryDataReceived(發件人:TComponent ;
NumberBytes:整數 ; FromIP:字符串 ; 端口:整數) ;
VAR C:數組[0 . . 1024]的字符 ;
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 – 廣播包的網絡連接,並通過UDP(User Datagram Protocol,用戶數據報協議) .
更沒有什麼只需要一個開放的連接到服務器偵聽的端口上廣播 ‘ 6789 ‘ 違約或其他 .
錯誤鏈接 , 網絡 , 的路由器不會導致暫停或不明軟件錯誤(如與TCP服務器通信的情況下) , 但消失只是更新數據,而不影響數據或合適的服務器UDP客戶端應用程序 .

警告! . 如果您創建eHouse家庭自動化控制軟件在Windows , 它是要落實在一個應用程序中的所有算法 , 對數據進行分析,並執行所有的算法和可視化 . 有時,我們觀察到2個UDP監聽套接字不能存在於同一台PC .
最重要的變量庫中的二進制文件:
boiler_alarm:布爾= FALSE ; / /鍋爐報警器報警器設定的溫度以上
/ /以上 – 溫度報警鍋爐
bonfire_stat:整數 ; / /篝火取暖級別為0 – 7二進制模式 – 就業狀況火災
/ / 0 – 火了 – 不熱
/ / 1 – 消防/滅火=> ; ; 綠化水平< ; ; 溫度夾克(綠色LED閃爍) – 到期呈綠色閃爍
/ / 2 – 火=> ; ; 綠化水平> ; ; =溫度夾克> ; ; 黃平 – histeressis(綠色LED) – 綠色
/ / 3 – 火=> ; ; 黃平 – histeressis> ; ; 溫度夾克> ; ; histeressis水平+黃色)(綠色+黃色LED) – 綠色 – 黃
/ / 4 – 火=> ; ; 黃平+ histeressis> ; ; 溫度夾克> ; ; 紅色等級 – histeressis(黃色) – 黃
/ / 5 – 無條件=> ; ; 紅色等級 – histeressis < ; ; 溫度夾克< ; ; histeressis級+紅色(紅色+黃色LED)黃色 – 紅色
/ / 6 – 無條件=> ; ; 溫度夾克> ; ; histeressis級+紅色(紅色LED恆流) – 紅色
/ / 7 – 無條件=> ; ; 溫度夾克> ; ; “篝火報警(紅色LED閃爍)ALARM – 紅色閃爍
bonfire_sensor_error:布爾= FALSE ; / /錯誤傳感器篝火太多不同的水夾套溫度傳感器,兩個
/ /錯誤壁爐地幔溫度傳感器太大的區別
recuperator_status:字符串 ; / /狀態的休養 , 通風 , 空氣加熱 – 換熱器和通風狀況
recu_winter:布爾= FALSE ; / /冬季/夏季換熱器換熱器模式啟用/禁用 – 換熱器冬季/夏季
recu_manual_amalva:布爾=真 ; / /換熱器自動/手動模式為amalva換熱器的(內部控制鍵盤amalva自動管理 , 手冊,以eHouse HeatManager)/ /
換熱器amalva手動/自動
went_cooler:布爾=真 ; / /水冷卻器通風或冷卻器系統中的休養療養或GWC ON / OFF ON / OFF
went_gwc:布爾= FALSE ; / / GHE(地埋管換熱器)伺服電機開/關 – 地埋管換熱器電機開/關
went_aux_gwc_fan:布爾= FALSE ; / /輔助的GWC呼吸/地下埋管換熱器風扇ON / OFF開關 – GWC風扇
bonfire_dgp:布爾= FALSE ; / /篝火熱空氣分配系統啟用/禁用 – 範分佈的熱空氣從壁爐DGP
ventilation_on:布爾= FALSE ; / /通風系統目前正在開/關 – 包括通風和熱回收
heater_pump:布爾=真 ; / /泵,加熱器,通風開/關 – 熱泵供熱和通風迴路散熱器
three_ways_cutoff:整數= 0 ; / /三種方式截止方向0關閉 , 提高1級 , – 降低級別1)的方向的旋轉電 – 單向閥
solar_pump:布爾= FALSE ; / /太陽能水泵的開/關 – 太陽能水泵
boiler_on:布爾= FALSE ; / /鍋爐啟用/禁用 – 鍋爐的開/關
boiler_pump:布爾= FALSE ; / /狀態的鍋爐給水泵的開/關 – 鍋爐給水泵的開/關
boiler_fuel_out:布爾= FALSE ; / /鍋爐的燃料aproximate(計算加熱時間) – 固體燃料的鍋爐(小時的鍋爐的操作的基礎上,計算出的估計的燃料短缺)
boiler_power_on:布爾= FALSE ; / /鍋爐supplay的電源開/關 ; – 鍋爐電源開/關
boiler_fuel_supply_override:布爾= FALSE ; / /覆蓋supplyier的燃料鍋爐(通過的eHouse /內部鍋爐控制器的控制) – 家長控制燃料輸送系統eHouse開/關
bonfire_pump:布爾= FALSE ; / /篝火泵的開/關狀態 – 消防泵的開/關
recu_speed:整數= 0 ; / /換熱器Speeed的0 . . 3 – 換熱器的速度
recu_temperature:整數 ; / /溫度的RECU 0 . . 30C溫度換熱器amalwa
_recu_mode:字符串= ‘ ‘ ; / /療養模式,文本,因為它HEatManager控制面板(eHouse . EXE) – 換熱器模式的控制面板的應用HeatMAnagerem eHouse . exe文件
去串 ; / /文本通風狀態作為一個HeatManager的控制面板(eHouse . EXE) – 通風狀況eHouse HeatManager面板一樣 . exe文件
鍋爐 , 太陽能:字符串 ; / /鍋爐 , 太陽能的文字HeatManager地位的控制面板(eHouse . EXE) – 狀態的鍋爐和太陽能電池板的的控制(HeatManager)eHouse . exe文件
科米:字符串 ; / /文本篝火狀態作為一個HeatManager的控制面板(eHouse . EXE) – 消防控制面板的應用heatmanager eHouse地位 . exe文件
控制燈