| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | using Houdar.Core.Communication.Transport;using Houdar.PLC.Driver.Simenss.Protocol.Common;namespace Houdar.PLC.Driver.Simenss.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);        }    }}
 |