ICommunicationProtocol.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using TeamAAS_VP.Enums;
  7. namespace TeamAAS_VP.Core.Lights
  8. {
  9. public interface ICommunicationProtocol : IDisposable
  10. {
  11. bool IsConnected { get; }
  12. Terminator Terminator { get; }
  13. Encoding Encoding { get; }
  14. //连接改变时间
  15. event Action<object, bool> ConnectionChanged;
  16. //接收事件
  17. event Action<object, string> DataReceived;
  18. //发送事件
  19. event Action<object, string> DataSent;
  20. Task<bool> ConnectAsync();
  21. Task DisconnectAsync();
  22. Task<byte[]> SendAndReceiveAsync(byte[] data, int timeout = 5000);
  23. Task SendAsync(byte[] data);
  24. Task<string> SendAndReceiveAsync(string data, int timeout = 5000);
  25. string SendAndReceive(string data, int timeout = 5000);
  26. byte[] SendAndReceive(byte[] data, int timeout = 5000);
  27. void Send(byte[] data);
  28. Task SendAsync(string data);
  29. void Send(string data);
  30. }
  31. }