ハウス個人可視化とeHouse System Automationはからのグラフィカルコントロール – ジャワ

をグラフィカルに可視化 eHouseのホームオートメーション システムの開発環境を拡張し、エンドユーザーのofeHouseシステムのための独立したソフトウェア開発の可能性を作成 , 個々に貢献することを希望する関連会社及び事業JSE(Javaの)環境でのプログラミング . Java用eHouse(eHouse4Java)は、AndroidとWindows Mobileのライブラリと互換性がある , あなたがコントロールパネルとタブレットのための独自のソフトウェアを作成することができます .
ライブラリは、アプリケーションテンプレートですと有効になります。

  • 負荷の設定 , コントローラの名前 , 出力 , 入力 , センサー , など .
  • 通信システム·コントローラを確保
  • データコントローラのステータスを受信し復号
  • グラフィカル(オブジェクトの視覚化を含む)またはテキスト形式(フィールド選択がある)から制御コマンドを送信
  • WiFi経由で制御システム , インターネット , SMS , メールアドレスは
  • グラフィカルな可視化と制御 – 実行されるイベント(eHouseシステムの)や機器の状態に関連付けられているグラフィックオブジェクトのテキストフ​​ァイルを読み込む
  • コントローラの自動可視化(部屋)

可視化は、Javaライブラリを使用して作成され ” スイング ” の要素を持つ ” JPanelの ” , ” JButtonの ” など .
これらのオブジェクトは自動的に実行さ ” 倍増 – 緩衝 ” , フリッカーの影響が排除されるように、 , これは、ユーザーにとって非常に迷惑です .
また、ユーザは、画像を制御することができます。

  • ズームインとズームアウト
  • 繰り上げる , 側へのダウンと側から
  • 選択して、現在のビューを変更 ” オプション ”
  • 選択して、システムのグラフィカルな可視化に戻す ” 表示 ”

可視化のeHouseシステムの例:
 インテリジェントホームコントロールのeHouseオンライングラフィックスと可視化 - Javaオープンソース
 インテリジェントホームコントロールのeHouseオンライングラフィックスと可視化 - Javaオープンソース
にズームとアウトスケーラブルベクターグラフィックスの使用(SVG)を用いて行った , 画像は、スケールの変更後に、その品質を失うことはありませんように:
 編集内容を元に戻す

新しい! ;
コントローラのステータスが自動的に表示されます。
これは、コンピュータネットワークやインターネットを介して更新されます(TCPまたはUDP) – オンライン(リアルタイムで)
 インテリジェントホームコントロールのeHouseオンライングラフィックスと可視化 - Javaオープンソース
 インテリジェントホームコントロールのeHouseオンライングラフィックスと可視化 - Javaオープンソース
 インテリジェントホームコントロールのeHouseオンライングラフィックスと可視化 - Javaオープンソース
 インテリジェントホームコントロールのeHouseオンライングラフィックスと可視化 - Javaオープンソース
選択することにより、 ” オプション ” そして部屋は状態コントローラを見て、プログラムを選択することができます .
着信UDPの状態を変更すると、自動的rewizualizacjÄ™:  インテリジェントホームコントロールのeHouseオンライングラフィックスと可視化 - Javaオープンソース
 インテリジェントホームコントロールのeHouseオンライングラフィックスと可視化 - Javaオープンソース
個別に建築デザインとスマートホームのインストールに基づいて設計の可視化に加えて、自動的にシステム内の各コントローラの独立して可視化(特にRoomManagersとEthernetRoomManagerために作成されます – 個々の部屋のために) .
これは、個別に各部屋に独立したコントロールパネルや可視化を行うことができます , 退屈せずにプロジェクトを作成する – ベースの可視化システム .
CommManager(アラームセンサーの状態について , Ouputs)
 インテリジェントホームコントロールのeHouseグラフィックスと可視化、自動オンライン - Javaオープンソース
RoomManagerとEthernetRoomManagerの場合:
 インテリジェントホームコントロールのeHouseグラフィックスと可視化、自動オンライン - Javaオープンソース
 インテリジェントホームコントロールのeHouseグラフィックスと可視化、自動オンライン - Javaオープンソース
 インテリジェントホームコントロールのeHouseグラフィックスと可視化、自動オンライン - Javaオープンソース
