MessageTemplateLookup.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using Wayne_VaporRecoveryDataCollectorBoard.MessageEntity;
  2. using Wayne_VaporRecoveryDataCollectorBoard.MessageEntity.Incoming;
  3. using Edge.Core.Parser.BinaryParser;
  4. using Edge.Core.Parser.BinaryParser.MessageEntity;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace Wayne_VaporRecoveryDataCollectorBoard
  11. {
  12. public class MessageTemplateLookup : IMessageTemplateLookup
  13. {
  14. const byte MsgStart = 0x68;
  15. const byte MsgTail = 0x16;
  16. /// <summary>
  17. ///
  18. /// </summary>
  19. /// <param name="bytes">msg starter should has been excluded here, so it's: 采集器地址Addr(1B)+命令代码(1B)+数据域长度(1B)+数据域(由数据域长度指定)+校验CS(1B)+包结束标志(1B)。</param>
  20. /// <returns></returns>
  21. public MessageTemplateBase GetMessageTemplateByRawBytes(byte[] bytes)
  22. {
  23. if (bytes[1] == 0x00 && bytes[2] == 0x00)
  24. return new COLLECTOR_BUSY_Response();
  25. else if (bytes[1] == 0x01)
  26. return new READ_WORKING_AND_TYPE_Response();
  27. else if (bytes[1] == 0x03)
  28. return new READ_ONE_HISTORY_DATA_Response();
  29. else if (bytes[1] == 0x05)
  30. return new READ_TIME_Response();
  31. else if (bytes[1] == 0x06)
  32. return new READ_PARA_Response();
  33. else if (bytes[1] == 0x07)
  34. return new READ_HISTORY_NUM_Response();
  35. else if (bytes[1] == 0x09)
  36. return new CLEAR_ONE_HISTORY_Response();
  37. else if (bytes[1] == 0x80)
  38. return new CLEAR_ONE_HISTORY_Response();
  39. else if (bytes[1] == 0x81)
  40. return new WRITE_TIME_Response();
  41. else if (bytes[1] == 0x82)
  42. return new WRITE_PARA_Response();
  43. else if (bytes[1] == 0x83)
  44. return new WRITE_SWITCH_OUT_Response();
  45. else if (bytes[1] == 0xA1)
  46. return new SET_ADDRESS_Response();
  47. return null;
  48. }
  49. }
  50. }