using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TeamAAS_VP.Enums; namespace TeamAAS_VP.Core.Lights { public interface ICommunicationProtocol : IDisposable { bool IsConnected { get; } Terminator Terminator { get; } Encoding Encoding { get; } //连接改变时间 event Action ConnectionChanged; //接收事件 event Action DataReceived; //发送事件 event Action DataSent; Task ConnectAsync(); Task DisconnectAsync(); Task SendAndReceiveAsync(byte[] data, int timeout = 5000); Task SendAsync(byte[] data); Task SendAndReceiveAsync(string data, int timeout = 5000); string SendAndReceive(string data, int timeout = 5000); byte[] SendAndReceive(byte[] data, int timeout = 5000); void Send(byte[] data); Task SendAsync(string data); void Send(string data); } }