using System;
using System.Collections.Generic;
using leak_test_project.Models;
namespace leak_test_project.Infrastructure
{
///
/// DIO 보드 추상화 인터페이스.
/// 실제 하드웨어(JunSystem DIO) 또는 시뮬레이션 보드를 교체 가능하게 설계.
///
public interface IDioBoard : IDisposable
{
/// DIO 보드를 초기화합니다.
bool Initialize();
/// 지정된 입력 포인트의 현재 값을 읽습니다.
bool ReadInput(string pointName);
/// 지정된 출력 포인트에 값을 씁니다.
void WriteOutput(string pointName, bool value);
/// 모든 입력 포인트 목록을 반환합니다.
List GetInputPoints();
/// 모든 출력 포인트 목록을 반환합니다.
List GetOutputPoints();
/// 입력 포인트의 값이 OFF→ON으로 변경되었을 때 발생합니다.
event EventHandler InputChanged;
/// 보드 동작 중 오류가 발생했을 때 발생합니다.
event EventHandler ErrorOccurred;
}
}