1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- using Edge.Core.Parser.BinaryParser.Attributes;
- using System.Collections.Generic;
- namespace PetroChinaOnlineWatchPlugin.MessageEntity.Outgoing
- {
- public class IfsfMessageAckOut
- {
- [Format(1, EncodingType.BIN, -9890)]
- public byte DataIdentifier { get; set; }
- [Format(1, EncodingType.BIN, -9880)]
- [Range(0, 7, "Data ack must range in 0 to 7")]
- public byte DataAck { get; set; }
- public override string ToString()
- {
- return $"{DataIdentifier} {DataAck}";
- }
- }
- public class AckMessageOut : MessageBase
- {
- [Format(2, EncodingType.BIN, -9930)]
- public int MessageLength { get { return 1 + DatabaseAddress.Count + 1 + (AckList == null ? 0 : AckList.Count * 2); } }
- [Format(1, EncodingType.BIN, -9920)]
- public int DatabaseAddressLength { get { return DatabaseAddress.Count; } }
- [EnumerableFormat("%cascade", -9910)]
- public List<byte> DatabaseAddress { get; set; }
- [Format(1, EncodingType.BIN, -9900)]
- [Range(0, 9, "Message ack must range in 0 to 9")]
- public byte MessageAck { get; set; }
- [EnumerableFormat("%cascade", -9890)]
- public List<IfsfMessageAckOut> AckList { get; set; }
- public AckMessageOut()
- {
- base.MessageCode = MessageCode.IFSF_MESSAGE_CODE_APPLICATION;
- base.MessageType = MessageType.IFSF_MESSAGE_TYPE_ACK;
- }
- public override string ToString()
- {
- string dbAddress = string.Empty;
- foreach (byte ad in DatabaseAddress)
- { dbAddress += " " + ad.ToString(); }
- string akList = string.Empty;
- foreach (var ak in AckList)
- { akList += " " + ak.ToString(); }
- return $"{MessageLength} {DatabaseAddressLength} {dbAddress} {akList}";
- }
- }
- }
|