تصور الرسومية eHouse أتمتة المنزل تمتد بيئة التطوير لنظام ويخلق إمكانية لتطوير البرمجيات المستقلة لنظام ofeHouse نهاية المستخدمين , الشركات والمؤسسات التجارية المرتبطة الراغبة في المساهمة بشكل فردي البرمجة في بيئة (جافا) JSE . eHouse ل Java (eHouse4Java) متوافق مع الروبوت والمكتبات ويندوز موبايل , مما يسمح لك لإنشاء البرمجيات الخاصة بك لوحات التحكم وأقراص .
مكتبة هو تطبيق قالب وتمكن:
- تحميل التكوين , أسماء وحدات تحكم , النواتج , المدخلات , أجهزة الاستشعار , الخ .
- ضمان الاتصال وحدة تحكم النظام
- وتلقي حالة فك تحكم البيانات
- إرسال أوامر تحكم بيانيا (مع التصور الأجسام) أو من شكل النص (مع اختيار الحقل)
- السيطرة على النظام عبر واي فاي , الإنترنت , SMS , أرسل
- التصور والسيطرة رسومية – تحميل ملف نص الكائنات الرسومية المرتبطة الأحداث ليتم تنفيذها (نظام eHouse) والحالات المعدات
- التلقائي التصور لوحدة التحكم (الغرفة)
يتم إنشاء التصور باستخدام مكتبة جافا ” أرجوحة ” مع عناصر ” JPanel ” , ” JButton ” الخ .
هذه الكائنات هي تلقائيا ” مضاعفة – مخزنة ” , بحيث يتم التخلص من تأثير من وميض , وهو مزعج جدا للمستخدم .
يمكن للمستخدم أيضا التحكم في الصورة:
- التكبير والتصغير
- نقل ما يصل , أسفل ومن جانب إلى آخر
- تغيير طريقة العرض الحالية عن طريق تحديد ” خيارات ”
- العودة إلى التصور رسومية لنظام من خلال تحديد ” رؤية ”
مثال على نظام eHouse التصور:
التكبير والتصغير أجريت مع استخدام الرسومات الموجهة للتحجيم (SVG) , ذلك أن الصورة لا يفقد جودته بعد تغيير النطاق:
التراجع عن التعديلات
يتم عرض وحدات تحكم تلقائيا الحالة:
يتم تحديثها عبر شبكة الكمبيوتر أو الإنترنت (TCP أو UDP) – عبر الإنترنت (في الوقت الحقيقي)
من خلال تحديد ” خيارات ” ويمكن أن ينظر إلى غرفة التحكم وحدد الولايات البرامج .
سيؤدي تغيير وضع UDP الواردة تلقائيا rewizualizacjÄ ™:
بالإضافة إلى تصور فردي مصممة على أساس التصميم المعماري وتركيب المنزل الذكي يتم تلقائيا إنشاء التصور بشكل مستقل لكل وحدة تحكم في النظام (لا سيما بالنسبة للRoomManagers وEthernetRoomManager – لغرف فردية) .
وهذا يسمح للوحات التحكم والتصور مستقلة لكل غرفة على حدة , دون مملة لإنشاء المشروع – القائمة على التصور النظام .
لCommManager (الولايات من أجهزة الاستشعار التنبيه , Ouputs)
لRoomManager وEthernetRoomManager:
المرجل تحكم , انتعاش CO (HeatManagera)
ويمكن الاطلاع على مزيد من المعلومات في المقالات المكرسة لeHouse4Android مكتبات البرمجة (eHouse لالروبوت – الروبوت جافا) , وقد ترجمت إلى SE جافا التي من أجل التوافق وسهولة تطوير البرمجيات على أنظمة تشغيل مختلفة .
THE SOURCE CODE
/ *
* تطبيقات قالب لنظام التصور الرسم , الذكية المنزل eHouse
* للمستخدمين المسجلين فقط للنظام eHouse , تتعاون الشركات جميع الحقوق محفوظة
*
* يتطلب فصول:
* Ehousecommunication . فئة – إرسال الأحداث إلى النظام
* EhouseTCP . فئة – التهيئة وصيانة الاتصالات عبر TCP / IP تحكم , تحديث البيانات من المدخلات والمخرجات النظام
* StatusEhouse . فئة – تخزين البيانات والإعدادات تحكم , تحديث على أساس مستمر على مدى TCP / IP وحدات تحكم ehouse1 (485)
* StatusCommManager . فئة – تخزين البيانات الحالية وإعدادات التحكم , تحديث على أساس مستمر على مدى TCP / IP وحدات تحكم ehouse2 (إيثرنت)
* GraphicObject . فئة – تخزين الكائنات الرسومية
* التصور . فئة – رسم الكائنات الرسومية (خطوط , الحذف , المستطيلات) والخدمات ذات الصلة الأحداث
*
* تطبيق قالب تصميم التصور البياني للنظام eHouse
* للمستخدمين المسجلين فقط , البائعين , حقوق الطبع والنشر التعاونيات ISYS . جميع الحقوق محفوظة EN
*
* الطبقات المطلوبة:
* Ehousecommunication . فئة – إرسال الأحداث إلى النظام
* EhouseTCP . فئة – التهيئة والصيانة الاتصالات TCP / IP مع وحدات تحكم , تحديث الوضع الراهن للتحكم
* StatusEhouse . فئة – وحدات تحكم الإعدادات وتخزين البيانات , تحديث البيانات (TCP / IP) لehouse1 وحدات تحكم (485)
* StatusCommManager . فئة – وحدات تحكم الإعدادات وتخزين البيانات , تحديث البيانات (TCP / IP) لehouse2 وحدات تحكم (إيثرنت)
* GraphicObject . فئة – رسم الكائنات تخزين البيانات
* التصور . فئة – رسم الكائنات الرسومية (خطوط , الحذف , المستطيلات) والتعامل مع الأحداث المتعلقة بها
* /
ehouse4java حزمة ;
استيراد جافا . AWT . * ;
استيراد جافا . 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 ;
/ **
* scrollpanes Oprional
* /
JScrollPane jsp1 ;
JScrollPane jsp2 ;
العامة buttonscounter الباحث ثابت ;
الباحث centerX العامة ;
الباحث CenterY العامة ;
الباحث prevCenterX العامة ;
الباحث prevCenterY العامة ;
الباحث Ycompensation العامة ;
prevOffsetX الباحث = 0 , prevOffsetY = 0 ;
ضعف prevScaleX ;
ضعف prevScaleY ;
قائمة المكبر العامة مزدوجة النهائي = 0 . 3 ;
الجمهور ساكنة سلسلة previousoptionsview = ” ” ;
/ **
* يخلق شكل جديد Ehouse4java . يبدأ وضع الطبقات والرسوم البيانية
* مكونات الإطار الرئيسي مع .
* /
Ehouse4java العامة () {
السوبر ( ” EHouse ” ) ;
OnCreate الخاص () ;
setDefaultCloseOperation (JFrame . EXIT_ON_CLOSE) ;
/ **
* يشرع جميع مكونات الرسم
* /
addComponentToPane (getContentPane ()) ;
setSize (400 , 400) ;
setLocation (200 , 0) ;
setMinimumSize (بعدا جديدا (200 , 200)) ;
setVisible (صحيح) ;
prevCenterX = (الباحث) التصور . getBounds () . getCenterX () ;
prevCenterY = (الباحث) التصور . getBounds () . getCenterY () ;
}
/ **
* يشرع جميع مكونات الجافة لوحات الرسم , أزرار , أشرطة التمرير , الخ . .
*
* @ بارام جزء
* /
addComponentToPane العامة باطلة (جزء حاوية) {
= صحيح optionfirsttime ;
= ExitB جديدة JButton ( ” خروج ” ) ;
ExitB . setActionCommand ( ” خروج ” ) ;
ExitB . addActionListener (هذا) ;
. . .
indexView الباحث = 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 قبل وحدات تحكم التحميل
* الحالة
* /
OnCreate الخاص باطلة العامة () { . . . }
/ **
* وسائط سطر الأوامر المعلمة @ الحجج
* /
الجمهور ساكنة باطلة الرئيسي (الخيط وسائط []) {
/ *
* إنشاء وعرض النموذج
* /
جافا . AWT . EventQueue . invokeLater (جديد Runnable () {
العامة المدى باطل () {
Ehouse4java جديدة () . setVisible (صحيح) ;
}
}) ;
}
/ **
* يدعم الأحداث التي يحتج بها بالضغط على زر
*
* @ بارام ه
* /
@ تجاوز
actionPerformed العامة الفراغ (ه ActionEvent) {
التبديل (ه . getActionCommand ()) {
حالة ” ZoomPlus ” :
prevOffsetX = ehousecommunication . OffsetX ;
prevOffsetY = ehousecommunication . إزاحة ;
ehousecommunication . ScaleX * = (1 + قائمة المكبر) ; / / * 100/zoomleve ;
ehousecommunication . ScaleY * = (1 + قائمة المكبر) ; / / * 100/zoomleve ;
/ / توسيط طريقة العرض بعد rescalling
ehousecommunication . OffsetX + = (الباحث) ((التصور . getBounds () . getCenterX () + prevOffsetX) * قائمة المكبر) ;
ehousecommunication . إزاحة + = (الباحث) ((التصور . getBounds () . getCenterY () + prevOffsetY) * قائمة المكبر) + Ycompensation / (1 / (2 * قائمة المكبر)) ;
EhouseTCP . ReadViewFile (ehousecommunication . currentview) ; / / حساب التكبير
تصور . إعادة رسم () ;
عودة ;
. . .
}
}
}