Parser.cs 933 B

1234567891011121314151617181920212223242526272829
  1. using Edge.Core.Parser.BinaryParser;
  2. using Edge.Core.Parser.BinaryParser.MessageEntity;
  3. using Edge.Core.Parser.BinaryParser.Util;
  4. using System.Linq;
  5. namespace PressureGage_3051
  6. {
  7. public class Parser : ParserBase
  8. {
  9. public Parser() : base(new MessageTemplateLookup()) { }
  10. public override byte[] Serialize(MessageTemplateBase message)
  11. {
  12. var bytesWithoutCrc16 = base.Serialize(message);
  13. var crc = bytesWithoutCrc16.CalculateModBusCrc();
  14. return bytesWithoutCrc16.Concat(crc).ToArray();
  15. }
  16. public override MessageTemplateBase Deserialize(byte[] rawData)
  17. {
  18. var pendingForCrcBytes = rawData.SkipLast(2).ToArray();
  19. var crcArray = rawData.Skip(pendingForCrcBytes.Length).ToArray();
  20. var crc = pendingForCrcBytes.CalculateModBusCrc();
  21. return base.Deserialize(pendingForCrcBytes);
  22. }
  23. }
  24. }