eHouse 1 – บ้านอัตโนมัติ – ควบคุมรัฐในรูปแบบไบนารี

eHouse บ้านอัตโนมัติ , การจัดการอาคาร รุ่นที่ 1 – กรอบของสถ​​านะของตัวควบคุมระบบ บ้านอัตโนมัติ .
เพื่อสร้างการทำงานอย่างเต็มที่ , ซอฟต์แวร์ของตัวเองที่มีประสิทธิภาพสำหรับแผงควบคุมที่จำเป็นต้องมีการสร้างภาพต้องใช้สถานะถอดรหัสโดยตรง eHouse ขับที่ 1 ในรูปแบบไบนารี . ทั้งนี้ขึ้นอยู่กับทางเลือกของโหมดการทำงานปกติหรือที่อยู่ extended (Extended_address) , กรอบส่งสถานะของไดรเวอร์เป็นดังนี้ (ในวงเล็บเครื่องหมายความแตกต่างในที่อยู่โหมดขยาย) .
โหมดนี้จะต้องทำงานภายใต้การกำกับดูแลของไดรเวอร์ CommManager และส่งข้อความที่อยู่ปลายทางนอกเหตุการณ์ , ที่อยู่ของตนเองไปยังอุปกรณ์ปลายทางสามารถบอกผู้ส่งเพื่อรับเหตุการณ์ (มือ – เขย่า) .
ถ้า Interface RS – 485 แน่นอนไม่แนะนำพยายามที่จะเชื่อมต่อโดยตรงกับคนขับรถ , การส่งคำสั่งเป็นบางตัวอาจทำให้การทำความสะอาดหน่วยความจำโปรแกรมดังกล่าว (firmware) ควบคุม ซึ่งอาจจบชีวิตของพวกเขา .
คำสั่งอื่น ๆ หรือสัญญาณสุ่มของสินค้า – 485 อาจบ่อนทำลายความมั่นคงของระบบหรือแน่นอนชะลอการทำงานของเขา .
eHouse พื้นเมือง ควบคุมการทำงานอัตโนมัติ ควรจะทำงานภายใต้การกำกับดูแลของการประยุกต์ใช้ผลิต ” eHouse . exe ” .
สำหรับการรักษาความปลอดภัย , คุณสามารถอ่านสถานะของโปรแกรมควบคุมโดยไม่ต้องต่อกับพวกเขาผ่านโปรแกรม eHouse . exe (โปรโตคอล UDP และ LAN) .
นี้จะไม่ – อ่านรุกราน , ไม่ได้โหลดซอฟต์แวร์มิได้ควบคุม , และเป็นมากกว่าสิ่งที่ , ไม่ได้ล่วงล้ำในโปรโตคอลการถ่ายโอนทางผ่านทาง RS – 485 .
สถานการณ์ที่แตกต่างกันเมื่อ eHouse_1 ควบคุมการทำงานภายใต้การกำกับดูแลของ CommManager .
CommManager ควบคุมสามารถส่งสถานะ (eHouse 1 และ CommManager ในแพคเกจแบบบูรณาการ) , UDP LAN และการเข้าถึงข้อมูลนี้เป็น connectionless และไม่ใช่ – CommManager เช่นเดียวกับโดยตรงจากการรุกรานหรืออื่น ๆ อีเธอร์เน็ตควบคุม Ehouse .
การรับข้อมูลสถานภาพ UDP เราไม่สามารถทำอันตรายคนขับรถ , และสูงสุดของข้อมูลที่เข้ามาตีความผิด .
ระบบ EHouse ที่จะไม่ส่งอะไรที่จะปลอดภัยขับ UDP , ขับไม่สำคัญว่าลูกค้าจะได้รับข้อมูลที่ส่งผ่าน UDP หรือไม่ , หรือว่านับจากลูกค้าเป็น 0 หรือ 250 .
รับข้อมูลจากระบบอัตโนมัติ eHouse บ้าน , UDP มีความปลอดภัยและไม่โหลดในทางใดทางหนึ่งหรือซอฟต์แวร์ควบคุม eHouse , ส่งออกอากาศ (UDP_broadcast) กับ LAN .
กล่องสถานะมีรูปแบบต่อไปนี้:
< ; ; data_size> ; ; (< ; ; The_destination_address_H> ; ; < ; ; The_destination_address_L> ; ; ) < ; ; Local_addres_H> ; ; < ; ; Local_address_L> ; ; < ; ; คำสั่ง> ; ; < ; ; ข้อมูล _1> ; ; . . . . . < ; ; ข้อมูล> ; ; < ; ; Data_N> ; ; < ; ; data_size> ; ; (< ; ; The_destination_address_H> ; ; < ; ; The_destination_address_L> ; ; ) < ; ; Local_address_H> ; ; < ; ; Local_address_L> ; ; < ; ; คำสั่ง> ; ; < ; ; ข้อมูล _1> ; ; . . . . . < ; ; ข้อมูล> ; ; < ; ; Data_N> ; ; < ; ; 0> ; ;
โหมดปกติ / VS . (ที่อยู่ยาว)
1 . ขนาดของข้อมูล (ขนาดของข้อมูล)
2 . Address_H_target (Address_H_target)
3 . Address_L_target (Address_L_target)
4 . Control_command (Address_H_of_local_controller_return_path)
5 . Data_1_byte (Address_L_of_local_controller_return_path)
6 . Data_2_byte (Control_Command)
7 Data_3_byte (Data_1_byte)
8 . . ส่วนที่เหลือของข้อมูลสำหรับคำสั่งที่กำหนด .
ถ้าคุณส่งสถานะของไดรเวอร์ ' ; คำสั่งการควบคุม ‘ s ‘ .
ต่อไปตามข้อมูลในรูปแบบไบนารีเพื่อลดการถ่ายโอนข้อมูลผ่านอนุกรม RS – 485 .
เพื่อความปลอดภัย , ข้อมูลจะถูกแนบตรวจสอบ – รวมที่จะกำจัดไม่ถูกต้องดำเนินการออกอากาศ .
สถานะคำสั่งส่งเป็น ‘ s ‘ ,
สถานะกรอบของไดรเวอร์ บ้านอัตโนมัติ eHouse 1 และคำอธิบายของจำนวนไบต์ (กะดัชนีขึ้นอยู่กับโหมดการทำงาน (ปกติหรือ extended_address) .
นี้คงขยับชื่อด้านล่าง TCP_INDEX_INC . ขึ้นอยู่กับโหมด , มันอาจนำมาใช้ค่าของ 3 สำหรับที่อยู่ extended หรือ 0 สำหรับการส่งปกติ . เมื่อจะเขียนโปรแกรม , คุณอาจพิจารณาพารามิเตอร์นี้เป็นตัวแปร , เพราะจะช่วยให้เราได้อย่างง่ายดายจัดการข้อมูลในรุ่นที่ใหม่กว่าหากกรอบจะเปลี่ยนในทางใดทางหนึ่ง .
ดัชนีแต่ละสถานะกรอบ byte ของ eHouse ไดรเวอร์ 1 (เริ่มต้นของเฟรม):
STATUS_ADC = 1 +2 + TCP_INDEX_INC ; / / ค่าของ A/D_converters_2_bytes_1B = MSB , LSB 2B =! .
STATUS_OUT = 17 + 2 TCP_INDEX_INC ; / / เอาท์พุทดิจิตอลกล่าวดัชนีแรก

/ / เอาท์พุทแต่ละ LSB บิต 1 จำนวนน้อยที่สุด , ที่ใหญ่ที่สุด MSB
STATUS_IN = 20 + 2 TCP_INDEX_INC ; / input / รัฐดิจิตอลจำนวน LSB เล็ก , ที่ใหญ่ที่สุด MSB
STATUS_INT = 21 + 2 TCP_INDEX_INC ; / / States ของปัจจัยการผลิตดิจิตอล (interrupt) LSB จำนวนน้อยที่สุด , ที่ใหญ่ที่สุด MSB
STATUS_OUT25 = 22 + 2 TCP_INDEX_INC ; รัฐ / Outputs / จาก 25 . . 32 เช่นเดียวกับการส่งออก
STATUS_LIGHT = 23 + 2 TCP_INDEX_INC ; / / สถานะของหนึ่ง 1B หรี่หรี่
STATUS_ZONE_PGM = 26 + 2 TCP_INDEX_INC ; / / ไม่มีโซนปัจจุบัน EM
STATUS_PROGRAM = 27 + 2 TCP_INDEX_INC ; / / ไม่มีโปรแกรมปัจจุบัน
STATUS_INPUTEXT_A_ACTIVE = 28 + 2 TCP_INDEX_INC ; / inputextender Input / ในสภาพที่ใช้งาน
STATUS_INPUTEXT_B_ACTIVE = 32 + 2 TCP_INDEX_INC ; / / B inputextender Input ในสภาพที่ใช้งาน
STATUS_INPUTEXT_C_ACTIVE = 36 + 2 TCP_INDEX_INC ; C inputextender Input / / ในสภาพที่ใช้งาน
STATUS_INPUTEXT_A = 40 + 2 TCP_INDEX_INC ; Input / / inputextender สัญญาณเตือนภัยและเตือนภัย
STATUS_INPUTEXT_B = 50 + 2 TCP_INDEX_INC ; Input / / สัญญาณเตือนภัย B inputextender และเตือนภัย
STATUS_INPUTEXT_C = 60 + 2 TCP_INDEX_INC ; สัญญาณเตือนภัย / Input / inputextender C และคำเตือน
/ HeatManager สถานะ /
STATUS_ADC_HEART = 1 +2 + TCP_INDEX_INC ; / / วัดอุณหภูมิจาก 16 เซ็นเซอร์แบบเดียวกับสำหรับ RM
STATUS_OUT_HEART = 33 + 2 TCP_INDEX_INC ; / / เอาท์พุทดิจิตอลกล่าวในทำนองเดียวกันเพื่อ RM
WENT_MODE = 51 + TCP_INDEX_INC ;
RECU_MODE = 50 + TCP_INDEX_INC ;
CURRENT_PGM = 38 + TCP_INDEX_INC ;
/ commmanager สถานะ / – บูรณาการกับสถานะของไดรเวอร์ eHouse 1 (ระบบไฮบริ) eHouse 1 ภายใต้การกำกับดูแลของ CommManager
STATUS_EHOUSE1_DEVS = 0 ; / / วางสถานะของอุปกรณ์เชื่อมต่อ RS485 (eHouse_1) ข้างต้น 71 ไบต์
STATUS_ADC_ETH = 72 ; / / * ADC_measurements_16_inputs 2B / D_notation_as_for_RM_Vcc = 3V3
STATUS_ADC_ETH_END = 32 STATUS_ADC_ETH ; / / end of วัด A / D
STATUS_OUT_I2C = STATUS_ADC_ETH_END ; ครั้ง / / 2 I2C 10 * 8 / / สูงสุด = 160 ผลโมดูลโมดูลขยายเมื่อ
STATUS_INPUTS_I2C = STATUS_OUT_I2C 20 ; ครั้ง / / 2 i2c 6 * 8 / / สูงสุด 96 สัญญาณโมดูลขยาย
STATUS_ALARM_I2C = STATUS_INPUTS_I2C 12 ; / / input_in รัฐปลุก (ด้วยความเคารพไปยังหน้ากากสำหรับโซนความปลอดภัยในปัจจุบัน)
STATUS_WARNING_I2C = STATUS_ALARM_I2C 12 ; / input_warning / รัฐ (ด้วยความเคารพไปยังหน้ากากสำหรับโซนความปลอดภัยในปัจจุบัน)
STATUS_MONITORING_I2C = STATUS_WARNING_I2C 12 ; / input_condition ตรวจสอบ / (ด้วยความเคารพไปยังหน้ากากสำหรับโซนความปลอดภัยปัจจุบัน)
STATUS_PROGRAM_NR = STATUS_MONITORING_I2C 12 ; / / Program_number_CommManager
STATUS_ZONE_NR = +1 STATUS_PROGRAM_NR ; / / Number_CommManager_zone
STATUS_ADC_PROGRAM = STATUS_ZONE_NR 1 ; / ADC_program_number /
STATUS_ADC_PROGRAM STATUS_LIGHT_LEVEL = 2 ; / / สถานะ 3 dimmers / Dimmer / 3 * 2B
การคำนวณตัวอย่างของอุณหภูมิที่มีต่อสถานะของ HM
i = ใส่ดัชนีอนาล็อก 0 . . 15 สำหรับ HM gettemplm ฟังก์ชัน (MSB , lsb) ;
TEMPHM [i]: = gettemplm (str [STATUS_ADC_HEART + i * 2 + TCP_INDEX_INC] , str [STATUS_ADC_HEART + i * 2 +1 + TCP_INDEX_INC]) eHouse_Home_Automation_OpenSource_Delphi