eHouse 1 – 家庭自动化 – 控制器的状态以二进制形式

eHouse 家庭自动化 , 大厦管理 第1版 – 系统控制器的状态帧 家庭自动化 .
要创建一个全功能的 , 需要可视化的控制面板,有效的自己的软件需要实现以二进制形式直接解码eHouse 1驱动程序的状态 . 根据正常的操作模式的选择或扩展地址(Extended_address) , 帧发送驱动器的状态如下(括号内显着性差异在扩展模式地址) .
此模式需要的监督的CommManager驱动程序下工作,外部事件和发送消息的目的地址 , 可以告诉自己的地址到目的设备的发送方接收事件(手 – 摇) .
如果接口RS – 485绝对不建议直接连接到驱动器 , 发送一些命令可能会导致这样的清洁程序存储器(固件) 控制器 这可能结束自己的生命 .
其它命令或在RS中的随机信号 – 485可能会破坏系统的稳定性肯定减慢他的工作 .
本机eHouse 自动化控制器 应工作的监督下,生产性应用 ” eHouse . exe文件 ” .
出于安全考虑 , 你可以阅读驱动程序的状态没有连接到他们的应用程序eHouse . 埃克(UDP协议和局域网) .
这是不可 – 侵入阅读 , 不加载既不是软件也不控制器 , 更有什者 , 不以任何方式转让协议,通过RS侵入 – 485 .
目前的情况是不同的eHouse_1控制器工作的监督下,CommManager .
CommManager控制器可以发送状态(eHouse 1和CommManager于一体的综合包) , UDP局域网和对这些数据的访问是无连接的,非 – 侵入性,以及直接从CommManager或其他以太网Ehouse的控制器 .
UDP接收数据状态我们不能损害驱动程序, , 传入的​​数据和一个最大的误解 .
EHouse系统不发送任何UDP驾驶员安全 , 无论客户端是否接收到的数据通过UDP发送或驱动程序不 , 或客户的计数是否为0或250 .
从eHouse家庭自动化系统接收数据 , UDP是安全的,不会以任何方式控制器或eHouse软件加载 , 发送到LAN广播(UDP_broadcast) .
现状中有以下格式:
< ; ; 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> ; ;
正常模式/对 . (扩展地址)
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 . . 对于一个给定的命令的数据的其余部分的 .
如果你的驱动程序发送状态“ ; 的控制命令 ‘ 小号 ‘ .
继续后续的数据以二进制形式进行,以尽量减少通过一个串行RS的信息传输 – 485 .
为了确保安全 , 数据附加检查 – 综上所述,以消除不正确的广播执行 .
发送命令状态 ‘ 小号 ‘ ,
驱动程序的框架状态 家庭自动化 eHouse 1和描述的字节数(索引偏移取决于操作模式(正常或extended_address) .
这种不断的转移命名为以下TCP_INDEX_INC . 根据模式 , 对于正常的发送扩展地址或0,其可以采用的值是3 . 当编写软件 , 你可能认为这是作为一个变量的参数 , 因为它可以让我们轻松处理的数据,在以后的版本中,如果在一个这样或那样的帧转移 .
索引的每个字节帧状态的驱动程序eHouse 1(帧起始):
STATUS_ADC = 1 +2 + TCP_INDEX_INC ; / /值的A/D_converters_2_bytes_1B = MSB , 2B = LSB! .
STATUS_OUT = 17 +2 + TCP_INDEX_INC ; / /数字输出状态的第一个索引

/ /每输出1位LSB最小数 , MSB最大
STATUS_IN = 20 +2 + TCP_INDEX_INC ; / /数字输入的状态,LSB最小数 , MSB最大
STATUS_INT = 21 +2 + TCP_INDEX_INC ; / /国数字输入(中断)LSB最小数 , MSB最大
STATUS_OUT25 = 22 +2 + TCP_INDEX_INC ; 从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的一个处于活动状态
STATUS_INPUTEXT_B_ACTIVE = 32 +2 + TCP_INDEX_INC ; / /在活动状态的的输入inputextender乙
STATUS_INPUTEXT_C_ACTIVE = 36 +2 + TCP_INDEX_INC ; / /输入inputextender的C在处于激活状态
STATUS_INPUTEXT_A = 40 +2 + TCP_INDEX_INC ; / /输入inputextender一个警报和警告
STATUS_INPUTEXT_B = 50 +2 + TCP_INDEX_INC ; / /输入inputextender的乙报警和警告
STATUS_INPUTEXT_C = 60 +2 + TCP_INDEX_INC ; / /的输入inputextenderÇ报警和警告
/ /状态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 ; / /将状态71字节以上的设备连接到RS485(eHouse_1)
STATUS_ADC_ETH = 72 ; / / ADC_measurements_16_inputs * 2B A / D_notation_as_for_RM_Vcc = 3V3
STATUS_ADC_ETH_END STATUS_ADC_ETH +32 ; / /结束的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 STATUS_PROGRAM_NR +1 ; / / Number_CommManager_zone
STATUS_ADC_PROGRAM = STATUS_ZONE_NR +1 ; / / ADC_program_number
STATUS_ADC_PROGRAM STATUS_LIGHT_LEVEL = 2 ; / /状态调光器/ /调光3 * 2B
上的温度的状态的HM的实施例的计算
I =指数模拟量输入0 . . 15为:HM gettemplm功能(MSB , LSB) ;
TEMPHM [I]:= gettemplm(STR [STATUS_ADC_HEART + I * 2 + TCP_INDEX_INC] , 海峡[STATUS_ADC_HEART + I * 2 +1 + TCP_INDEX_INC) eHouse_Home_Automation_OpenSource_Delphi