บ้านการแสดงส่วนบุคคลและการควบคุมแบบกราฟิกจาก Automation System eHouse – ชวา

ภาพกราฟิกของ การทำงานอัตโนมัติหน้าแรก eHouse ขยายการพัฒนาสภาพแวดล้อมของระบบและสร้างความเป็นไปได้ของการพัฒนาซอฟต์แวร์อิสระสำหรับการสิ้นสุดระบบ ofeHouse ผู้ใช้ , บริษัท ที่เกี่ยวข้องและธุรกิจที่ประสงค์จะมีส่วนร่วมในการเขียนโปรแกรมในแต่ละสภาพแวดล้อม JSE (Java) . eHouse สำหรับ Java (eHouse4Java) เข้ากันได้กับ Android และ Windows Mobile ห้องสมุด , ช่วยให้คุณสามารถสร้างซอฟต์แวร์ของคุณเองสำหรับแผงควบคุมและแท็บเล็ต .
ห้องสมุดเป็นแม่แบบโปรแกรมประยุกต์และช่วยให้:

  • โหลดค่า , ชื่อของตัวควบคุม , เอาท์พุท , ปัจจัยการผลิต , เซ็นเซอร์ , ฯลฯ .
  • มั่นใจควบคุมระบบการสื่อสาร
  • ที่ได้รับและถอดรหัสสถานะของตัวควบคุมข้อมูล
  • ส่งคำสั่งควบคุมกราฟิก (มีภาพของวัตถุ) หรือจากรูปแบบข้อความ (กับเลือกฟิลด์)
  • ควบคุมระบบผ่าน WiFi , อินเทอร์เน็ต , SMS , eMail
  • ภาพกราฟิกและการควบคุม – โหลดไฟล์ข้อความของวัตถุกราฟิกที่เกี่ยวข้องกับเหตุการณ์ที่เกิดขึ้นจะต้องถูกประหารชีวิต (จากระบบ eHouse) และสถานะอุปกรณ์
  • ภาพอัตโนมัติสำหรับตัวควบคุม (room)

ภาพจะถูกสร้างขึ้นโดยใช้ห้องสมุด java ” แกว่ง ” ที่มีองค์ประกอบของ ” JPanel ” , ” JButton ” ฯลฯ .
วัตถุเหล่านี้โดยอัตโนมัติ ” สอง – buffered ” , เพื่อให้ผลของการสั่นไหวจะถูกกำจัดออก , ซึ่งเป็นที่น่ารำคาญมากสำหรับผู้ใช้ .
ผู้ใช้ยังสามารถควบคุมภาพ:

  • ซูมเข้าและออก
  • ผลุบโผล่ , ลงและจากทางด้านข้าง
  • เปลี่ยนมุมมองปัจจุบันโดยการเลือก ” ตัวเลือก ”
  • กลับไปสร้างภาพกราฟิกของระบบโดยการเลือก ” ดู ”

ตัวอย่างของระบบ eHouse ภาพ:
 บ้านควบคุมอัจฉริยะกราฟิกออนไลน์ eHouse และการมองเห็น - โอเพนซอร์สจาวา
 บ้านควบคุมอัจฉริยะกราฟิกออนไลน์ eHouse และการมองเห็น - โอเพนซอร์สจาวา
ซูมเข้าและออกถูกหามออกที่มีการใช้กราฟิกแบบเวกเตอร์ที่ปรับขนาดได้ (SVG) , เพื่อให้ภาพที่ไม่สูญเสียคุณภาพของหลังการเปลี่ยนแปลงของระดับ:
 ยกเลิกการแก้ไข

ใหม่! ;
สถานะตัวควบคุมจะปรากฏโดยอัตโนมัติ:
มีการปรับปรุงผ่านระบบเครือข่ายคอมพิวเตอร์หรืออินเทอร์เน็ต (TCP หรือ UDP) – ออนไลน์ (ในเวลาจริง)
 บ้านควบคุมอัจฉริยะกราฟิกออนไลน์ eHouse และการมองเห็น - โอเพนซอร์สจาวา
 บ้านควบคุมอัจฉริยะกราฟิกออนไลน์ eHouse และการมองเห็น - โอเพนซอร์สจาวา
 บ้านควบคุมอัจฉริยะกราฟิกออนไลน์ eHouse และการมองเห็น - โอเพนซอร์สจาวา
 บ้านควบคุมอัจฉริยะกราฟิกออนไลน์ eHouse และการมองเห็น - โอเพนซอร์สจาวา
