b18d9c84bf
펌웨어(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>
46 lines
2.2 KiB
C#
46 lines
2.2 KiB
C#
using ErvProtocol;
|
|
|
|
namespace ErvDashboard.Api
|
|
{
|
|
// PC 대시보드 ↔ ERV (PC_ERV_Protocol.md) 통신을 함수로 감싼 API.
|
|
// 내부적으로는 485 프레임(CtrlFrame 송신 / STATUS 수신)을 그대로 사용한다.
|
|
// 즉 전송 방식(프로토콜)은 불변이고, 호출부가 바이트 대신 의미 있는 함수를 쓰도록 캡슐화한 것.
|
|
public interface IErvApi : IDisposable
|
|
{
|
|
// ---- 연결 ----
|
|
bool IsConnected { get; }
|
|
bool Connect(string port, int baud);
|
|
void Disconnect();
|
|
event Action<bool>? ConnectionChanged;
|
|
|
|
// ---- 수신 ----
|
|
event Action<StatusRecord>? StatusReceived; // STATUS 디코드 완료
|
|
event Action<string>? Log; // 프레임/이벤트 hex 로그
|
|
void RequestStatus(); // STATUS 요청 (0x0A)
|
|
|
|
// 최근 수신한 STATUS 기준 각실(room 1~4) 상태 조회. 수신 이력이 없거나 room 범위 밖이면 false.
|
|
bool GetRoomStatus(int room, out bool damperSa, out bool damperEa, out AirQuality airQuality, out int led);
|
|
|
|
// ---- 제어(기본) ----
|
|
void SetPower(bool on); // 0x01
|
|
void SetRunMode(RunMode mode); // 0x02
|
|
void SetFan(int speed); // 0x03 (0~4)
|
|
void SetSubMode(SubModeType type, bool on); // 0x04
|
|
void SetHood(bool on); // 0x05
|
|
void SetReserve(int hours); // 0x0E (0~8, 0=해제)
|
|
void SetReset(bool on); // 0x0B
|
|
|
|
// ---- 각실 ----
|
|
void SetDiffuserDamper(int room, int type, bool open); // 0x08 (type 0=급기/1=배기)
|
|
void SetDiffuserLed(int room, int dim); // 0x09 (0~9)
|
|
|
|
// ---- 풍량 VSP ----
|
|
void SetVsp(int group, int index, int sa, int ea); // 0x0C
|
|
|
|
// ---- 히스테리시스 ----
|
|
void SetHystPreset(HystPreset preset); // 0x06
|
|
void SetHystDeadband(int preset, int pm25, int pm10, int voc, int co2); // 0x07
|
|
void SetHystThreshold(int preset, int pollutant, int l1, int l2, int l3, int l4); // 0x0D
|
|
}
|
|
}
|