Files
jeon 096111e983 feat: 06-17 신규 작업본 반영 (개발사양서/기능검토/승인원/Source 등 추가)
.claude/ 제외(.gitignore 추가). 기존 초기커밋(5a96a69) 위에 신규·수정·이동분 커밋.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 07:54:58 +09:00

86 lines
4.0 KiB
Markdown

# 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 환기1~4 / 5 바이패스 / 6~9 공청1~4 (공청은 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 설정값 적용은 로그만).