โดยการเลือก ” ตัวเลือก ” และห้องที่สามารถมองเห็นตัวควบคุมรัฐและเลือกโปรแกรม .
การเปลี่ยนสถานะของ UDP ขาเข้าจะอัตโนมัติrewizualizacjÄ™:  บ้านควบคุมอัจฉริยะกราฟิกออนไลน์ eHouse และการมองเห็น - โอเพนซอร์สจาวา
 บ้านควบคุมอัจฉริยะกราฟิกออนไลน์ eHouse และการมองเห็น - โอเพนซอร์สจาวา
นอกจากนี้เพื่อสร้างภาพของแต่ละการออกแบบตามการออกแบบสถาปัตยกรรมและการติดตั้งของบ้านสมาร์ทจะถูกสร้างขึ้นโดยอัตโนมัติภาพอิสระสำหรับแต่ละตัวควบคุมในระบบ (เฉพาะอย่างยิ่งสำหรับ RoomManagers และ EthernetRoomManager – สำหรับห้องพักของแต่ละบุคคล) .
นี้จะช่วยให้แผงควบคุมและการมองเห็นที่เป็นอิสระสำหรับห้องแต่ละ , โดยไม่ต้องน่าเบื่อที่จะสร้างโครงการ – ระบบภาพตาม .
สำหรับ CommManager (รัฐของเซ็นเซอร์เตือนภัย , ouputs)
 บ้านกราฟิก eHouse ควบคุมอัจฉริยะและการมองเห็นออนไลน์ได้โดยอัตโนมัติ - โอเพนซอร์สจาวา
สำหรับ RoomManager และ EthernetRoomManager:
 บ้านกราฟิก eHouse ควบคุมอัจฉริยะและการมองเห็นออนไลน์ได้โดยอัตโนมัติ - โอเพนซอร์สจาวา
 บ้านกราฟิก eHouse ควบคุมอัจฉริยะและการมองเห็นออนไลน์ได้โดยอัตโนมัติ - โอเพนซอร์สจาวา
 บ้านกราฟิก eHouse ควบคุมอัจฉริยะและการมองเห็นออนไลน์ได้โดยอัตโนมัติ - โอเพนซอร์สจาวา
ควบคุมหม้อไอน้ำ , การฟื้นตัวของโคโลราโด (HeatManagera)
 บ้านกราฟิก eHouse ควบคุมอัจฉริยะและการมองเห็นออนไลน์ได้โดยอัตโนมัติ - โอเพนซอร์สจาวา
 บ้านกราฟิก eHouse ควบคุมอัจฉริยะและการมองเห็นออนไลน์ได้โดยอัตโนมัติ - โอเพนซอร์สจาวา
