| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | using Core.Communication.Transport;using PLC.Siemens.Protocol.Common;namespace PLC.Siemens.Protocol.Szl{    public class SzlDataRequest    {        public static ushort Len = 0x08;        public byte Ret { get; set; }  // 0xFF for request        public byte Ts { get; set; }   // 0x09 Transport size        public ushort DLen { get; set; } // Data len 0x04        public ushort ID { get; set; }  // First ÐèÒªµÄ²ÎÊý        public ushort Index { get; set; }// First ÐèÒªµÄ²ÎÊý        public bool First  = true;        public ushort PacketLength        {            get            {                return First ? (ushort)0x08 : (ushort)0x04;            }        }        public void GetByteBuffer(ByteBuffer buffer)        {            buffer.Push(Ret);            buffer.Push(Ts);            buffer.Push(DLen);            if (!First) return;            buffer.Push(ID);            buffer.Push(Index);        }        public void Build(bool first,ushort id,ushort index)        {            First = first;            if (First)            {                Ret = 0xFF;                Ts = (byte) TsType.TsResOctet;                DLen = 0x04;                ID = id;                Index = index;            }            else            {                Ret = 0x0A;                Ts = 0x00;                DLen = 0x0000;                ID = 0x0000;                Index = 0x0000;            }        }    }}
 |