Parser.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using OPW_VaporRecoveryOnlineWatch_PressureGage.MessageEntity;
  2. using Edge.Core.Parser.BinaryParser;
  3. using Edge.Core.Parser.BinaryParser.MessageEntity;
  4. using Edge.Core.Parser.BinaryParser.Util;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace OPW_VaporRecoveryOnlineWatch_PressureGage
  11. {
  12. public class Parser : ParserBase
  13. {
  14. public Parser() : base(new MessageTemplateLookup()) { }
  15. public override byte[] Serialize(MessageTemplateBase message)
  16. {
  17. var msg = (message as PressureGageBaseMessage);
  18. //(message as PressureGageBaseMessage).CRC16 = new List<byte> { 0x00, 0x00 };
  19. var rawBytes = base.Serialize(message);
  20. // exclude last 2 bytes
  21. var pendingForCrcBytes = rawBytes.ToArray();
  22. var crc = pendingForCrcBytes.CalculateModBusCrc();
  23. return (pendingForCrcBytes
  24. .Concat(crc)).ToArray();
  25. }
  26. //public override MessageTemplateBase Deserialize(byte[] rawData)
  27. //{
  28. // //skip MsgStart and MsgTail
  29. // var reorg = rawData.Skip(1).Take(rawData.Length - 2);
  30. // return base.Deserialize(reorg.ToArray());
  31. //}
  32. }
  33. }