Files
HECO2/doc/260602_소스_개발사양서_260318.md
T
jeon 5a96a696b1 chore: HERV 통합 저장소 초기 커밋
- 펌웨어(program), C# 대시보드(TestProgram), 시뮬레이터(Simulator),
  프로토콜/문서(Protocol, doc) 전체를 단일 저장소로 통합
- program 폴더의 별도 git 저장소를 제거하고 통합 저장소에 흡수
- 빌드 산출물(program/build, bin/obj, *.o/.elf/.bin/.hex 등) .gitignore 처리
- 사내 Synology NAS Git 원격 연결 예정

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 21:44:23 +09:00

111 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 소스 ↔ 개발사양서 비교 분석
- **작성일**: 2026-06-02
- **대상 사양서**: `각실제어시스템_개발사양서_DL_동작로직_260318.pptx` (2026.03.18, 전경선 수석)
- **대상 소스**: `d:\project\nuvoton\HERV\program\User\` (Nuvoton NANO100SE3BN, arm-gnu-gcc 빌드)
- **시스템**: 각실제어 시스템(DL) — ERV 본체 + 각실 디퓨저(거실=room1, 침실1~3=room2~4)
> 검증 방식: 핵심 불일치 항목(쾌적조리 풍량, 스마트수면, 공기질 색상등급)은 소스 직접 확인,
> 광범위 항목은 다중 탐색으로 수집 후 교차 확인.
---
## 1. 요약 (Conclusion)
| 구분 | 항목 수 | 비고 |
|------|--------|------|
| ✅ 일치 | 9 | 센서 임계값, 집중/전실 판정, 안심회복, LED 등 |
| ❌ 불일치/미반영 | 3 | 쾌적조리 풍량, 스마트수면 26.03.18 개정, 공기질 색상등급 |
| ⚠️ 확인 필요 | 2 | 팬 VSP 4단/공청 값, 센서 주기 |
---
## 2. ✅ 일치하는 항목
| 사양 항목 | 사양값 | 코드 | 위치 |
|---|---|---|---|
| 센서→풍량단계 임계값 (슬라이드5) | CO2 600/700/800/900, VOC 250/300/350/400, PM2.5 15/30/50/70 | `m_CO2/VOC/PM2_5_Level_1~4` 기본값 동일 (CO2는 히스테리시스 50 적용) | `My_Uart.c:1313-1326` |
| 3종 센서 Max로 풍량 결정 | 최대 등급 채택 | CO2\|VOC\|PM2.5 OR 비트 → 0~4단 | `My_system.c:890-935` |
| 집중/전실 판정 | [최대−2번째]≥2 → 집중 | `(vars[0].value - vars[1].value) >= 2` | `My_system.c:1080, 1108` |
| 집중모드 최소시간 | 5분 (최신) | `Focus_Mode_RunTime = 3000` (=5분, 100ms×3000) | `My_system.c:1087, 1115` |
| 풍량 최대 4단 | 4단 | `if(Tmp_Air_Volume>4)=4` | `My_system.c:1179` |
| 안심회복 모드 | 침실1 음압(급기X/배기O), 타실 급기O/배기X, **2단** | 선택실 SA=0/RA=110, 타실 SA=110/RA=0, `Set_Fan_Mode=2` | `My_system.c:732-770` |
| 디퓨저 LED | 댐퍼 1개라도 열리면 ON, 밝기 0~9 | SA\|RA≠0 → ON, `Light_Bright` 0~9 | `My_system.c:714-724` |
| 공청 시 배기팬 OFF | 공청=급기만 | 공청 1~4단 EA팬 duty=0 | `MyMotor.c:1294-1307` |
| 팬 VSP 기본값(환기 1~3단) | 슬라이드13: 1단 EA56/SA57, 2단 65/67, 3단 72/75 | `s_FAN2/1_VEN_*` 동일값 | `MyControl.c:124-152` |
### 안심회복 모드 상세 (사양 대비 정확 일치)
- 사양: 급기(SA) 거실O 침실1X 침실2O 침실3O / 배기(RA) 거실X 침실1O 침실2X 침실3X, 환기 2단
- 코드: 전실 SA=110/RA=0으로 초기화 후 `Ext_Select_Room`(침실1)만 SA=0/RA=110 역전 → 사양과 동일
---
## 3. ❌ 불일치 / 미반영 항목 (소스 직접 확인)
### 3.1 쾌적조리 모드 ERV 풍량 — 사양 3단 vs 코드 **4단**
- 사양(슬라이드9): "H-ERV 환기모드, 풍량 **3단계** (전실 급기 댐퍼 ON)"
- 코드: `Tmp_Air_Volume = 4;`**4단** (`My_system.c:1030`)
- 운전모드도 사양은 환기모드(MODE_VENTILATION)이나 코드는 `Set_Run_Mode = MODE_AUTO` (`My_system.c:1026`)
- 급기 전실 ON / 배기 전실 OFF, 후드 3단 연동(`Hood_Fan_Mode=3`)은 일치
### 3.2 스마트수면 모드 — 26.03.18 개정분 **미반영** (코드는 구버전 로직)
이력관리 "2026.03.18 자동, 수면 모드 수정(9P)" 항목이 코드에 미적용:
| 26.03.18 사양 | 코드 현재 | 위치 |
|---|---|---|
| 풍량 **1단 고정** | `if(Tmp_Air_Volume>=2) Tmp_Air_Volume-=1` (자동값 1, 구버전) | `My_system.c:1191-1200` |
| 초기 **거실 CLOSE / 침실1~3 OPEN** | 전용 댐퍼 패턴 **없음** | - |
| **1시간마다 CO2≥1000 OPEN** | 미구현 (일반 focus mode `vars 차이≥2`만 사용) | `My_system.c:1080` |
- 진입부(`Ext_Run_Mode==4`)는 `Set_Fan_Mode=1` 설정하나, 이후 PASS_VOLUME에서 매 주기 센서값 재계산 후 −1 → 실제로는 "자동−1"로 동작.
### 3.3 공기질 색상등급(슬라이드6, 26.03.18) — **전체 비활성(dead code)**
- `Air_Quality_color_process()` 시작부 `return(0);` 로 즉시 반환 → 색상/문구(좋음·보통·나쁨·매우나쁨) 로직 전부 미동작 (`My_system.c:1216`)
- 임계값도 슬라이드6(CO2 700/1000/1300)이 아니라 `m_Level`(600/700/800/900) 기준으로 작성됨 → 살리더라도 26.03.18 등급표와 불일치
---
## 4. ⚠️ 확인·주의 필요
### 4.1 팬 VSP 4단 / 공청 값
- 환기 4단: 코드 SA87/EA84 vs 슬라이드13 SA95/EA92 (단 슬라이드14·15 실측은 86/85 — "4단 250→230CMH 소음저감"(25.10.17) 반영값에 근접)
- 공청: 코드 SA 46/51/56/60 vs 사양 전압표 SA 66/70/77 → 상이
- 이 값들은 VSP 테스트모드 + EEPROM으로 **현장 튜닝**되는 값이라 컴파일 기본값과 사양 실측표 차이는 정상일 수 있음. **EEPROM 저장값 별도 확인 권장**
### 4.2 센서 주기
- 사양: "센서 주기 30초 단위"
- 코드: 분배기 폴링 1초(`InCom_polling_timer=100`×10ms) → SEN66 내부 측정주기와 폴링주기 구분 확인 필요
---
## 5. 🔗 직전 작업(CVnet 삭제)과의 연관 — DL_Sinario 처리
- 월패드→각실 시나리오 명령 `DL_Sinario_Process()`(CMD 0~5: 전실/침실 급배기 패턴)는 **CVnet 홈넷통신으로만 트리거**되던 코드.
- 2026-06-02 작업에서 CVnet 삭제 → DL_Sinario가 dead code가 되어 **`DL_Sinario_Process()` 및 관련 참조 일괄 제거 완료**.
- 제거: `My_system.c`(함수+`DL_Sinario_CMD`), `My_Uart.c`(0x61 호출부+extern), `My_define.h`(extern)
- 안심회복/쾌적조리/스마트수면(`Ext_Run_Mode`)은 룸콘 "S Mode Select" 경로라 영향 없음.
- ※ 월패드(씨브이넷) 기반 각실 제어가 사양상 필요하면 CVnet 삭제와 충돌 → 방향 재확인 필요.
---
## 6. 후속 작업 후보(TODO)
1. 쾌적조리 ERV 풍량 4단 → **3단** 수정 (`My_system.c:1030`, 운전모드 검토)
2. 스마트수면 26.03.18 로직 구현 (1단 고정 / 거실 CLOSE·침실 OPEN / 1시간마다 CO2≥1000 OPEN)
3. 공기질 색상등급(`Air_Quality_color_process`) 활성화 + 슬라이드6 임계값 반영
4. 팬 VSP 4단/공청 EEPROM 저장값 확인
5. 260520(5월판) 사양서와 추가 비교
---
## 부록. 주요 소스 위치
| 파일 | 역할 |
|------|------|
| `My_system.c` | 모드 제어(`Ext_Run_Mode`), 센서→풍량/색상, 집중/전실, 팬 duty 변환 |
| `My_Uart.c` | 센서 임계값/기본값, 분배기 파싱, VSP 테스트, PC 메뉴 |
| `MyMotor.c` | 디퓨저 댐퍼(`Diffuser_Damper_process`), 팬 속도(`Fan_Speed_*`), BLDC_SPEED_TABLE |
| `MyControl.c` | 팬 duty 기본값 / EEPROM 저장·로드 |
| `My_define.h` | 모드·핀·EEPROM 주소 정의 |
| `My_RJ2.c` | 룸콘(232) 프로토콜, VSP 모드, Set_Run/Fan_Mode |