بناء أتمتة eHouse – إنشاء تراكب برامج ويندوز وخوارزميات مخصصة

أتمتة المنزل eHouse مع برنامج PC يسمح لك لخلق تراكب لنظام التشغيل الآلي للبناء .
هذا يسمح لك لخلق بنفسك , خوارزميات الفردية , لم يتم تنفيذ البرامج في البرامج الثابتة أو برنامج التشغيل الذي يتحكم في المسلسل أتمتة المنزل eHouse .
تحقيقا لهذه الغاية , نحن تزويد المستخدمين مع رموز برمجيات المصدر (في دلفي 5) . ويمكن تجميعها وفقا لأحدث إصدارات دلفي أو استخدام لغات البرمجة الأخرى .
اخترنا عن وعي هذه الإصدارات القديمة كما هي بالفعل متاحة مجانا لبرنامج هواة .
أنها تعمل فقط بشكل صحيح كما في نظام التشغيل Windows XP , أفق , ويندوز 7 على حد سواء 32 و 64 بت .
ويسمى هذا البرنامج eHouseLogAnalizer وهذه التطبيقات قالب السجلات التي قراءة الملفات النصية حتى الآن .
يمكن إدارتها ومراقبتها من قبل التطبيقات KillWdt . إكس .
هنا بعض الملامح الرئيسية التطبيق:

  • تلا حالة وأسماء كافة برامج التشغيل
  • قراءة الحالة وإدخال أسماء جميع السائقين
  • قراءة القياسات وأسماء كافة برامج التشغيل قياس المدخلات
  • تحميل كافة البيانات إلى الذاكرة الداخلية برنامج , يمكن معالجتها التي مزيدا من تطبيق

يستخدم التطبيق وضع الملفات التي تم إنشاؤها إلى ملفات نصية في دليل ‘ سجلات / مركز / ‘ تمديد ‘ . حالة ‘ .
تتم قراءة الملف فقط في حالة حدوث تغييرات في تطبيق eHouse . إكس .

يتم تحميل بيانات التحكم في الوثائق الحالات التالية ” ehouse_rm_em_hm ” المدرجة في مجموعة RM .

