096111e983
.claude/ 제외(.gitignore 추가). 기존 초기커밋(5a96a69) 위에 신규·수정·이동분 커밋.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.0 KiB
4.0 KiB
RJ2-232 Simulator 사양서
C# WPF (스타일: HoodSimulator 동일 — Tokyo Night 다크 테마) 최종 수정 : 2026.06.07
UI 기능
통신 설정 전원 ON / OFF (on 시 환기모드, 풍량 1단, off 시 풍량 0) 모드 환기 / 자동 / 공기청정 / 바이패스 (환기, 자동, 공기청정 0 ~ 4단, 바이패스 1단, 자동은 풍량 변경 안됨) 풍량 0 / 1 / 2 / 3 / 4 예약 0 ~ 8 시간 (0은 예약 취소, 1시간 단위, 모드 전환 시 예약 해제) id 설정 vsp 설정
로그 저장 / 지우기
구현 내용 (2026.06.07)
역할 / 통신
- 룸콘(마스터) 시뮬레이터 — ERVSimulator(ERV, 응답측)와 RS-232로 연동.
- 규격 :
Protocol/ROOMCON/힘펠_환기장치프로토콜V3.7(펌웨어 My_RJ2.c / ERVSimulator RoomConProtocol.cs) - 포트 : RS-232, 9600 8N1
- 프레임 :
AA | CMD | D[2..12] | XOR(byte0~12) | EE(15바이트 고정) - COM 페어(가상 널모뎀 또는 어댑터 2개)로 RJ2 ↔ ERVSimulator RoomCon 포트(9600) 연결.
CMD (룸콘 → ERV)
| CMD | 이름 | 내용 |
|---|---|---|
| 0x00 | NORMAL | 상태 폴링(폴링 시작 시 주기 송신) → ERV가 0x07 응답 |
| 0x01 | EVENT | 모드/풍량/예약 변경 → ERV가 0x01 응답(모드·풍량·에러·온도) |
| 0x02 | RESTART1 | 환기 1~4단 preset 조회 → ERV가 0x02 응답 |
| 0x12 | RESTART2 | 바이패스/공청 preset 조회 → ERV가 0x12 응답 |
| 0x03 | VSP | 테스트모드 프리셋 설정(select/sa/ea) |
| 0x04 | EXIT | 테스트모드 종료 |
모드 코드 (EVENT byte[2]) — ERVSimulator RunMode enum 일치
0 = 환기 / 1 = 자동 / 2 = 바이패스 / 3 = 공기청정
- 전원 OFF = EVENT 모드 0(환기) + 풍량 0 으로 표현(ERV가 Power OFF 처리)
EVENT 패킷 데이터
| byte | 내용 |
|---|---|
| 2 | 운전모드 |
| 3 | 풍량(0~4) |
| 5 | Heater/UV (미사용 0) |
| 10 | 예약 flag (항상 1로 전송) |
| 11 | 예약 시간(시, 0=해제) |
| 12 | 예약 분(0) |
예약 연동 (룸콘 → ERV → 대시보드)
- 예약(시)을 EVENT
[10]=1, [11]=시로 항상 전송 → 설정·해제(0) 모두 전달. - ERVSimulator가 수신하여
ReserveHours / ReserveRemainSec반영 → ERVSim UI 표시 + 1초 카운트다운(0 도달 시 전원 OFF). - ERVSim의 HOMENET STATUS(reserve_remain)에 실려 PCDashBoard / WebDashBoard에도 그대로 반영.
- 모드 전환 시 예약 해제(
[11]=0) 전송 → ERV·대시보드 함께 해제.
VSP 설정 팝업 (테스트 모드)
- select 코드(펌웨어 My_RJ2.c) : 1
4 환기14 / 5 바이패스 / 69 공청14 (공청은 EA 미사용) - 환기 조회(RESTART1) / 바이패스·공청 조회(RESTART2)로 현재 preset 읽어 표 갱신
- 행별 SA/EA 수정 후 '설정' → 해당 select VSP(0x03) 송신, '테스트 종료' → EXIT(0x04)
ID 설정
- RS-232 점대점이라 프레임에 ID 필드 없음 → UI 입력값은 표시/로그용(전송 안 함).
ERV 응답 표시
- 운전모드 / 풍량 / 에러코드 / 실내온도 / 외기온도 (0x01·0x07 응답 파싱), 수신 카운트.
알람 / 에러 표시 (ERV ErrorCode 비트 디코드)
ERV 응답의 ErrorCode 바이트(응답 [7])를 비트별로 칩 표시. NORMAL(0x07)/EVENT(0x01) 응답마다 갱신.
- 알람(노랑) : 필터청소(0x01) / 필터교환(0x02)
- 에러(빨강, COLD=시안) : E02 온도센서(0x08) / E09 급기팬(0x80) / E10 배기팬(0x20) / COLD 장비보호(0x10) / E07 내부통신(0x40)
- 알람/에러 소스는 ERVSimulator(에러 카드 + 필터청소/교환 토글) → 같은 ErrorCode가 대시보드(STATUS)에도 반영됨.
| 비트 | 항목 | 구분 |
|---|---|---|
| 0x01 | 필터청소 | 알람 |
| 0x02 | 필터교환 | 알람 |
| 0x08 | E02 온도센서 | 에러 |
| 0x10 | COLD 장비보호 | 에러 |
| 0x20 | E10 배기(EA)팬 | 에러 |
| 0x40 | E07 내부통신 | 에러 |
| 0x80 | E09 급기(SA)팬 | 에러 |
참고
- 본 시뮬레이터는 프로토콜대로 송신하며, ERVSimulator는 모드/풍량/예약/preset 조회를 처리(VSP 설정값 적용은 로그만).