家庭自动化控制器解码的二进制状态 – 免费的源代码

家庭自动化 , 大厦管理 eHouse – 解码微处理器控制器的状态
家庭自动化 收到连接到局域网或无线的控制面板 , 通过UDP(User Datagram Protocol,用户数据报协议) .
标准帧接收状态以二进制形式 , 同 控制器 本文中讨论的 ” 智能建筑eHouse控制器的状态包 ” .
解码帧需要分析每一个位的数据包 .
此外 , 每种类型的控制器:

  • RoomManager
  • ExternalManager
  • HeatManager
  • InputExtender
  • CommManager
  • LevelManager
  • EthernetRoomManager

在数字输入量有差别 , 测量输入 , 数字输出 , 调光器 , 监控功能和算法, , 根据控制器的类型的数据在标准帧发生变异 .
这导致在需要为每个类型的控制器独立地进行解码的比特由位 .
在实施所有类型的微处理器控制器来创建和测试帧的解码算法的情况下,可能需要长达1个月 .
为了尽量减少这种时间降至最低 , ,方便准备提出的算法借用eHouse . exe应用程序 , 能够自动解码控制器和负载数据的所有信息到模板中记录的触摸屏(片)的Windows XP , 远景 , 7 , 8 .
后自动加载的的eHouse软件库的数据 , 几行代码 , 你可以在几分钟之内创建自己的控制算法eHouse系统 .
二进制的帧解码软件的eHouse状态标准模板库面板中实现 . 需要做二进制 , 没有eHouse的以太网控制器,可直接解码状态 . exe应用程序监督 .
解码整个帧(微处理器控制器eHouse1 RM , EM , HM)是通过(参数str:array_of_char的程序set_rm功能 ; TCP_INDEX_INC:整数) ;
参数的函数的缓冲区状态和偏移(位移) . 缓冲区中包含的所有接收到的数据从状态 . 偏移量取决于传输类型(扩展模式的地址 , 正常 , 和其他未来通信算法依赖于应用程序) .
它会自动填充阵列状态为每一个单独的控制器,可以直接在屏幕上触摸面板操作的数据或更新数据自动 .
此功能被激活时,在事件过程中接收数据从UDP socket组件(TNMUDP – 称为二进制)的事件onDataReceived .
接待处如下:
程序TForm1 . binaryDataReceived(发件人:TComponent ;
NumberBytes:整数 ; FromIP:字符串 ; 端口:整数) ;
VAR C:数组[0 . . 1024]的字符 ;
MyStream的:TMemoryStream ;
开始
如果filesystem_status然后退出 ; / /如果没有文件系统filesystem_status的
MyStream的:TMemoryStream . 创建 ; / /创建一个数据流
二进制 . ReadStream(MyStream的) ; / /读取数据流
MyStream的 . 阅读(C [0] , NumberBytes) ; / /加载缓冲液C
set_rm(C , 1) ; / /将二进制数据转换和加载寄存器Rm控制器eHouse 1 [索引]
Test_save ; / /测试记录输出到一个文本文件,便于操作
update_panel ; / /加载数据的控制面板
结束 ;
它可以让你自动与非 – 侵入收集的数据通过LAN或Wi – 广播包的网络连接,并通过UDP(User Datagram Protocol,用户数据报协议) .
更没有什么只需要一个开放的连接到服务器侦听的端口上广播 ‘ 6789 ‘ 违约或其他 .
错误链接 , 网络 , 的路由器不会导致暂停或不明软件错误(如与TCP服务器通信的情况下) , 但消失只是更新数据,而不影响数据或合适的服务器UDP客户端应用程序 .

