House cá nhân trực quan và kiểm soát đồ họa từ hệ thống tự động eHouse – Java

Đồ họa trực quan của eHouse Home Automation mở rộng môi trường phát triển cho hệ thống và tạo ra khả năng phát triển phần mềm độc lập cho hệ thống của người dùng cuối ofeHouse , công ty liên kết và các doanh nghiệp muốn đóng góp cá nhân lập trình trong môi trường (Java) JSE . eHouse cho Java (eHouse4Java) là tương thích với Android và Windows Mobile thư viện , cho phép bạn tạo ra các phần mềm của riêng bạn cho bảng điều khiển và máy tính bảng .
Thư viện là một mẫu ứng dụng và cho phép:

  • tải cấu hình , tên của các bộ điều khiển , Kết quả đầu ra , Đầu vào , cảm biến , vv .
  • bảo đảm điều khiển hệ thống thông tin liên lạc
  • tiếp nhận và giải mã tình trạng kiểm soát dữ liệu
  • gửi các lệnh điều khiển đồ họa (với biểu tượng trực quan của các đối tượng) hoặc từ dạng văn bản (với lựa chọn lĩnh vực)
  • kiểm soát hệ thống thông qua WiFi , Internet , SMS , eMail
  • Đồ họa trực quan và kiểm soát – tải các tập tin văn bản của các đối tượng đồ họa gắn liền với các sự kiện được thực hiện (hệ thống eHouse) và trạng thái thiết bị
  • Tự động trực quan cho bộ điều khiển (phòng)

Trực quan được tạo ra bằng cách sử dụng java thư viện ” lung lay ” với các yếu tố của một ” JPanel ” , ” JButton ” vv .
Các đối tượng này sẽ được tự động ” tăng gấp đôi – đệm ” , để được loại bỏ ảnh hưởng của flicker , mà là rất gây phiền nhiễu cho người sử dụng .
Người sử dụng cũng có thể kiểm soát hình ảnh:

  • phóng to thu nhỏ
  • di chuyển lên , xuống và từ phía bên
  • thay đổi quan điểm hiện tại bằng cách chọn ” Tùy chọn ”
  • trở về visualization đồ họa của hệ thống bằng cách chọn ” Xem ”

Ví dụ trực quan của hệ thống eHouse:
 Kiểm soát nhà thông minh eHouse trực tuyến đồ họa và trực quan - java mã nguồn mở
 Kiểm soát nhà thông minh eHouse trực tuyến đồ họa và trực quan - java mã nguồn mở
Phóng to và thu được thực hiện với việc sử dụng các Scalable Vector Graphics (SVG) , như vậy là ảnh không bị mất chất lượng của nó sau khi thay đổi tỉ lệ:
 Hoàn tác chỉnh sửa

New! ;
tình trạng bộ điều khiển được tự động hiển thị:
Nó được cập nhật thông qua một mạng máy tính hoặc Internet (TCP hoặc UDP) – trực tuyến (trong thời gian thực)
 Kiểm soát nhà thông minh eHouse trực tuyến đồ họa và trực quan - java mã nguồn mở
 Kiểm soát nhà thông minh eHouse trực tuyến đồ họa và trực quan - java mã nguồn mở
 Kiểm soát nhà thông minh eHouse trực tuyến đồ họa và trực quan - java mã nguồn mở
 Kiểm soát nhà thông minh eHouse trực tuyến đồ họa và trực quan - java mã nguồn mở
Bằng cách chọn ” Tùy chọn ” và phòng có thể được nhìn thấy trạng thái điều khiển và chọn các chương trình .
Thay đổi trạng thái của UDP đến sẽ tự động rewizualizacjÄ ™:  Kiểm soát nhà thông minh eHouse trực tuyến đồ họa và trực quan - java mã nguồn mở
 Kiểm soát nhà thông minh eHouse trực tuyến đồ họa và trực quan - java mã nguồn mở
Ngoài ra để hình dung được thiết kế riêng dựa trên thiết kế kiến ​​trúc và lắp đặt nhà thông minh được tự động tạo biểu tượng trực quan độc lập cho mỗi bộ điều khiển trong hệ thống (đặc biệt cho RoomManagers và EthernetRoomManager – cho các phòng cá nhân) .
Điều này cho phép bảng điều khiển độc lập và trực quan cho mỗi phòng riêng , mà không tẻ nhạt để tạo ra dự án – dựa trên hệ thống hiển thị .
Đối với CommManager (trạng thái của cảm biến báo động , Ouputs)
 Kiểm soát nhà thông minh eHouse đồ họa và trực quan tự động trực tuyến - java mã nguồn mở
