eHouse 1 – ホームオートメーション – バイナリ形式でのコントローラの状態

eHouse ホームオートメーション , ビル管理 バージョン1 – システムコントローラのステータスのフレーム ホームオートメーション .
完全に機能を作成する , 可視化を必要とするコントロールパネルのための効率的な独自のソフトウェアは、バイナリ形式で直接デコードeHouse 1ドライバの状態を実装する必要があります . 通常の動作モードまたは拡張アドレス(Extended_address)の選択に応じて、 , ドライバのステータスを送信するフレーム(カッコ内の拡張モードのアドレスの違いをマーク)は次のとおりです。 .
このモードはCommManagerドライバの監督の下で働くために必要とイベント外でメッセージの宛先アドレスを送信している , 宛先デバイスに自身のアドレスは(手のイベントを受信するために、送信者に伝えることができます – 振り) .
インターフェイスRS場合 – 485は間違いなくドライバに接続するための直接的な試みをすることはお勧めしませ , いくつかのコマンドを送信するような洗浄プログラムメモリ(ファームウェア)が発生することがあります コントローラ 彼らの人生を終わらせることができている .
他のコマンドまたはRS内のランダム信号 – 485は、システムの安定性を損なう、または間違いなく彼の仕事が遅くなる場合があります .
ネイティブeHouse オートメーション·コントローラ プロデューサアプリケーションの監督の下で動作するはずです ” eHouse . exeファイル ” .
セキュリティのために , あなたは、アプリケーションのeHouseを介してそれらに接続しなくても、ドライバの状態を読み取ることができます . EXE(UDPプロトコルとLAN) .
これは非 – 侵襲的な読書 , ソフトもコントローラもを読み込まない , そのうえ , RSを介してどのような方法転送プロトコルで押し付けがましいしない – 485 .
eHouse_1コントローラはCommManagerの監督の下で作業を行うときは状況が異なっている .
CommManagerコントローラー(統合されたパッケージ内のeHouse 1 CommManager)ステータスを送信することができます , UDPのLANと、このデータへのアクセスはコネクションと非 – CommManagerまたは他のイーサネットのeHouseコントローラから直接侵襲ならびに .
UDPの状態を介して受信したデータは、我々は、ドライバを害することはできません , と受信データの最大値は誤解する .
UDPのドライバーの安全性には何も送らないようにEHouseシステム , ドライバは、クライアントがUDP経由で送信されるデータを受信したか否かは関係ありません , または顧客のカウントが0または250であるかどうか .
eHouseのホームオートメーションシステムからのデータを受信する , UDPは、安全であり、どのような方法コントローラまたはeHouseソフトウェアにロードされない , LANにブロードキャスト(UDP_broadcast)を送信する .
ステータスボックスの形式は次のとおり
< ; ; DATA_SIZE> ; ; (< ; ; The_destination_address_H> ; ; < ; ; The_destination_address_L> ; ; )< ; ; Local_addres_H> ; ; < ; ; Local_address_L> ; ; < ; ; コマンド> ; ; < ; ; DATA_1> ; ; . . . . . < ; ; データ> ; ; < ; ; Data_N> ; ; < ; ; DATA_SIZE> ; ; (< ; ; The_destination_address_H> ; ; < ; ; The_destination_address_L> ; ; )< ; ; Local_address_H> ; ; < ; ; Local_address_L> ; ; < ; ; コマンド> ; ; < ; ; DATA_1> ; ; . . . . . < ; ; データ> ; ; < ; ; Data_N> ; ; < ; ; 0> ; ;
ノーマルモード/ VS . (拡張アドレス)
1 . データのサイズ(データのサイズ)
2 . Address_H_target(Address_H_target)
3 . Address_L_target(Address_L_target)
4 . Control_command(Address_H_of_local_controller_return_path)
5 . Data_1_byte(Address_L_of_local_controller_return_path)
6 . Data_2_byte(Control_Command)
7 Data_3_byte(Data_1_byte)
8 . . 指定されたコマンドの残りのデータ .
あなたは、ドライバの状態を送信した場合 ' ; ■制御コマンド ‘ の ‘ .
シリアルRSを介した情報の伝達を最小限にするためにバイナリ形式でデータを追い続ける – 485 .
安全のために , データにチェック接続されている – 誤ったブロードキャストが実行排除するためにまとめる .
あるコマンドのステータスを送信 ‘ の ‘ ,
ドライバのフレーム状況 ホームオートメーション eHouse 1と動作モード(ノーマルまたはextended_address)に応じて、バイト数の説明(インデックスシフト .
この定数TCP_INDEX_INC下の名前にシフト . モードに応じて、 , それは、通常の伝送のための拡張アドレスまたは0に値3を採用することができる . ソフトウェアを作成する際に , あなたは変数としては、このパラメータを検討するかもしれない , フレームは何らかの形でずれている場合、それは、私たちは簡単にそれ以降のバージョンのデータを操作することができますので、 .
インデックスドライバのeHouse 1の各バイトのフレームの状態(フレームの開始):
STATUS_ADC = 1 +2 + TCP_INDEX_INC ; / / A/D_converters_2_bytes_1B = MSBの値 , 2B = LSBを! .
STATUS_OUT = 17 2 + TCP_INDEX_INC ; / /デジタル出力状態の最初のインデックス

/ /各出力1ビットLSB最小数 , MSBは最大
STATUS_IN = 20 2 + TCP_INDEX_INC ; / /デジタル入力の状態LSBの最小数 , MSBは最大
STATUS_INT = 21 2 + TCP_INDEX_INC ; デジタル入力(割り込み)はLSB最小数の/ /米国 , MSBは最大
STATUS_OUT25 = 22 2 + TCP_INDEX_INC ; / /出力25か​​らの状態 . . 32出力と同じ方法
STATUS_LIGHT = 23 2 + TCP_INDEX_INC ; 1調光調光器1Bの/ /ステータス
STATUS_ZONE_PGM = 26 2 + TCP_INDEX_INC ; / / EMはありません、現在のゾーン
= 27 2 + TCP_INDEX_INCをSTATUS_PROGRAM ; / /いいえ現在のプログラム
STATUS_INPUTEXT_A_ACTIVE = 28 2 + TCP_INDEX_INC ; / /入力inputextenderアクティブ状態の
STATUS_INPUTEXT_B_ACTIVE = 32 2 + TCP_INDEX_INC ; アクティブ状態で/ /入力inputextender Bの
STATUS_INPUTEXT_C_ACTIVE = 36 2 + TCP_INDEX_INC ; アクティブ状態で/ /入力inputextender Cを
STATUS_INPUTEXT_A = 40 2 + TCP_INDEX_INC ; / /入力inputextenderアラームと警告
STATUS_INPUTEXT_B = 50 2 + TCP_INDEX_INC ; / /入力inputextender Bのアラームと警告
STATUS_INPUTEXT_C = 60 2 + TCP_INDEX_INC ; / /入力inputextender Cのアラームと警告
/ /ステータスHeatManager
STATUS_ADC_HEART = 1 +2 + TCP_INDEX_INC ; 16センサから/ /温度測定RMのと同じ方法
STATUS_OUT_HEART = 33 2 + TCP_INDEX_INC ; / /デジタル出力は、RMと同様に述べて
WENT_MODE = 51 + TCP_INDEX_INC ;
RECU_MODE:= 50 + TCP_INDEX_INC ;
CURRENT_PGM:= 38 + TCP_INDEX_INC ;
/ /ステータスcommmanager – CommManagerの監督の下でドライバーeHouse 1(ハイブリッドシステム)eHouse 1のステータスと統合
STATUS_EHOUSE1_DEVS = 0 ; / /プレース71バイト上記のRS485に接続したデバイスの状態(eHouse_1)
STATUS_ADC_ETH = 72 ; / / ADC_measurements_16_inputs * 2B、A / D_notation_as_for_RM_Vcc = 3V3
STATUS_ADC_ETH_END = STATUS_ADC_ETH 32 ; A / D測定の/ /終了
STATUS_OUT_I2C = STATUS_ADC_ETH_END ; / / 2回I2C 10 * 8 / /最大= 160モジュール出力の拡張モジュール
STATUS_INPUTS_I2C = STATUS_OUT_I2C 20 ; / / 2倍に拡張モジュールのI2C 6 * 8 / /最大96入力
STATUS_ALARM_I2C = STATUS_INPUTS_I2C 12 ; / / input_inアラームの状態(現在のセキュリティゾーン用のマスクに対する)
STATUS_WARNING_I2C = STATUS_ALARM_I2C 12 ; / / input_warning状態(現在のセキュリティゾーン用のマスクに対する)
STATUS_MONITORING_I2C = STATUS_WARNING_I2C 12 ; / / input_condition監視(現在のセキュリティゾーン用のマスクに対する)
STATUS_PROGRAM_NR = STATUS_MONITORING_I2C 12 ; / / Program_number_CommManager
STATUS_ZONE_NR = STATUS_PROGRAM_NR 1 ; / / Number_CommManager_zone
= STATUS_ZONE_NR 1をSTATUS_ADC_PROGRAM ; / / ADC_program_number
STATUS_LIGHT_LEVEL = 2 STATUS_ADC_PROGRAM ; / /ステータス3ディマー/ /ディマー3 * 2B
HMのステータス上の温度の計算例
i =インデックスアナログ入力0 . . HM gettemplm関数(MSBの15 , LSB) ;
TEMPHM [I]:= gettemplm(文字列[STATUS_ADC_HEART + I * 2 + TCP_INDEX_INC] , STR [STATUS_ADC_HEART + I * 2 +1 + TCP_INDEX_INC]) eHouse_Home_Automation_OpenSource_Delphi