MessageTemplateLookup.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Edge.Core.Parser.BinaryParser;
  2. using Edge.Core.Parser.BinaryParser.MessageEntity;
  3. using Edge.Core.Parser.BinaryParser.Util;
  4. using ShengJu_CUT100_DES.MessageEntity.Incoming;
  5. using System;
  6. namespace ShengJu_CUT100_DES.MessageEntity
  7. {
  8. /// <summary>
  9. /// </summary>
  10. public class MessageTemplateLookup : IMessageTemplateLookup
  11. {
  12. /// <summary>
  13. ///
  14. /// </summary>
  15. /// <param name="bytes">ADR CTRL trans_Number trans_Length trans_data</param>
  16. /// <returns></returns>
  17. public MessageTemplateBase GetMessageTemplateByRawBytes(byte[] bytes)
  18. {
  19. if (bytes[0] == 5 && bytes[3] == 0)
  20. return new GenericSuccessResponse();
  21. else if (bytes[0] == 6 && bytes[3] != 0)
  22. return new GenericFailureResponse();
  23. else if (bytes[2] == 0x15)
  24. return new ReadModuleInfoResponse();
  25. else if (bytes[2] == 0x16)
  26. return new ActivateATypeCardResponse();
  27. else if (bytes[2] == 0xB2)
  28. return new ReadAppFileResponse();
  29. else if (bytes[2] == 0xB8)
  30. return new ReadAppDirsResponse();
  31. // return new Wayne_Pump_Dart.MessageEntity.Incoming.EOT();
  32. //else if (bytes[2] == 0x01 && bytes[3] == 1 && bytes[4] == 0x00)
  33. // return new Wayne_Pump_Dart.MessageEntity.Incoming.PumpStatus_ResponseOrEvent();
  34. throw new ArgumentException("Could not find any msg template for input bytes: 0x" + bytes.ToHexLogString());
  35. }
  36. }
  37. }