| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | using Core.Communication.Transport;using PLC.Siemens.Protocol.Common;namespace PLC.Siemens.Protocol.Upload{    public class StartUploadParamsRequest    {        public byte FunSUpld;    // function start upload 0x1D        public byte[] Uk6;     // Unknown 6 bytes        public byte UploadID;// At begining is 0) we will put upload id incoming from plc        public byte Len1;        public byte Prefix;        public byte BlkPrfx;     // always 0x30        public byte BlkType;        public byte[] AsciiBlk; // BlockNum in ascii        public byte A;           // always 0x41 ('A')        public ushort PacketLength        {            get            {                return 0x12;            }        }        public void GetByteBuffer(ByteBuffer buffer)        {            buffer.Push(FunSUpld);            buffer.Push(Uk6);            buffer.Push(UploadID);            buffer.Push(Len1);            buffer.Push(Prefix);            buffer.Push(BlkPrfx);            buffer.Push(BlkType);            buffer.Push(AsciiBlk);            buffer.Push(A);        }        public void Build(BlockType blockType, ushort blockNum)        {            FunSUpld = (byte)PduFuncType.PduStartUpload;            byte byte00 = 0x00;            Uk6 = new[] { byte00, byte00, byte00, byte00, byte00, byte00 };            UploadID = 0x00;            Len1 = 0x09;            Prefix = 0x5F;            BlkPrfx = 0x30; // '0'            BlkType = (byte)blockType;            int tmp = blockNum;            AsciiBlk = new byte[5];            AsciiBlk[0] = (byte)((tmp / 10000) + 0x30);            tmp = tmp % 10000;            AsciiBlk[1] = (byte)((tmp / 1000) + 0x30);            tmp = tmp % 1000;            AsciiBlk[2] = (byte)((tmp / 100) + 0x30);            tmp = tmp % 100;            AsciiBlk[3] = (byte)((tmp / 10) + 0x30);            tmp = tmp % 10;            AsciiBlk[4] = (byte)((tmp / 1) + 0x30);            A = 0x41; // 'A'        }    }}
 |