namespace leak_test_project.Infrastructure { /// /// 하드웨어 통신을 위한 추상화 인터페이스. /// 시리얼(RS232), 이더넷(TCP/IP) 등 통신 방식에 상관없이 /// 상위 서비스에서 동일한 방식으로 하드웨어에 접근할 수 있도록 정의함. /// public interface ICommunication { /// 통신 채널 식별 이름 (예: COM1, TCP_192.168.0.1) string Name { get; } /// 현재 통신 채널이 열려 있는지 여부 bool IsOpen { get; } /// 통신 채널을 연결함 bool Open(); /// 통신 채널 연결을 해제함 void Close(); /// 데이터를 하드웨어로 전송함 bool Write(string data); /// 수신 버퍼를 비워 잔류 데이터를 제거함 void ClearBuffer(); /// 하드웨어로부터 데이터를 수신했을 때 발생하는 이벤트 event System.EventHandler DataReceived; /// 연결 상태가 변경되었을 때 발생하는 이벤트 (connected, disconnected) event System.EventHandler ConnectionStatusChanged; } }