feat: 06-17 신규 작업본 반영 (개발사양서/기능검토/승인원/Source 등 추가)

.claude/ 제외(.gitignore 추가). 기존 초기커밋(5a96a69) 위에 신규·수정·이동분 커밋.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-18 07:54:58 +09:00
parent 5a96a696b1
commit 096111e983
529 changed files with 12439 additions and 1166 deletions
+11 -11
View File
@@ -12,11 +12,11 @@ namespace HoodSimulator
readonly HoodProtocol _hood = new();
int _rxCount;
// 조리 종료 후 메이크업 유지(잔여 냄새 배출) — 후드측이 담당. 유지중에는 ERV 에 계속 '켜짐' 보고,
// 조리 종료 후 지연배기(잔여 냄새 배출) — 후드측이 담당. 배기중에는 ERV 에 계속 '켜짐' 보고,
// 종료 시점에 OFF 전송 → ERV 가 원래 모드/풍량으로 복귀. (사양 260613 9p 3.3)
readonly System.Windows.Threading.DispatcherTimer _makeupTimer =
new() { Interval = TimeSpan.FromSeconds(1) };
const int MakeupHoldSec = 10; // 메이크업 유지 시간 (10초)
const int MakeupHoldSec = 10; // 지연배기 유지 시간 — 시간 불변(시뮬 10초; 사양 원래 30초)
int _makeupRemainSec;
static readonly Brush AccentCyan = (Brush)new BrushConverter().ConvertFromString("#7DCFFF")!;
@@ -83,7 +83,7 @@ namespace HoodSimulator
{
if (tglPower.IsChecked == true)
{
// 켜기 : 진행중인 메이크업 유지 취소 후 즉시 ON (풍량 1)
// 켜기 : 진행중인 지연배기 취소 후 즉시 ON (풍량 1)
StopMakeupHold();
_hood.PowerOn = true;
_hood.FanStage = 1;
@@ -94,27 +94,27 @@ namespace HoodSimulator
}
else
{
// 끄기 : OFF 표시 + 옆에 메이크업 유지(1분) 카운트다운 시작. 그동안 ERV엔 계속 '켜짐' 보고.
// 지 종료 시 후드 OFF 전송 → ERV 가 원래 모드/풍량으로 복귀.
// 끄기 : OFF 표시 + 옆에 지연배기 카운트다운 시작. 그동안 ERV엔 계속 '켜짐' 보고.
// 지연배기 종료 시 후드 OFF 전송 → ERV 가 원래 모드/풍량으로 복귀.
txtPower.Text = "OFF";
txtPower.Foreground = TextSecondary;
if (_hood.PowerOn && _makeupRemainSec == 0)
{
_makeupRemainSec = MakeupHoldSec;
_makeupTimer.Start();
txtMakeup.Text = $"메이크업 {_makeupRemainSec}s";
OnLog($"[제어] 전원 OFF 요청 → 메이크업 에어 {MakeupHoldSec}s 유지 (ERV엔 계속 켜짐 보고)");
txtMakeup.Text = $"지연배기(원래는 30초) {_makeupRemainSec}s";
OnLog($"[제어] 전원 OFF 요청 → 지연배기 {MakeupHoldSec}s 유지 (ERV엔 계속 켜짐 보고)");
}
}
}
// 메이크업 유지 카운트다운 (1초). 0이 되면 실제 OFF 전송.
// 지연배기 카운트다운 (1초). 0이 되면 실제 OFF 전송.
void MakeupTick(object? s, EventArgs e)
{
_makeupRemainSec--;
if (_makeupRemainSec > 0)
{
txtMakeup.Text = $"메이크업 {_makeupRemainSec}s";
txtMakeup.Text = $"지연배기(원래는 30초) {_makeupRemainSec}s";
}
else
{
@@ -122,7 +122,7 @@ namespace HoodSimulator
_hood.PowerOn = false;
_hood.FanStage = 0;
UpdateFanButtons();
OnLog("[제어] 메이크업 유지 종료 → 후드 OFF 전송 (ERV 원래 모드/풍량 복귀)");
OnLog("[제어] 지연배기 종료 → 후드 OFF 전송 (ERV 원래 모드/풍량 복귀)");
}
}
@@ -166,7 +166,7 @@ namespace HoodSimulator
// 에러 발생 시 전원 OFF / 풍량 0 / 조명 OFF (다음 응답에 반영되어 전송)
if (_hood.ErrorCode != 0)
{
StopMakeupHold(); // 진행중인 메이크업 유지 즉시 취소
StopMakeupHold(); // 진행중인 지연배기 즉시 취소
_hood.PowerOn = false;
_hood.FanStage = 0;
_hood.Light = false;