وبالإضافة إلى ذلك , يتم الاحتفاظ البيانات HeatManager المتغيرات التالية:
bonfire_status: سلسلة ; / / وضع الشعلة لHeatManager – وضع لوحة التدفئة الموقد eHouse . إكس
boiler_status: سلسلة ; / / وضع المرجل لHM – وضع لوحة eHouse سخان التدفئة . إكس
Solar_status: سلسلة ; / / وضع النظام الشمسي – حالة التسخين الشمسي لوحة eHouse . إكس
recuperator_status: سلسلة ; / / حالة الاستجمام , تهوية , الهواء التدفئة – حالة التهوية والتدفئة استرداد الحرارة
الفهرس Hadc: مجموعة [0 . . 15] مزدوجة ; / / مدير الحرارة درجات الحرارة – درجة الحرارة القياسات HeatManager
/ مدير الفهارس / الحرارة للوصول المباشر من مجموعة الفهرس Hadc – مؤشرات درجة حرارة ثابتة للقراءة المباشرة من HeatManager درجة الحرارة
CONST HM_GWC = 3 ; / / GWC – الأرض مبادل حراري
HM_KOM1 = 4 ; / / موقد معطف 1 – الشعلة سترة المياه 1
HM_KOMKONV = 5 ; / / موقد konvekcyjne – الشعلة الحراري
HM_KOM2 = 6 ; / / حريق PLANE 2 – الشعلة سترة المياه 2 (النسخ الاحتياطي)
HM_TWEWN = 7 ; / / درجة حرارة الغرفة الداخلية – الداخلية درجة حرارة الغرفة
HM_SOLAR = 9 ; / سون جامع / – نظام الطاقة الشمسية
HM_ZEWNPN = 8 ; / / خارجي درجة الحرارة الشمال – درجة الحرارة الخارجية الشمال
HM_ZEWNPD = 1 ; / / خارجي درجة حرارة الجنوب – درجة الحرارة الخارجية الجنوب
HM_KOC = 10 ; / المرجل درجة الحرارة / – المرجل درجة الحرارة
HM_BANDOL = 11 ; / / CO / خزان الماء الساخن أسفل – watter الساخنة عازلة أسفل
HM_REQIN = 12 ; / / نظيفة إدخال الهواء المنقه – إدخال الهواء الاستجمام واضحة
HM_REQOUT = 13 ; / / الإخراج المنقه الرئيسية – heaten الهواء الاستجمام ضربة جديدة لغرفة – درجة الحرارة
HM_NAG = 14 ; / التحكم / درجة الحرارة 3 – صمام الطريق لمشعات التدفئة ولل – درجة الحرارة بعد قطع الطرق الثلاث لسخان المياه أو غيرها من نظام التدفئة
HM_REQWYC = 15 ; / / الصفحة الرئيسية المنقه استخراج القذرة – الاستجمام من العادم الرئيسية TEMP القذرة
HM_BANGORA = 2 ; / / التدفئة / خزان الماء الساخن غورا – TOP المياه الساخنة العازلة
HM_BANSRO = 0 ; / / التدفئة / خزان المياه الساخنة وسيلة لل – MIDDLE عازلة الماء الساخن
HADCNames فار: مجموعة [0 . . 15] من سلسلة ; / / أسماء أجهزة الاستشعار (قياس المدخلات) HeatManagera
الوظائف الأساسية EhouseLogAnalizer:
الإجراء init_heat_temperature_names ; / / تهيئة و / أو أجهزة استشعار درجة الحرارة قراءة أسماء HM
الإجراء loadnames_rm ; / أسماء RoomManagerĂłw / تحميل (eHouse 1)
الإجراء readethernetdevs ; / / قراءة أسماء سائق إيثرنت (eHouse 2)
get_index_rm وظيفة (شارع: سلسلة): عدد صحيح ; / / إرجاع مؤشر الجدول مع البحث roomManagerami حسب الحالة اسم الملف
وظيفة غيغابايت (مركز حقوق الإنسان: شار): منطقية ; / / إرجاع قيمة منطقية لحالة القراءة
adc_hm الداخلي (شارع: سلسلة ; الفهرس: عدد صحيح) ; / / تحويل السلسلة مع درجات حرارة سجلت في حالة القراءة HeatManagera
adc_rm الداخلي (شارع: سلسلة ; الفهرس: عدد صحيح) ; / / تحويل سلسلة من القياسات التناظرية عند قراءة حالة RoomManagerĂłw
باريه وظيفة (ب: منطقية): سلسلة ; / / كتابة النص في شكل منطقي (0 , 1)
وظيفة RMDeviceIndexByName (شارع: سلسلة): عدد صحيح ; / / إرجاع مؤشر الجدول مع RoomManagerami البحث بواسطة اسم السائق
RMGetOutputStateNr وظيفة (رقم الوثيقة: عدد صحيح ; OutputNr: عدد صحيح): منطقية ; / / العودة إلى الدولة RM خرج [مؤشر] وإخراج عدد OutputNR
RMGetOutputState وظيفة (رقم الوثيقة: عدد صحيح ; OutputName: سلسلة): منطقية ; / / إرجاع الناتج RM الدولة [مؤشر] ودعا إلى OutputName
RMGetInputStateNr وظيفة (رقم الوثيقة: عدد صحيح ; InputNr: عدد صحيح): منطقية ; / / إرجاع حالة RM المدخلات [مؤشر] وعدد InputNr دخول
RMGetInputState وظيفة (رقم الوثيقة: عدد صحيح ; InputName: سلسلة): منطقية ; / / إرجاع حالة RM المدخلات [مؤشر] واسم الدخول InputName
RMGetTempNr وظيفة (رقم الوثيقة: عدد صحيح ; InputNr: عدد صحيح): مزدوج ; / / إرجاع درجة حرارة RM [مؤشر] وعدد InputNr دخول
RMGetTemp وظيفة (رقم الوثيقة: عدد صحيح ; InputName: سلسلة): مزدوجة ; / / إرجاع درجة حرارة RM [مؤشر] واسم الدخول InputName
RMGetInvPercent وظيفة (رقم الوثيقة: عدد صحيح ; InputName: سلسلة): مزدوجة ; / / بإرجاع قياس نسبة العكسي 100 % – X RM [مؤشر] واسم InputName الدخول (فيما يتعلق تحكم العرض الجهد)
RMGetInvPercentNr وظيفة (رقم الوثيقة: عدد صحيح ; InputNr: عدد صحيح): مزدوج ; / / بإرجاع قياس نسبة العكسي 100 % – X RM [مؤشر] وعدد InputNr الدخول (فيما يتعلق تحكم العرض الجهد)
RMGetPercent وظيفة (رقم الوثيقة: عدد صحيح ; InputName: سلسلة): مزدوجة ; / / بإرجاع قياس نسبة [مؤشر] RM واسم InputName الدخول (فيما يتعلق تحكم العرض الجهد)
RMGetPercentNr وظيفة (رقم الوثيقة: عدد صحيح ; InputNr: عدد صحيح): مزدوج ; / / بإرجاع قياس نسبة العكسي 100 % – X RM [مؤشر] واسم InputNr الدخول (فيما يتعلق تحكم العرض الجهد)
RMGetDeviceOutputState وظيفة (Devname: سلسلة ; OutputName: سلسلة): منطقية ; / دعا / إرجاع حالة السائق خرج دعا Devname والخروج OutputName
RMGetDeviceInputState وظيفة (Devname: سلسلة ; InputName: سلسلة): منطقية ; / / إرجاع حالة إدخال اسم السائق واسم دخول InputName Devname
HMGetTemp وظيفة (InputName: سلسلة): مزدوجة ; / / العودة درجة حرارة قياس المدخلات دعا InputName HeatManagera
HMGetTempNr وظيفة (InputNr: عدد صحيح): مزدوج ; / / العودة درجة حرارة قياس مدخلات لعدد InputNr HeatManagera (1 . . 16)
chk_int ظيفة (ST: سلسلة): عدد صحيح ; / / الآمن لتحويل سلسلة إلى عدد صحيح
الإجراء update_status ; / / تحديث حالة كافة برامج التشغيل في الجدول (يجب تشغيل دوريا)
الإجراء Test_save ; / / اختبار الإجراء لكتابة النتائج إلى ملف نصي لسهولة
تهيئة برنامج التشغيل ويتم إجراء كافة أسماء بمجرد بدء التطبيق (FormCreate)
الإجراء TForm1 . FormCreate (المرسل: TObject) ;
بدأ
المسار: = getcurrentdir () ; / / الحصول على المسار الحالي للبرنامج يجب أن يكون في الدليل % eHouse_DIR % \ BIN \
المسار: = stringreplace (مسار , ‘ \ بن ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / الحصول على مسار التطبيق eHouse – يحدد مسار التطبيق eHouse
loadnames_rm ; أسماء تحكم / / تحميل ehouse1 – الأحمال اسم السائقين eHouse 1
init_heat_temperature_names ; / / heatManagera أجهزة الاستشعار تحميل اسم
readethernetdevs ; / / تحميل وحدات تحكم إيثرنت أسماء eHouse – قراءة أسماء الجهاز eHouse 2
timer1 . الفاصل الزمني: = 3000 ; / مهمة دورية / مجموعة الفاصل الزمني بالميلي – يحدد الوقت المناسب لبدء فحص البيانات الدورية
timer1 . تمكين: = صحيح ; / / ابدأ المهام الآلي (تحديث الحالة – يتضمن التدقيق المنتظم للبيانات
update_status ; / / يقرأ الحالة الأول
نهاية ;
ويتم فحص دوري البيانات بواسطة الدالة Timer1 (Timer1Timer) يعمل في فترة من الوقت المعين في المعلمة Timer1 . الفاصل الزمني (بالملي ثانية) .
الإجراء TForm1 . Timer1Timer (المرسل: TObject) ;
فار TF: ملف نصي ;
بدأ
update_status ; / / تحويل حالة السائق
Test_save ; / / لاختبار يكتب كل النتائج إلى ملف نصي
حاول / / إنشاء ملف علامة لتطبيق KillExec . EXE التي يمكن أن ” راقب ” التطبيق قبل الحادث
AssignFile (TF , المسار + ‘ سجلات \ سجل – اناليزر . سان تومي وبرينسيبي ‘ ) ;
/ / إعلام WDT هذا تطبيق العمل بشكل صحيح باستخدام stampfile ” تسجيل الدخول \ سجل – اناليزر . سان تومي وبرينسيبي ”
إعادة كتابة (TF) ;
writeln (TF , ‘ 1 ‘ ) ;
أخيرا ;
closefile (TF) ;
نهاية ;
نهاية ;