빌딩 자동화 eHouse – Windows 소프트웨어 오버레이 및 사용자 지정 알고리즘을 만들기

홈 자동화 PC 소프트웨어와 eHouse는 건물 자동화 시스템을위한 오버레이를 만들 수 있습니다 .
이 자신을 만들 수 있습니다 , 개인 알고리즘 , 시리얼을 제어하는​​ 펌웨어 또는 드라이버 소프트웨어에서 구현되지 않습니다 홈 자동화 eHouse .
이를 위해 , 우리는 (델파이 5) 소프트웨어 소스 코드를 사용자에게 제공 . 그들은 델파이의 최신 버전으로 컴파일 또는 다른 프로그래밍 언어를 사용할 수 있습니다 .
그들은 아마추어 프로그램을 무료로 사용할 수 있습니다 이미 우리는 의식적으로이 오래된 버전을 선택 .
그들은 Windows XP에서처럼 안정적으로 작동 , 추억 , 윈도우 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 ; / / 클린 에어 recuperator 입력 – 회복 맑은 공기 입력
= 13 HM_REQOUT ; / / 출력 recuperator 집 – 방에 heaten 회복 신선한 타격 공기 – 온도
= 14 HM_NAG ; / / 온도 제어 세 – 난방 및 라디에이터를위한 방법 밸브 – 온수기 또는 기타 난방 시스템에 대한 세 가지 방법을 차단 후 온도
HM_REQWYC = 15 ; / / 홈 recuperator 추출물 더러워 – 집 더러운 배기 온도의 회복
HM_BANGORA = 2 ; / / 난방 / 온수 탱크 고라 – 뜨거운 물 버퍼 TOP
HM_BANSRO = 0 ; / / 난방 / 온수 저장 탱크의 수단 – 중간 뜨거운 물 버퍼
VAR의 HADCNames : 배열 [0 . . 15] 문자열의 ; / / 센서의 이름 (입력을 측정) HeatManagera
기본 함수 EhouseLogAnalizer :
절차 init_heat_temperature_names ; / / 초기화 및 / 또는 온도 센서는 HM의 이름을 읽어
절차 loadnames_rm ; / /로드 RoomManagerĂłw 이름 (eHouse 1)
절차 readethernetdevs ; / /은 이더넷 드라이버 이름 (eHouse 2) 읽기
get_index_rm 기능 (STR : 문자열) : 정수 ; / / 반환 파일 이름 상태로 roomManagerami 검색과​​ 테이블의 색인
기능 GB (chr : 자) : 부울 ; / /는 읽기 상태를 Boolean 값을 반환
adc_hm 절차 (STR : 문자열 ; 인덱스 : 정수) ; / / 읽기 상태 HeatManagera의 기록 온도로 문자열을 변환
adc_rm 절차 (STR : 문자열 ; 인덱스 : 정수) ; 상태 RoomManagerĂłw를 읽을 때 / / 아날로그 측정의 문자열을 변환
gbs 기능 (B : 부울) : 문자열 ; / / 텍스트 양식 (0 부울 쓰기 , 1)
RMDeviceIndexByName 기능 (STR : 문자열) : 정수 ; / / 반환 이름 드라이버로 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 : 문자열) : 부울 ; / / 반환 드라이버 입력의 상태 이름과 항목 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 읽기
timer1 . 간격 : = 3,000 ; (밀리 초) / / 설정 순환 작업 간격 – 순환 데이터를 확인 시작 시간을 설정합니다
timer1 . 사용 : = true ; / / (상태 업데이트를 자동으로 작업을 시작 – 데이터의 정기적 인 검사를 포함
update_status ; / / 첫 번째 상태를 읽습니다
끝 ;
순환 데이터 검사는 함수를 Timer1에 의해 수행됩니다 (Timer1Timer) 매개 변수 Timer1에 설정된 시간 간격에서 실행 . 간격 (밀리 초) .
절차 TForm1 . Timer1Timer (발신자 : TObject) ;
VAR TF : textfile ;
시작하다
update_status ; / /이 드라이버의 상태를 변환
Test_save ; / 테스트 용 /은 텍스트 파일에 모든 결과를 기록
/을 시도 / 응용 프로그램에 대한 아이콘 파일을 KillExec 만들 . EXE 그 수 ” 감시 ” 충돌하기 전에 응용 프로그램을
AssignFile (TF , 경로 + ‘ 로그 \ 로그 – analizer . STP ‘ ) ;
/ / 응용 프로그램이 제대로 stampfile을 사용하여 일하는 WDT 알림 ” \ 로그를 기록합니다 – analizer . STP ”
재 작성 (TF) ;
writeln (TF , ‘ 1 ‘ ) ;
최종적으로 ;
closefile (TF) ;
끝 ;
끝 ;