楼宇自动化eHouse – 创建一个Windows软件覆盖和自定义算法

家庭自动化 eHouse与PC软件,允许你创建覆盖的楼宇自动化系统 .
这使您可以创建自己的 , 单独的算法 , 未实现的固件或驱动程序软件控制串行 家庭自动化 eHouse .
为此 , 我们为用户提供软件的源代码(在Delphi 5) . 它们可以被编译新版本的Delphi,或用于其他编程语言 .
我们有意识地选择了这个古老的版本,因为他们是业余的程序已经可以免费使用 .
他们的工作在Windows XP一样可靠 , 远景 , Windows 7的32位和64位 .
该软件被称为eHouseLogAnalizer这些日志模板应用程序读取文本文件 .
它可以进行管理和监控的应用程序KillWdt . exe文件 .
应用程序的主要特点:

  • 读出的所有驱动程序的状态和名称
  • 读状态和进入所有驱动程序的名称
  • 阅读的测量和测量输入的所有驱动程序的名称
  • 所有的数据加载到内部程序存储器 , 它可以进一步由一个应用程序处理的

该应用程序使用的状态创建的文件目录中的文本文件 ‘ 日志/状态/ ‘ 延期 ‘ . 状态 ‘ .
该文件是只读的变化的情况下,在应用程序eHouse . exe文件 .

数据加载控制器在下列情况下记录 ” ehouse_rm_em_hm ” 阵列RM中列出的 .

此外 , 数据保存HeatManager以下变量:
bonfire_status:字符串 ; / /状态篝火HeatManager – 状态壁炉加热板eHouse . exe文件
boiler_status:字符串 ; / /状态的锅炉HM – 状态的锅炉加热板eHouse . exe文件
Solar_status:字符串 ; / /状态的太阳能系统 – 状态的太阳能加热板eHouse . exe文件
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 ; / /火机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 ; / /温度控制的三 – 单向阀用于加热和散热器 – 三种方式截止后的水暖炉或其他供暖系统的温度
HM_REQWYC = 15 ; / /首页换热器提取脏 – 休养从家里脏排气温度
HM_BANGORA = 2 ; / /加热/热水箱戈拉 – 热水缓冲TOP的
HM_BANSRO = 0 ; / /暖气/热水储存罐的一种手段 – 中热水缓冲液
可无功HADCNames:数组[0 . . 15]的字符串 ; / /名称的传感器(测量输入)HeatManagera
基本功能EhouseLogAnalizer:
程序init_heat_temperature_names ; / /初始化和/或温度传感器读取的HM的名称
程序loadnames_rm ; / /负载RoomManagerĂłw中的名称(eHouse 1)
程序readethernetdevs ; / /读取的以太网驱动程序的名称(eHouse 2)
get_index_rm功能(参数str:String):整数 ; / /返回文件名,状态roomManagerami搜索索引的表
GB(字符:字符):布尔 ; / /返回一个布尔值的读取状态
adc_hm程序(STR:字符串 ; 指数:整数) ; / /将字符串转换与读状态HeatManagera的记录的温度为
adc_rm程序(STR:字符串 ; 指数:整数) ; / /将字符串转换成模拟测量时读取状态RoomManagerĂłw
GBS功能(B:布尔):字符串 ; / /写文本形式的布尔值(0 , 1)
RMDeviceIndexByName功能(参数str:String):整数 ; / /返回索引的表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 % – 所述RM [指数]和名称的条目InputName(关系到电源电压控制器)
RMGetInvPercentNr功能(索引:整数 ; InputNr:整数):双 ; / /返回百分比测量反向100 % – 所述RM [指数]的的入口InputNr数(有关电源电压控制器)
RMGetPercent功能(索引:整数 ; InputName:字符串): ; / /返回的百分比测量的RM [索引]进入InputName(有关电源电压控制器的名称)
RMGetPercentNr功能(索引:整数 ; InputNr:整数):双 ; / /返回百分比测量反向100 % – 所述RM [指数]的名称的条目InputNr(关系到电源电压控制器)
RMGetDeviceOutputState的功能(DEVNAME:字符串 ; OutputName:字符串):布尔 ; / /返回称为DEVNAME输出驱动器的状态,并呼吁OutputName
RMGetDeviceInputState的功能(DEVNAME:字符串 ; InputName:字符串):布尔 ; / /返回的状态的驱动器的输入的名称和的的条目DEVNAME InputName的名称
HMGetTemp功能(InputName:字符串):双 ; / /返回温度测量输入要求HeatManagera InputName
HMGetTempNr功能(InputNr:整数):双 ; / /返回温度测量输入数量为HeatManagera InputNr(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
定时器 . 间隔时间:3000 ; / /设置循环任务的时间间隔(以毫秒为单位) – 设置时间开始检查循环数据
定时器 . 启用:= TRUE ; / /开始自动工作(状态更新 – 包括定期检查的数据
update_status ; / /读取的第一个状态
结束 ;
循环数据进行检查由该函数的Timer1(Timer1Timer)运行在一个设定的时间间隔中的参数的Timer1 . 间隔(以毫秒为单位) .
程序TForm1 . Timer1Timer(发件人:TObject的) ;
VAR TF:文本文件 ;
开始
update_status ; / /将状态的驱动程序
Test_save ; / /测试的所有结果写入到一个文本文件
尝试/ /创建一个标记文件的应用程序KillExec . exe文件,可以 ” 看 ” 应用程序之前崩溃
AssignFile(TF , 路径+ ‘ 日志\ LOG – analizer . STP ‘ ) ;
/ /通知WDT应用程序正确使用stampfile的 ” LOG \日志 – analizer . STP ”
重写(TF) ;
writeln(TF , ‘ 1 ‘ ) ;
最后 ;
closefile(TF) ;
结束 ;
结束 ;