ボイラーコントローラ , COの回復(HeatManagera)
 インテリジェントホームコントロールのeHouseグラフィックスと可視化、自動オンライン - Javaオープンソース
 インテリジェントホームコントロールのeHouseグラフィックスと可視化、自動オンライン - Javaオープンソース
詳細については、プログラミング·ライブラリeHouse4Android(Android用eHouseに専念の記事で見つけることができます – AndroidのJava) , 異なるオペレーティングシステムでの互換性とソフトウェア開発を容易にするためのJava SEに翻訳されている .
ソースコード
/ *
写実的可視化システムのための*テンプレートアプリケーション , スマートホームのeHouse
*のみシステムのeHouseの登録ユーザー , すべての権利予約協力会社
*
*必要クラス:
* Ehousecommunication . クラス – システムにイベントを送信
* EhouseTCP . クラス – TCP / IPコントローラを介した通信の初期化とメンテナンス , システムの入力と出力から更新されたデータ
* StatusEhouse . クラス – データストレージやコントローラの設定 , TCP / IPコントローラehouse1(485)上に随時更新
* StatusCommManager . クラス – 現在のデータと設定コントローラーを保存 , TCP / IPコントローラehouse2(イーサネット)経由で随時更新
* GraphicObject . クラス – グラフィカルオブジェクトの記憶域
*可視化 . クラス – グラフィカルオブジェクト(線を描く , 楕円 , 四角形)とサービス関連のイベント
*
eHouseシステムのグラフィカルなインタフェースを設計*アプリケーションテンプレート
*登録ユーザーのみ , ベンダー , 協同組合が著作権ISYS . すべての権利予約専用
*
*必須クラス:
* Ehousecommunication . クラス – システムにイベントを送信
* EhouseTCP . クラス – コントローラを使用した初期化とメンテナンスのTCP / IP通信 , コントローラの現在のステータスを更新
* StatusEhouse . クラス – コントローラの設定とデータストレージ , ehouse1コントローラ用の更新データ(TCP / IP)の(485)
* StatusCommManager . クラス – コントローラの設定とデータストレージ , ehouse2コントローラ用の更新データ(TCP / IP)の(イーサネット)
* GraphicObject . クラス – グラフィック·データ·ストレージ·オブジェクト
*可視化 . クラス – グラフィック描画オブジェクト(線 , 楕円 , 長方形)とそれに関連するイベント処理
* /
ehouse4javaパッケージ ;
Javaソースコードの読み込み . AWT . * ;
Javaソースコードの読み込み . AWT . イベント . * ;
インポートjavaxの . スイング . * ;
インポートjavaxの . スイング . イベント . ChangeEventの ;
インポートjavaxの . スイング . イベント . ChangeListener ;
Ehouse4javaパブリッククラスはJFrameはActionListenerを実装して拡張する , ChangeListener {
/ **
システムの状態を初期化する責任*クラス , と作成
*アプリケーションのメインウィンドウ . イベントをサポートするインターフェースを実装
ボタンに関連付けられている* .
*
クラスのステータスを初期化し、作成を担当*クラス
*アプリケーションのメインウィンドウ . インターフェイスのサポートイベントを実装していること
*ボタンに関連 .
* /
/ **
現在表示されているビューを含む*可視化オブジェクト
* /
公共の可視化の可視化 ;
/ /パブリック可視化オプション ;
/ /パブリック可視化TextEvents ;
/ **
ズームをサポート*パレットボタン , シフトと変化
*表示されているビュー
* /
JButtonのZoomPlusButton ;
JButtonのZoomMinusButton ;
JButtonのLeftShiftButton ;
JButtonのRightShiftButton ;
JButtonのUpButtonメソッド ;
JButtonのDownButton ;
JButtonのExitB =ヌル ;
JButtonのオプション ;
JButtonの表示 ;
JButtonのバック ;
JButtonの[] =新しいJButtonのViewsB [MAX_VIEWS_COUNT] ;
/ **
すべてのボタンが付いている*パネル
* /
JPanelのZoomPanel ;
/ **
*パネルは現在、可視化を含む表示
* /
JPanelのviewpanel ;
/ **
コントローラの状態にアクセスするために使用されるボタンのグループを含む*パネル ,
*システムのスケジュール等 . .
* /
JPanelのoptionspanel ;
/ **
* Oprional scrollpanes
* /
JScrollPaneのjsp1 ;
JScrollPaneのJSP2 ;
パブリックstatic int型buttonscounter ;
公共のint centerX ;
公共のint CenterYの ;
公共のint prevCenterX ;
公共のint prevCenterY ;
公共のint Ycompensation ;
prevOffsetX INT = 0 , prevOffsetY = 0 ;
ダブルprevScaleX ;
ダブルprevScaleY ;
公共決勝ダブルzoomfactor = 0 . 3 ;
公共の静的な文字列previousoptionsview = ” ” ;
/ **
*新しいフォームを作成しEhouse4java . クラスのステータスを開始し、グラフィック
メインウィンドウと*コンポーネント .
* /
公共Ehouse4java(){
スーパー( ” EHouse ” ) ;
OnCreate関数() ;
setDefaultCloseOperation(JFrameの . EXIT_ON_CLOSE) ;
/ **
*すべてのグラフィックコンポーネントを開始
* /
addComponentToPane(getContentPane()) ;

のsetSize(400 , 400) ;
setLocationが(200 , 0) ;
(新しい次元(200 setMinimumSize , 200)) ;
setVisible(true)を ;
prevCenterX =(int)を可視化 . getBounds()に . getCenterX() ;
prevCenterY =(int)を可視化 . getBounds()に . getCenterY() ;
}
/ **
*グラフィックパネルなどの乾燥のすべてのコンポーネントを開始 , ボタン , スクロールバー , など . .
*
する* @ paramペイン
* /
公共ボイドaddComponentToPane(コンテナ]ペイン){

optionfirsttime =真 ;

ExitB =新しいJButtonの( ” 終了する ” ) ;
ExitB . setActionCommand( ” 終了する ” ) ;
ExitB . addActionListener(この) ;
. . .
indexView INT = 0 ;
ZoomPanel =新しいJPanelの(新しいFlowLayoutを()) ;
viewpanel . 追加(ZoomPanel , BorderLayoutは . PAGE_END) ;
ZoomPlusButton =新しいJButtonの( ” + ” ) ;
ZoomPlusButton . setActionCommand( ” ZoomPlus ” ) ;
ZoomPlusButton . addActionListener(この) ;
ZoomPanel . 追加(ZoomPlusButton) ;
ZoomMinusButton =新しいJButtonの( ” – ” ) ;
ZoomMinusButton . setActionCommand( ” ZoomMinus ” ) ;
ZoomMinusButton . addActionListener(この) ;
ZoomPanel . 追加(ZoomMinusButton) ;
. . .
}
/ **
*開始し、ロードコントローラによるStatusEhouse StatusCommManagerクラス
*ステータス
* /
します。public void OnCreate関数(){ . . . }
/ **
する* @ param argsコマンドライン引数
* /
公共の静的な無効メイン(文字列のargs []){
/ *
*作成し、フォームを表示する
* /
ジャワ . AWT . EventQueueの . invokeLater(新しいRunnableを(){
public void実行(){
Ehouse4java新しい() . setVisible(true)を ;
}
}) ;
}
/ **
*ボタンをクリックすることによって呼び出されたイベントをサポート
*
* @ Paramの電子
* /
@ Overrideを
actionPerformedの公共ボイド(のActionEvent e)の{
スイッチ(E . getActionCommand()){
ケース ” ZoomPlus ” :
prevOffsetX = ehousecommunication . OffsetX ;
prevOffsetY = ehousecommunication . オフセット ;
ehousecommunication . ScaleXの* =(1 + zoomfactor) ; / / * 100/zoomleve ;
ehousecommunication . scaleYの* =(1 + zoomfactor) ; / / * 100/zoomleve ;
/ / rescalling後にビューをセンタリング
ehousecommunication . OffsetX + =(int)は((可視化 . getBounds()に . getCenterX()+ prevOffsetX)* zoomfactor) ;
ehousecommunication . オフセット+ =(int)は((可視化 . getBounds()に . getCenterY()+ prevOffsetY)* zoomfactor)+ Ycompensation /(1 /(2 * zoomfactor)) ;
EhouseTCP . ReadViewFile(ehousecommunication . のCurrentView) ; / /計算ズーム
可視化 . repaint()を ;
戻す ;
. . .
}
}
}