using Edge.Core.Parser.BinaryParser.Attributes; using System.Collections.Generic; namespace PetroChinaOnlineWatchPlugin.MessageEntity.Incoming { public class ReadMessageIn : MessageBase { [Format(2, EncodingType.BIN, -9930)] public int MessageLength { get; set; } [Format(1, EncodingType.BIN, -9920)] public int DatabaseAddressLength { get; set; } [EnumerableFormat("DatabaseAddressLength", -9910)] public List DatabaseAddress { get; set; } public int DataIdentifierLength { get { return MessageLength - 1 - DatabaseAddressLength; } } [EnumerableFormat("DataIdentifierLength", -9900)] public List DataIdentifier { get; set; } public override string ToString() { string dbAddress = string.Empty; foreach (byte ad in DatabaseAddress) { dbAddress += " " + ad.ToString(); } string dtIdentifier = string.Empty; foreach (byte ad in DataIdentifier) { dtIdentifier += " " + ad.ToString(); } return $"{MessageLength} {DatabaseAddressLength} {dbAddress} {dtIdentifier}"; } } }