a502322188
손상된 .git 히스토리(missing tree)로 재초기화 후 작업트리 전체 커밋. .claude/ 만 제외(로컬 에이전트 설정). 구 저장소 백업(.git_corrupt_backup/) 포함. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
111 lines
6.6 KiB
Markdown
111 lines
6.6 KiB
Markdown
# 소스 ↔ 개발사양서 비교 분석
|
||
|
||
- **작성일**: 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 |
|