ข้อมูลเพิ่มเติมสามารถพบได้ในบทความที่อุทิศให้กับการเขียนโปรแกรม eHouse4Android ห้องสมุด (eHouse สำหรับ Android – Java Android) , ซึ่งได้รับการแปลเป็​​น Java SE เข้ากันได้และความสะดวกของการพัฒนาซอฟต์แวร์บนระบบปฏิบัติการที่แตกต่างกัน .
รหัสแหล่งที่มา
/ *
* โปรแกรมแม่แบบสำหรับระบบภาพกราฟิก , eHouse สมาร์ท
* เฉพาะสำหรับผู้ใช้ที่ลงทะเบียนของ eHouse ระบบ , บริษัท ร่วมมือสงวนลิขสิทธิ์
*
* ชั้นเรียนต้องการ:
* Ehousecommunication . ชั้น – ส่งกิจกรรมไปยังระบบ
* EhouseTCP . ชั้น – ควบคุมการเริ่มต้นและการบำรุงรักษาของการสื่อสารผ่าน TCP / IP , ข้อมูลการปรับปรุงจากระบบปัจจัยการผลิตและผล
* StatusEhouse . ชั้น – ข้อมูลการตั้งค่าการจัดเก็บและควบคุม , ปรับปรุงอย่างต่อเนื่องผ่าน TCP / IP ควบคุม ehouse1 (485)
* StatusCommManager . ชั้น – เก็บข้อมูลในปัจจุบันและการตั้งค่าตัวควบคุม , ปรับปรุงอย่างต่อเนื่องผ่าน TCP / IP ควบคุม ehouse2 (Ethernet)
* GraphicObject . ชั้น – การเก็บรักษาวัตถุกราฟิก
แสดง * . ชั้น – วาดวัตถุกราฟิก (เส้น , วงรี , สี่เหลี่ยม) และบริการที่เกี่ยวข้องกับเหตุการณ์
*
แม่แบบโปรแกรมประยุกต์ที่ออกแบบมา * ภาพกราฟิกของระบบ eHouse
* เฉพาะสำหรับผู้ใช้จดทะเบียน , ผู้ขาย , สหกรณ์ ISYS ลิขสิทธิ์ . en สงวนลิขสิทธิ์
*
* คลาสที่ต้องการ:
* Ehousecommunication . ชั้น – ส่งกิจกรรมไปยังระบบ
* EhouseTCP . ชั้น – การเริ่มต้นและการบำรุงรักษาสื่อสาร TCP / IP กับตัวควบคุม , อัปเดตสถานะปัจจุบันของตัวควบคุม
* StatusEhouse . ชั้น – การตั้งค่าตัวควบคุมและจัดเก็บข้อมูล , การปรับปรุงข้อมูล (TCP / IP) สำหรับ ehouse1 ควบคุม (485)
* StatusCommManager . ชั้น – การตั้งค่าตัวควบคุมและจัดเก็บข้อมูล , การปรับปรุงข้อมูล (TCP / IP) สำหรับ ehouse2 ควบคุม (Ethernet)
* GraphicObject . ชั้น – กราฟิกข้อมูลการเก็บรักษาวัตถุ
แสดง * . ชั้น – วาดวัตถุกราฟิก (เส้น , วงรี , สี่เหลี่ยม) และเหตุการณ์ที่เกี่ยวข้องกับการจัดการพวกเขา
* /
แพคเกจ ehouse4java ;
java นำเข้า . AWT . * ;
java นำเข้า . AWT . เหตุการณ์ . * ;
javax นำเข้า . แกว่ง . * ;
javax นำเข้า . แกว่ง . เหตุการณ์ . Changeevent ;
javax นำเข้า . แกว่ง . เหตุการณ์ . ChangeListener ;
ชั้น Ehouse4java สาธารณะขยาย JFrame ActionListener ดำเนิน , ChangeListener {
/ **
ระดับ * รับผิดชอบสำหรับการเริ่มต้นสถานะของระบบ , และสร้าง
* หน้าต่างโปรแกรมหลัก . ดำเนินการอินเตอร์เฟซที่รองรับเหตุการณ์
* ที่เกี่ยวข้องกับปุ่ม .
*
ระดับความรับผิดชอบ * สำหรับการเริ่มต้นของการเรียนสถานะและการสร้าง
* หน้าต่างโปรแกรมหลัก . ที่ดำเนินการสนับสนุนการเชื่อมต่อเหตุการณ์ที่เกิดขึ้น
* ที่เกี่ยวข้องกับปุ่ม .
* /
/ **
วัตถุแสดง * มีมุมมองแสดงอยู่ในปัจจุบัน
* /
การแสดงภาพของประชาชน ;
/ / ตัวเลือกการแสดงสาธารณะ ;
/ / TextEvents ภาพสาธารณะ ;
/ **
ปุ่ม * Pallete สนับสนุนการซูม , ขยับและการเปลี่ยนแปลง
* มุมมองแสดง
* /
ZoomPlusButton JButton ;
ZoomMinusButton JButton ;
LeftShiftButton JButton ;
RightShiftButton JButton ;
UpButton JButton ;
DownButton JButton ;
JButton ExitB = null ;
ตัวเลือก JButton ;
ดู JButton ;
กลับ JButton ;
JButton [] = new JButton ViewsB [MAX_VIEWS_COUNT] ;
/ **
แผง * มีปุ่ม
* /
ZoomPanel JPanel ;
/ **
แผง * แสดงอยู่ในปัจจุบันที่มีการสร้างภาพ
* /
viewpanel JPanel ;
/ **
* แผงที่มีกลุ่มของปุ่มที่ใช้ในการเข้าถึงรัฐควบคุม ,
* ระบบ ฯลฯ ตาราง . .
* /
optionspanel JPanel ;
/ **
* scrollpanes Oprional
* /
jsp1 JScrollPane ;
jsp2 JScrollPane ;
buttonscounter int สาธารณะคง ;
ประชาชน centerX int ;
Centery int สาธารณะ ;
ประชาชน prevCenterX int ;
prevCenterY int สาธารณะ ;
Ycompensation int สาธารณะ ;
prevOffsetX int = 0 , prevOffsetY = 0 ;
prevScaleX คู่ ;
prevScaleY คู่ ;
ประชาชน zoomfactor คู่สุดท้าย = 0 . 3 ;
ประชาชน String previousoptionsview คงที่ = ” ” ;
/ **
* สร้างรูปแบบใหม่ Ehouse4java . เริ่มต้นสถานะของชั้นเรียนและกราฟิก
ส่วนประกอบ * กับหน้าต่างหลัก .
* /
ประชาชน Ehouse4java () {
ซุปเปอร์ ( ” EHouse ” ) ;
OnCreate () ;
setDefaultCloseOperation (JFrame . EXIT_ON_CLOSE) ;
/ **
* ริเริ่มองค์ประกอบภาพทั้งหมด
* /
addComponentToPane (getContentPane ()) ;

setSize (400 , 400) ;
setLocation (200 , 0) ;
setMinimumSize (Dimension ใหม่ (200 , 200)) ;
setVisible (จริง) ;
แสดง prevCenterX = (int) . getBounds () . getCenterX () ;
prevCenterY = แสดง (int) . getBounds () . getCenterY () ;
}
/ **
* ริเริ่มส่วนประกอบทั้งหมดแห้งเป็นแผ่นกราฟิก , ปุ่ม , เลื่อน , ฯลฯ . .
*
* @ Param บานหน้าต่าง
* /
addComponentToPane โมฆะสาธารณะ (บานหน้าต่างคอนเทนเนอร์) {

optionfirsttime = true ;

ExitB = JButton ใหม่ ( ” ทางออก ” ) ;
ExitB . setActionCommand ( ” ทางออก ” ) ;
ExitB . addActionListener (นี้) ;
. . .
indexView int = 0 ;
ZoomPanel = new 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 โดยควบคุมโหลด
สถานะ *
* /
OnCreate โมฆะสาธารณะ () { . . . }
/ **
* @ Param args อาร์กิวเมนต์บรรทัดคำสั่ง
* /
ประชาชนเป็นโมฆะหลักแบบคงที่ (String args []) {
/ *
* สร้างและแสดงแบบฟอร์ม
* สร้างและแสดงแบบฟอร์ม
ชวา . AWT . EventQueue . invokeLater (ใหม่ Runnable () {
ทำงานเป็นโมฆะสาธารณะ () {
Ehouse4java ใหม่ () . setVisible (จริง) ;
}
}) ;
}
/ **
* รองรับเหตุการณ์เรียกโดยการคลิกที่ปุ่ม
*
* e @ Param
* /
@ Override
โมฆะสาธารณะ actionPerformed (ActionEvent e) {
สวิทช์ (e . getActionCommand ()) {
กรณี ” ZoomPlus ” :
prevOffsetX = ehousecommunication . OffsetX ;
ehousecommunication prevOffsetY = . offsets ;
ehousecommunication . ScaleX * = (1 + zoomfactor) ; / / * 100/zoomleve ;
ehousecommunication . ScaleY * = (1 + zoomfactor) ; / / * 100/zoomleve ;
/ / Centering มุมมองหลังจาก rescalling
ehousecommunication . OffsetX + = (int) ((ภาพ . getBounds () . getCenterX () + prevOffsetX) zoomfactor *) ;
ehousecommunication . offsets + = (int) ((ภาพ . getBounds () . getCenterY () + prevOffsetY) * zoomfactor) Ycompensation + / (1 / (2 * zoomfactor)) ;
EhouseTCP . ReadViewFile (ehousecommunication . currentview) ; / / คำนวณซูม
การแสดง . repaint () ;
กลับ ;
. . .
}
}
}