| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | using PlcSiemens.O;using PlcSiemens.Protocol.Common;namespace PlcSiemens.Protocol.ListBlocks{    public class DataBlockInfoDataRequest    {        public byte Ret { get; set; }        public byte Size { get; set; }        public ushort DataLen { get; set; }        public byte BlkPrfx { get; set; }     // always 0x30        public byte BlkType { get; set; }        public byte[] AsciiBlk { get; set; } // BlockNum in ascii        public byte A { get; set; }        public ushort PacketLength        { get { return (ushort)(7 + AsciiBlk.Length); } }        public void Build(BlockType blockType, ushort db)        {            Ret = 0xFF;            Size = (byte)TsType.TsResOctet;            DataLen = 0x0008;            BlkPrfx = 0x30;            BlkType = (byte)blockType;            AsciiBlk = new byte[5];            AsciiBlk[0] = (byte)((db / 10000) + 0x30);            db = (ushort)(db % 10000);            AsciiBlk[1] = (byte)((db / 1000) + 0x30);            db = (ushort)(db % 1000);            AsciiBlk[2] = (byte)((db / 100) + 0x30);            db = (ushort)(db % 100);            AsciiBlk[3] = (byte)((db / 10) + 0x30);            db = (ushort)(db % 10);            AsciiBlk[4] = (byte)((db / 1) + 0x30);            A = 0x41;        }        public void GetByteBuffer(ByteBuffer buffer)        {            buffer.Push(Ret);            buffer.Push(Size);            buffer.Push(DataLen);            buffer.Push(BlkPrfx);            buffer.Push(BlkType);            buffer.Push(AsciiBlk);            buffer.Push(A);        }    }}
 |