using OPW_VaporRecoveryOnlineWatch_PressureGage.MessageEntity; using Edge.Core.Parser.BinaryParser; using Edge.Core.Parser.BinaryParser.MessageEntity; using Edge.Core.Parser.BinaryParser.Util; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OPW_VaporRecoveryOnlineWatch_PressureGage { public class Parser : ParserBase { public Parser() : base(new MessageTemplateLookup()) { } public override byte[] Serialize(MessageTemplateBase message) { var msg = (message as PressureGageBaseMessage); //(message as PressureGageBaseMessage).CRC16 = new List { 0x00, 0x00 }; var rawBytes = base.Serialize(message); // exclude last 2 bytes var pendingForCrcBytes = rawBytes.ToArray(); var crc = pendingForCrcBytes.CalculateModBusCrc(); return (pendingForCrcBytes .Concat(crc)).ToArray(); } //public override MessageTemplateBase Deserialize(byte[] rawData) //{ // //skip MsgStart and MsgTail // var reorg = rawData.Skip(1).Take(rawData.Length - 2); // return base.Deserialize(reorg.ToArray()); //} } }