| 12345678910111213141516171819202122232425262728 | using Houdar.Core.Communication.Transport;using Houdar.PLC.Driver.Simenss.Protocol.Common;namespace Houdar.PLC.Driver.Simenss.Protocol.ReadData{    public class ReadItemResponse    {        public byte ReturnCode { get; set; }        public byte TransportSize { get; set; }        public ushort DataLength { get; set; }        public byte[] Data { get; set; }        public void Build(ByteBuffer buffer)        {            ReturnCode = buffer.PopByte();            TransportSize = buffer.PopByte();            DataLength = buffer.PopUshort();            if (TransportSize != (byte)TsType.TsResOctet && TransportSize != (byte)TsType.TsResReal &&                TransportSize != (byte)TsType.TsResBit)                DataLength = (ushort)(DataLength >> 3);            Data = buffer.PopBytes(DataLength);            //如果读取数量为奇数则取出一条填充字节            if (Data.Length%2 != 0)                buffer.PopByte();        }    }}
 |