MessageSender.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Vinno.IUS.Common.Log;
  2. namespace Vinno.FIS.Sonopost.Features.Oled
  3. {
  4. public class MessageSender
  5. {
  6. private static readonly object _locker = new object();
  7. /// <summary>
  8. /// Send message
  9. /// </summary>
  10. /// <param name="sendData">data</param>
  11. /// <returns></returns>
  12. public static IReceiveResult Send(Comm comm, ISendData sendData)
  13. {
  14. lock (_locker)
  15. {
  16. Logger.WriteLineInfo(sendData.MessageType.ToString());
  17. if (sendData is CommandData commandData)
  18. {
  19. return comm.Write(commandData.GenerateBuffer());
  20. }
  21. if (sendData is DisplayData displayData)
  22. {
  23. return comm.Write(displayData.GenerateBuffer());
  24. }
  25. if (sendData is ImageData imageData)
  26. {
  27. return comm.Write(imageData.GenerateBuffer());
  28. }
  29. return MessageReceiver.CommonError;
  30. }
  31. }
  32. }
  33. }