fix: 260618 룸컨 동기·쾌적조리·시나리오·그래프DB 등 수정

펌웨어(SOURCE/HECO2/User):
- My_Hood.c: 후드 전원 OFF 시 쾌적조리 토글 자동 해제 (6)
- My_RJ2.c/My_Homenet.c/My_define.h: 룸컨 전용 pending(RoomCtrl_Push) 도입
  → 전원 ON 간헐 미동작·전원 OFF 후 룸컨 옛모드(공청) 표시 해소 (11)(12)
  (공유 Command_request_type 레이스 + 716 equalize 조기클리어 + 분배기 wipe 회피)

대시보드(TestProgram/PCDashBoard):
- 쾌적조리 미선택+후드 ON 시 다른 시나리오 버튼 선택 가능 (7)
- 시나리오 버튼 항상 선택 가능 + 상호배타 로직 삭제 (8)(9)
- 데모 루틴 전체 삭제 (DemoStatus.cs 포함) (9)
- 전원 OFF 시 풍량 버튼(0 포함) 비활성 (13)
- 그래프 DB(HERV_Log.db)를 임시폴더가 아닌 exe 폴더에 저장 (14)

문서/메모리: doc/260618_*.md 정리, command-request-type-shared-race 메모리 추가

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-18 23:41:34 +09:00
parent 6934f09b2a
commit b18d9c84bf
11 changed files with 271 additions and 168 deletions
+1
View File
@@ -2,3 +2,4 @@
- [HERV 마스터 소스](herv-master-source.md) — 검증된 펌웨어 = D:\Project\nuvoton\HERV_DL_MH_2nd\Program, 댐퍼/팬 회귀 비교 기준
- [내부댐퍼 팬 게이트](internal-damper-fan-gate.md) — 본체 댐퍼는 팬이 0까지 내려가야 모드별 이동, 명령경로 끼어들면 미동작
- [Command_request_type 공유 레이스](command-request-type-shared-race.md) — 룸컨·분배기 공유 플래그 → 전원 푸시 유실, RoomCtrl_Push 전용 플래그로 해결
@@ -0,0 +1,16 @@
---
name: command-request-type-shared-race
description: ERV의 Command_request_type은 룸컨(RJ2)·분배기(bunbagi) 공유 플래그라 대시보드 명령 푸시에 레이스가 있음
metadata:
node_type: memory
type: project
---
HECO2 ERV 펌웨어에서 `Command_request_type`(My_RJ2.c 전역, My_define.h TYPE_* 비트)은 **룸컨(RJ2, SC0)과 각실분배기(My_bunbaegi.c) 두 통신 소비자가 공유**한다. 대시보드 명령(전원/모드/풍량)이 이 플래그를 set 하면 두 버스가 각자 소비·클리어하는데:
- `My_bunbaegi.c:522` 가 프레임 송신 후 `Command_request_type = 0;`**전체 wipe** → 분배기가 먼저 돌면 RJ2가 플래그를 못 봐 룸컨 푸시 유실.
- `My_RJ2.c:715~716``Set==현재` 면 TYPE_MODE/FAN 클리어. 전원 OFF는 모터정지 위해 `Set_Run=Run=VENT, Set_Fan=Fan=0` equalize 강제(My_Homenet.c CTRL_POWER 주석 250~253) → NORMAL 푸시 전에 플래그 제거 → 룸컨이 옛 모드(예: 공청) 계속 표시.
- 둘 다 도착순서 의존 → 간헐적.
**Why:** 전원 ON 간헐 미동작 / 전원 OFF 후 룸컨 옛모드 표시의 근본 원인. 2026-06-18 수정.
**How to apply:** 룸컨에 반드시 보내야 하는 대시보드 명령은 공유 `Command_request_type` 대신 **룸컨 전용 pending `RoomCtrl_Push`**(My_RJ2.c 전역)로 표시한다. 분배기가 못 건드리고 RJ2 ack(SEND_FLAG echo, EVENT L399/CONTROLL L691)로만 해제. RJ2 NORMAL 푸시조건(L332)에 `|| RoomCtrl_Push`, echo else 가드(L409/698)에 `!RoomCtrl_Push &&` 추가됨. 모드/풍량도 동기 누락 보이면 `CTRL_RUNMODE/CTRL_FAN``RoomCtrl_Push=1` 적용. 별개 잠재버그: `TYPE_POWER==TYPE_HOOD_STATE==0x40` 비트 충돌(빈 비트 0x08 분리 권장). 관련 [[internal-damper-fan-gate]], [[herv-master-source]].