123456789101112131415161718192021222324252627282930313233343536 |
- 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 Wayne_VaporRecoveryDataCollectorBoard
- {
- public class Parser : ParserBase
- {
- const byte MsgStart = 0x68;
- const byte MsgTail = 0x16;
- public Parser() : base(new MessageTemplateLookup()) { }
- public override byte[] Serialize(MessageTemplateBase message)
- {
- var pure = base.Serialize(message);
- pure = pure.Take(pure.Length - 1).ToArray();
- var validationByte = pure.Sum(s => s).GetBinBytes(4).Last();
- return (new byte[1] { MsgStart }
- .Concat(pure)
- .Concat(new byte[1] { validationByte })
- .Concat(new byte[1] { MsgTail })).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());
- }
- }
- }
|