デコードホームオートメーションコントローラのバイナリ状態 – フリーソースコード

ホームオートメーション , ビル管理 eHouse – デコードマイクロコントローラのステータス
ホームオートメーション LANまたは無線LANに接続されたコントロールパネルで受信された , は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のプロシージャset_rm機能によって行われる:array_of_char ; TCP_INDEX_INC:整数) ;
パラメータは、バッファ状態及びシフト(オフセット)の関数である . バッファは状況から受信したすべてのデータが含まれています . オフセットは、伝送のタイプ(拡張アドレスに依存 , 通常の , 通信アルゴリズムに依存し、他の将来の応用) .
これは、自動的に個別に各コントローラのアレイのステータスを埋め、その後、直接画面タッチ·パネルに自動的にデータまたは更新データを操作することができます .
この機能は、UDPソケットコンポーネントから受信したデータのイベントプロシージャ(TNMUDPで活性化される – onDataReceivedイベントに)バイナリと呼ばれる .
レセプションは次のとおりです。
手順TForm1に . binaryDataReceived(送信者:TComponentは ;
NumberBytes:整数 ; FromIP:文字列 ; ポート:整数) ;
VARはC:配列[0 . . charの1024] ;
MyStream:TMemoryStream ;
始まる
filesystem_statusし、終了している場合 ; / / noのファイルシステムfilesystem_status場合
MyStream:= TMemoryStream . 作る ; / /データのストリームを作成します。
バイナリ . ReadStream(MyStream) ; / /データストリームを読む
MyStream . 記事を読む(c [0] , NumberBytes) ; / /ロード·バッファC
set_rm(C , 1) ; / /バイナリデータに変換し、負荷コントローラeHouse 1のレジスタのrm [インデックス]
Test_save ; / /テスト容易な操作のためにテキストフ​​ァイルに出力を記録
update_panel ; コントロールパネルの/ /ロードデータ
終わり ;
それはあなたが自動的に非することができます – LANまたは無線経由でデータの侵襲的なコレクション – はUDP(User Datagram Protocol)を介してパッケージの放送と無線LAN .
以上、何しても、サーバーへのオープン接続のみポートブロードキャストをリッスンする必要はありません ‘ 6789 ‘ デフォルトまたは他の .
エラーリンク , ネットワーク , ルータは、懸濁液または不特定のソフトウェアエラー(TCPサーバとの通信の場合のように)にはなりません , しかし、データだけ、または適切なサーバのUDPクライアント·アプリケーションに影響を与えることなく、データを更新して消える .

警告! . あなたはeHouseホームオートメーションのためのWindows上での制御ソフトウェアを作成する場合 , それは1つのアプリケーション内のすべてのアルゴリズムを実装する必要がある , そのデータを分析し、すべてのアルゴリズムを実行し、それらを視覚化 . 我々は、同じPC上で2つのUDPリスナーソケットが存在しないことを時々観察 .
ライブラリのバイナリの中で最も重要な変数:
boiler_alarm:ブール=偽 ; / /ボイラーアラームアラームプログラムされた温度を超えた
/ /オーバー – 温度アラームボイラー
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:ブール=偽 ; / /エラーセンサーすぎてかがり火両者の異なる水ジャケット温度センサーを
/ /エラーの暖炉のマントルの温度センサーあまりに大きな違い
recuperator_status:文字列 ; 療養の/ /ステータス , 換気 , 暖房 – 復熱と換気の状態
recu_winter:ブール=偽 ; / /レキュペレータ冬/夏の熱交換器モードの有効/無効 – レキュペレータ冬/夏
recu_manual_amalva:ブール= trueを ; amalvaレキュペレータ用/ /レキュペレータオート/マニュアルモード(内部コントローラの元amalvaによって管理オート , eHouse HeatManagerへマニュアル)/ /
レキュペレータamalva手動/自動
went_cooler:ブール= trueを ; システム療養療養またはON / OFFをGWCの換気やクーラーのオン/オフ/ /ウォータークーラー
went_gwc:ブール=偽 ; オン/オフ/ / GHE(地中熱交換器)サーボモータ – オン/オフの地中熱交換器モーター
went_aux_gwc_fan:ブール=偽 ; 地中熱交換器のスイッチをオン/オフ/ /補助GWCベンチレーター/ファン – 支援GWCファン
bonfire_dgp:ブール=偽 ; / /篝火の熱い空気分配システムを有効/無効 – 暖炉DGPからの熱気がファン流通
ventilation_on:ブール=偽 ; / /換気は現在、オン/オフが働いている – 換気と熱回収を含む
heater_pump:ブール= trueを ; オン/オフを換気するためのヒーターのための/ /ポンプ – ラジエータ用ヒートポンプ暖房と換気回路
three_ways_cutoff:整数= 0 ; / / 3つの方法オフカット方向0 , レベル1を増やす , – レベル1)の回転電気の方向性を減少 – 三方弁
solar_pump:ブール=偽 ; オン/オフ/ /ソーラーポンプ – ソーラーポンプ
boiler_on:ブール=偽 ; / /ボイラー有効/無効 – オン/オフボイラー
boiler_pump:ブール=偽 ; オン/オフボイラーポンプの/ /ステータス – オン/オフボイラーポンプ
boiler_fuel_out:ブール=偽 ; aproximate燃料の/ /ボイラー出(加熱の時間をカウント) – 固形燃料のボイラー(ボイラーの運転時間に基づいて算出される)の推定燃料不足
boiler_power_on:ブール=偽 ; オン/オフ/ /ボイラーsupplayパワー ; – オン/オフボイラ発電
boiler_fuel_supply_override:ブール=偽 ; / /オーバーライドsupplyier燃料ボイラー(eHouse /内部ボイラーコントローラによる制御) – オン/オフ制御された親燃料供給システムのeHouse
bonfire_pump:ブール=偽 ; オン/オフ/ /篝火ポンプの状態 – オン/オフ消防ポンプ
recu_speed:整数= 0 ; / /レキュペレータSpeeed 0 . . 3 – レキュペレータスピード
recu_temperature:整数 ; RECU 0の/ /温度レベル . . amalwa用30C温度レキュペレータ
_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ファイル
コントロールライト