ReadMessageIn.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. using Edge.Core.Parser.BinaryParser.Attributes;
  2. using System.Collections.Generic;
  3. namespace PetroChinaOnlineWatchPlugin.MessageEntity.Incoming
  4. {
  5. public class ReadMessageIn : MessageBase
  6. {
  7. [Format(2, EncodingType.BIN, -9930)]
  8. public int MessageLength { get; set; }
  9. [Format(1, EncodingType.BIN, -9920)]
  10. public int DatabaseAddressLength { get; set; }
  11. [EnumerableFormat("DatabaseAddressLength", -9910)]
  12. public List<byte> DatabaseAddress { get; set; }
  13. public int DataIdentifierLength { get { return MessageLength - 1 - DatabaseAddressLength; } }
  14. [EnumerableFormat("DataIdentifierLength", -9900)]
  15. public List<byte> DataIdentifier { get; set; }
  16. public override string ToString()
  17. {
  18. string dbAddress = string.Empty;
  19. foreach (byte ad in DatabaseAddress)
  20. { dbAddress += " " + ad.ToString(); }
  21. string dtIdentifier = string.Empty;
  22. foreach (byte ad in DataIdentifier)
  23. { dtIdentifier += " " + ad.ToString(); }
  24. return $"{MessageLength} {DatabaseAddressLength} {dbAddress} {dtIdentifier}";
  25. }
  26. }
  27. }