using Edge.Core.Parser.BinaryParser; using Edge.Core.Parser.BinaryParser.MessageEntity; using Edge.Core.Parser.BinaryParser.Util; using System.Linq; namespace PressureGage_3051 { public class Parser : ParserBase { public Parser() : base(new MessageTemplateLookup()) { } public override byte[] Serialize(MessageTemplateBase message) { var bytesWithoutCrc16 = base.Serialize(message); var crc = bytesWithoutCrc16.CalculateModBusCrc(); return bytesWithoutCrc16.Concat(crc).ToArray(); } public override MessageTemplateBase Deserialize(byte[] rawData) { var pendingForCrcBytes = rawData.SkipLast(2).ToArray(); var crcArray = rawData.Skip(pendingForCrcBytes.Length).ToArray(); var crc = pendingForCrcBytes.CalculateModBusCrc(); return base.Deserialize(pendingForCrcBytes); } } }