Đối với RoomManager và EthernetRoomManager:
 Kiểm soát nhà thông minh eHouse đồ họa và trực quan tự động trực tuyến - java mã nguồn mở
 Kiểm soát nhà thông minh eHouse đồ họa và trực quan tự động trực tuyến - java mã nguồn mở
 Kiểm soát nhà thông minh eHouse đồ họa và trực quan tự động trực tuyến - java mã nguồn mở
Bộ điều khiển lò hơi , thu hồi CO (HeatManagera)
 Kiểm soát nhà thông minh eHouse đồ họa và trực quan tự động trực tuyến - java mã nguồn mở
 Kiểm soát nhà thông minh eHouse đồ họa và trực quan tự động trực tuyến - java mã nguồn mở
Thêm thông tin có thể được tìm thấy trong các bài viết dành cho eHouse4Android thư viện lập trình (eHouse cho Android – Android Java) , đã được dịch sang Java SE cho tính tương thích và dễ dàng phát triển phần mềm trên hệ điều hành khác nhau .
Mã nguồn
/ *
* Mẫu các ứng dụng cho hệ thống biểu tượng trực quan , nhà thông minh eHouse
* Chỉ cho người dùng đăng ký của eHouse hệ thống , Hợp tác công ty Tất cả các quyền
*
* Yêu cầu Lớp học:
* Ehousecommunication . lớp – gửi các sự kiện cho hệ thống
* EhouseTCP . lớp – Bộ điều khiển khởi tạo và duy trì các thông tin liên lạc qua giao thức TCP / IP , Cập nhật dữ liệu từ hệ thống các yếu tố đầu vào và đầu ra
* StatusEhouse . lớp – lưu trữ dữ liệu và bộ điều khiển cài đặt , cập nhật trên cơ sở liên tục qua giao thức TCP / IP điều khiển ehouse1 (485)
* StatusCommManager . lớp – lưu trữ dữ liệu hiện tại và cài đặt bộ điều khiển , cập nhật trên cơ sở liên tục qua giao thức TCP / IP điều khiển ehouse2 (Ethernet)
* GraphicObject . lớp – lưu trữ các đối tượng đồ họa
* Hình ảnh . lớp – vẽ các đối tượng đồ họa (dòng , elip , hình chữ nhật) và dịch vụ sự kiện liên quan
*
* Ứng dụng mẫu thiết kế một biểu tượng trực của hệ thống eHouse
* Chỉ cho người dùng ĐĂNG KÝ , Các nhà cung cấp , HỢP TÁC XÃ Copyright ISYS . En Tất cả các quyền
*
* Yêu cầu các lớp học:
* Ehousecommunication . lớp – gửi các sự kiện cho hệ thống
* EhouseTCP . lớp – khởi tạo và duy trì giao tiếp TCP / IP với bộ điều khiển , cập nhật tình trạng hiện tại của bộ điều khiển
* StatusEhouse . lớp – bộ điều khiển cài đặt và lưu trữ dữ liệu , cập nhật dữ liệu (TCP / IP) cho ehouse1 bộ điều khiển (485)
* StatusCommManager . lớp – bộ điều khiển cài đặt và lưu trữ dữ liệu , cập nhật dữ liệu (TCP / IP) cho ehouse2 bộ điều khiển (Ethernet)
* GraphicObject . lớp – lưu trữ các đối tượng dữ liệu đồ họa
* Hình ảnh . lớp – vẽ các đối tượng đồ họa (dòng , Elip , hình chữ nhật) và các sự kiện xử lý liên quan đến họ
* /
ehouse4java gói ;
nhập khẩu java . AWT . * ;
nhập khẩu java . AWT . sự kiện . * ;
nhập khẩu javax . lung lay . * ;
nhập khẩu javax . lung lay . sự kiện . Changeevent ;
nhập khẩu javax . lung lay . sự kiện . ChangeListener ;
Ehouse4java public class mở rộng JFrame thực hiện ActionListener , ChangeListener {
/ **
* Class chịu trách nhiệm khởi tạo các trạng thái hệ thống , và tạo ra
* Các cửa sổ ứng dụng chính . Thực hiện giao diện hỗ trợ các sự kiện
* Kết hợp với các nút .
*
* Class Chịu trách nhiệm khởi tạo các trạng thái của các lớp học và tạo ra
* Các cửa sổ ứng dụng chính . Thực hiện các sự kiện hỗ trợ giao diện
* Liên quan tới các nút bấm .
* /
/ **
* Hình ảnh xem đối tượng có chứa đang hiển thị
* /
hình dung trực quan công cộng ;
/ / Tùy chọn trực quan thông tin chung ;
/ / Công trực quan TextEvents ;
/ **
* Pallete của các nút hỗ trợ phóng to , chuyển dịch và thay đổi
* Số lần xem
* /
JButton ZoomPlusButton ;
JButton ZoomMinusButton ;
JButton LeftShiftButton ;
JButton RightShiftButton ;
JButton UpButton ;
JButton DownButton ;
JButton ExitB = null ;
JButton Tùy chọn ;
JButton Xem ;
JButton Trở lại ;
JButton [] = new JButton ViewsB [MAX_VIEWS_COUNT] ;
/ **
* Panel với tất cả các nút
* /
JPanel ZoomPanel ;
/ **
* Bảng điều chỉnh hiển thị đang chứa trực quan
* /
JPanel viewpanel ;
/ **
* Các bảng điều khiển có chứa một nhóm các nút được sử dụng để truy cập điều khiển trạng thái ,
* Hệ thống lịch trình vv . .
* /
JPanel optionspanel ;
/ **
* Oprional scrollpanes
* /
JScrollPane jsp1 ;
JScrollPane jsp2 ;
public static int buttonscounter ;
public int centerX ;
public int CenterY ;
public int prevCenterX ;
public int prevCenterY ;
public int Ycompensation ;
prevOffsetX int = 0 , prevOffsetY = 0 ;
đôi prevScaleX ;
đôi prevScaleY ;
công cuối cùng đôi zoomfactor = 0 . 3 ;
public static String previousoptionsview = ” ” ;
/ **
* Tạo Ehouse4java hình thức mới . Khởi trạng thái của các lớp học và đồ họa
* Linh kiện với cửa sổ chính .
* /
công Ehouse4java () {
super ( ” EHouse ” ) ;
OnCreate () ;
setDefaultCloseOperation (JFrame . EXIT_ON_CLOSE) ;
/ **
* Tu tất cả các thành phần đồ họa
* /
addComponentToPane (getContentPane ()) ;

setSize (400 , 400) ;
setLocation (200 , 0) ;
setMinimumSize (Kích thước mới (200 , 200)) ;
setVisible (true) ;
prevCenterX = (int) Visualization . getBounds () . getCenterX () ;
prevCenterY = (int) Visualization . getBounds () . getCenterY () ;
}
/ **
* Tu tất cả các thành phần khô panel như đồ họa , nút , thanh cuộn , vv . .
*
* @ Param cửa sổ
* /
public void addComponentToPane container (cửa sổ) {

optionfirsttime = true ;

ExitB = new JButton ( ” Ra ” ) ;
ExitB . setActionCommand ( ” Ra ” ) ;
ExitB . addActionListener (this) ;
. . .
indexView int = 0 ;
ZoomPanel = new JPanel (mới FlowLayout ()) ;
viewpanel . (ZoomPanel , BorderLayout . PAGE_END) ;
ZoomPlusButton = new JButton ( ” + ” ) ;
ZoomPlusButton . setActionCommand ( ” ZoomPlus ” ) ;
ZoomPlusButton . addActionListener (this) ;
ZoomPanel . thêm (ZoomPlusButton) ;
ZoomMinusButton = new JButton ( ” – ” ) ;
ZoomMinusButton . setActionCommand ( ” ZoomMinus ” ) ;
ZoomMinusButton . addActionListener (this) ;
ZoomPanel . thêm (ZoomMinusButton) ;
. . .
}
/ **
* Tu và StatusEhouse StatusCommManager lớp nạp bởi bộ điều khiển
* Tình trạng
* /
public void OnCreate () { . . . }
/ **
* @ Args Param đối số dòng lệnh
* /
public static void main (args String []) {
/ *
* Tạo và hiển thị các hình thức
* /
java . AWT . EventQueue . invokeLater (mới Runnable () {
public void run () {
Ehouse4java mới () . setVisible (true) ;
}
}) ;
}
/ **
* Hỗ trợ các sự kiện gọi bằng cách bấm vào nút
*
* @ Param e
* /
@ Override
public void actionPerformed (ActionEvent e) {
switch (e . getActionCommand ()) {
khi ” ZoomPlus ” :
prevOffsetX = ehousecommunication . OffsetX ;
prevOffsetY = ehousecommunication . Hiệu số ;
ehousecommunication . ScaleX * = (1 + zoomfactor) ; / / * 100/zoomleve ;
ehousecommunication . ScaleY * = (1 + zoomfactor) ; / / * 100/zoomleve ;
/ / Trung tâm xem sau khi rescalling
ehousecommunication . OffsetX + = (int) ((Visualization . getBounds () . getCenterX () + prevOffsetX) * zoomfactor) ;
ehousecommunication . Hiệu số + = (int) ((Visualization . getBounds () . getCenterY () + prevOffsetY) * zoomfactor) + Ycompensation / (1 / (2 * zoomfactor)) ;
EhouseTCP . ReadViewFile (ehousecommunication . currentview) ; / / Tính toán zoom
Visualization . repaint () ;
trở lại ;
. . .
}
}
}