警告! . 如果您创建eHouse家庭自动化控制软件在Windows , 它是要落实在一个应用程序中的所有算法 , 对数据进行分析,并执行所有的算法和可视化 . 有时,我们观察到2个UDP监听套接字不能存在于同一台PC .
最重要的变量库中的二进制文件:
boiler_alarm:布尔= FALSE ; / /锅炉报警器报警器设定的温度以上
/ /以上 – 温度报警锅炉
bonfire_stat:整数 ; / /篝火取暖级别为0 – 7二进制模式 – 就业状况火灾
/ / 0 – 火了 – 不热
/ / 1 – 消防/灭火=> ; ; 绿化水平< ; ; 温度夹克(绿色LED闪烁) – 到期呈绿色闪烁
/ / 2 – 火=> ; ; 绿化水平> ; ; =温度夹克> ; ; 黄平 – histeressis(绿色LED) – 绿色
/ / 3 – 火=> ; ; 黄平 – histeressis> ; ; 温度夹克> ; ; histeressis水平+黄色)(绿色+黄色LED) – 绿色 – 黄
/ / 4 – 火=> ; ; 黄平+ histeressis> ; ; 温度夹克> ; ; 红色等级 – histeressis(黄色) – 黄
/ / 5 – 无条件=> ; ; 红色等级 – histeressis < ; ; 温度夹克< ; ; histeressis级+红色(红色+黄色LED)黄色 – 红色
/ / 6 – 无条件=> ; ; 温度夹克> ; ; histeressis级+红色(红色LED恒流) – 红色
/ / 7 – 无条件=> ; ; 温度夹克> ; ; “篝火报警(红色LED闪烁)ALARM – 红色闪烁
bonfire_sensor_error:布尔= FALSE ; / /错误传感器篝火太多不同的水夹套温度传感器,两个
/ /错误壁炉地幔温度传感器太大的区别
recuperator_status:字符串 ; / /状态的休养 , 通风 , 空气加热 – 换热器和通风状况
recu_winter:布尔= FALSE ; / /冬季/夏季换热器换热器模式启用/禁用 – 换热器冬季/夏季
recu_manual_amalva:布尔=真 ; / /换热器自动/手动模式为amalva换热器的(内部控制键盘amalva自动管理 , 手册,以eHouse HeatManager)/ /
换热器amalva手动/自动
went_cooler:布尔=真 ; / /水冷却器通风或冷却器系统中的休养疗养或GWC ON / OFF ON / OFF
went_gwc:布尔= FALSE ; / / GHE(地埋管换热器)伺服电机开/关 – 地埋管换热器电机开/关
went_aux_gwc_fan:布尔= FALSE ; / /辅助的GWC呼吸/地下埋管换热器风扇ON / OFF开关 – GWC风扇
bonfire_dgp:布尔= FALSE ; / /篝火热空气分配系统启用/禁用 – 范分布的热空气从壁炉DGP
ventilation_on:布尔= FALSE ; / /通风系统目前正在开/关 – 包括通风和热回收
heater_pump:布尔=真 ; / /泵,加热器,通风开/关 – 热泵供热和通风回路散热器
three_ways_cutoff:整数= 0 ; / /三种方式截止方向0关闭 , 提高1级 , – 降低级别1)的方向的旋转电 – 单向阀
solar_pump:布尔= FALSE ; / /太阳能水泵的开/关 – 太阳能水泵
boiler_on:布尔= FALSE ; / /锅炉启用/禁用 – 锅炉的开/关
boiler_pump:布尔= FALSE ; / /状态的锅炉给水泵的开/关 – 锅炉给水泵的开/关
boiler_fuel_out:布尔= FALSE ; / /锅炉的燃料aproximate(计算加热时间) – 固体燃料的锅炉(小时的锅炉的操作的基础上,计算出的估计的燃料短缺)
boiler_power_on:布尔= FALSE ; / /锅炉supplay的电源开/关 ; – 锅炉电源开/关
boiler_fuel_supply_override:布尔= FALSE ; / /覆盖supplyier的燃料锅炉(通过的eHouse /内部锅炉控制器的控制) – 家长控制燃料输送系统eHouse开/关
bonfire_pump:布尔= FALSE ; / /篝火泵的开/关状态 – 消防泵的开/关
recu_speed:整数= 0 ; / /换热器Speeed的0 . . 3 – 换热器的速度
recu_temperature:整数 ; / /温度的RECU 0 . . 30C温度换热器amalwa
_recu_mode:字符串= ‘ ‘ ; / /疗养模式,文本,因为它HEatManager控制面板(eHouse . EXE) – 换热器模式的控制面板的应用HeatMAnagerem eHouse . exe文件
去串 ; / /文本通风状态作为一个HeatManager的控制面板(eHouse . EXE) – 通风状况eHouse HeatManager面板一样 . exe文件
锅炉 , 太阳能:字符串 ; / /锅炉 , 太阳能的文字HeatManager地位的控制面板(eHouse . EXE) – 状态的锅炉和太阳能电池板的的控制(HeatManager)eHouse . exe文件
科米:字符串 ; / /文本篝火状态作为一个HeatManager的控制面板(eHouse . EXE) – 消防控制面板的应用heatmanager eHouse地位 . exe文件
控制灯