internal LSResponseMessage(PLCMessageTypes messageType, LSRequestMessage source, byte[] data)
            : base(messageType, source.UniqueId)
        {
            OriginRequestType = source.RequestType;
            OriginDataType    = source.DataType;
            OriginAddress     = source.OriginAddress;
            DomainType        = OriginAddress.Substring(1, 1);
            DataType          = OriginAddress?.Substring(2, 1);
            Address           = OriginAddress?.Remove(0, 3);
            Addresses         = (from i in Address?.Split('.')
                                 select int.Parse(i)).ToArray();
            RequestDomainType = source.RequestAddress.Substring(1, 1);
            RequestDataType   = source.RequestAddress.Substring(2, 1);
            RequestAddress    = source.RequestAddress.Remove(0, 3);
            RequestAddresses  = (from i in RequestAddress?.Split('.')
                                 select int.Parse(i)).ToArray();
            switch (messageType)
            {
            case PLCMessageTypes.Ascii:
                _SetAscii(data);
                break;

            case PLCMessageTypes.Binary:
                _SetBinary(data);
                break;
            }
        }
 public PLCMessageChecker(PLCMessageTypes messageType, IEnumerable <byte> data)
     : this(messageType)
 {
     Data = data?.ToArray();
 }
 public PLCMessageChecker(PLCMessageTypes messageType)
     : this()
 {
     MessageType = messageType;
 }
 protected PLCResponseMessage(PLCMessageTypes messageType, Guid requestUniqueId)
     : this()
 {
     MessageType     = messageType;
     RequestUniqueId = requestUniqueId;
 }