eHouse 1 – 홈 자동화 – 바이너리 형태의 컨트롤러 상태

eHouse 홈 자동화 , 건물 관리 버전 1 – 시스템 컨트롤러 상태의 프레임 홈 자동화 .
모든 기능을 만드는 방법 , 시각화를 필요로 제어 패널 효율적으로 자신의 소프트웨어는 바이너리 형태로 직접 디코딩 eHouse 한 드라이버 상태를 구현해야합니다 . 정상 작동 모드 또는 확장 주소 (Extended_address)의 선택에 따라 , 드라이버의 상태를 전송하는 프레임 (괄호로 확장 모드 주소에 차이를 표시)를 다음과 .
이 모드는 CommManager 드라이버의 감독하에 작동하는 데 필요한 및 이벤트 이외의 메시지 목적지 주소를 전송합니다 , 대상 장치에 자신의 주소 (손 이벤트를받을 보낸 사람을 알 수 – )에게 흔들 .
인터페이스 RS 경우 – 485는 확실히 드라이버에 연결할 직접 시도를하지 않는 것이 좋습니다 , 일부 명령을 보내는 건 등 청소 프로그램 메모리 (펌웨어)를 일으킬 수 있으므로 컨트롤러 자신의 생명을 끝낼 수있는 .
다른 명령 또는 RS의 임의의 신호 – 485는 시스템의 안정성을 저해하거나 확실히 그의 작품을 늦출 수있다 .
기본 eHouse 자동화 컨트롤러 생산 응용 프로그램의 감독하에 작동합니다 ” eHouse . EXE ” .
보안을 위해 , 당신은 응용 프로그램 eHouse을 통해에 연결하지 않고 드라이버의 상태를 읽을 수 있습니다 . EXE (UDP 프로토콜과 LAN) .
이 비입니다 – 침해 읽기 , 소프트웨어 나 컨트롤러도를로드 할 수 없습니다 , 과 더 있습니다 , RS를 통해 어떤 식 으로든 전송 프로토콜에 방해가되지 – 485 .
eHouse_1 컨트롤러 CommManager의 감독하에 일을 할 때 상황은 다릅니다 .
CommManager 컨트롤러 상태 (통합 패키지 eHouse 1 CommManager)를 보낼 수 있습니다 , UDP LAN이 데이터에 액세스 연결없는과 비입니다 – 침해뿐만 아니라에서 직접 CommManager 또는 기타 이더넷 Ehouse 컨트롤러 .
UDP 상태 이상 수신 데이터는 우리가 드라이버를 해칠 수 없다 , 수신 데이터의 최대 오해 .
UDP 드라이버의 안전에 아무 것도 보낼 수 없습니다 EHouse 시스템 , 드라이버는 클라이언트가 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 . 데이터의 크기 (데이터의 크기)
이 . 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 .
안전을 위해 , 데이터를 확인 부착 – 잘못된 방송 수행 제거하는 합계 .
명령 상태 보내기는 ‘ 에스 ‘ ,
드라이버의 프레임 상태 홈 자동화 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에 대한 현재는 영역
= 27 두가 + TCP_INDEX_INC을 STATUS_PROGRAM ; / / 없음 현재 프로그램
STATUS_INPUTEXT_A_ACTIVE = 28 2 + TCP_INDEX_INC ; / / 입력 inputextender 활성화 된 상태에서
STATUS_INPUTEXT_B_ACTIVE = 32 2 + TCP_INDEX_INC ; 활성화 된 상태에서 / / 입력 inputextender의 B
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의 B 경보 및 경고
STATUS_INPUTEXT_C = 60 +2 + TCP_INDEX_INC ; / / 입력 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 – CommManager의 감독하에 드라이버 eHouse 1 (하이브리드 시스템) eHouse 1의 상태와 통합
STATUS_EHOUSE1_DEVS = 0 ; / / 71 바이트 위의 RS485에 연결된 장치의 상태 (eHouse_1)를 삽입
STATUS_ADC_ETH = 72 ; / / ADC_measurements_16_inputs * 2B A / D_notation_as_for_RM_Vcc = 3 대 3
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_ZONE_NR +1 STATUS_ADC_PROGRAM ; / / ADC_program_number
STATUS_LIGHT_LEVEL = 2 STATUS_ADC_PROGRAM ; / /이 상태 3 dimmers / / 주차 3​​ * 2B
HM의 상태에 대한 온도의 예 계산
전 = 인덱스 아날로그 입력 0 . . HM gettemplm 기능 (MSB 15 , 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