Esempio n. 1
0
        public int WriteflashDataAPI(byte cmd, int datalen, int CursectionNum, byte[] flashdata)
        {
            byte[] txdata      = new byte[200];
            byte[] checkdata   = new byte[200];
            int    dataCRC     = 0;
            int    regedistNum = 0;
            int    result;


            if (datalen <= 0 || datalen > 200)
            {
                return(-1);
            }

            txdata[0] = 0x3a;
            txdata[1] = 0x16;
            txdata[2] = 0xf0;
            txdata[3] = (byte)datalen;

            txdata[4] = cmd;
            txdata[5] = (byte)(CursectionNum & 0x00ff);
            txdata[6] = (byte)((CursectionNum >> 8) & 0x00ff);


            for (int i = 0; i < flashdata.Length; i++)
            {
                txdata[7 + i] = flashdata[i];
            }

            for (int i = 0; i < datalen + 8 - 5; i++)
            {
                checkdata[i] = txdata[i + 1];
            }

            dataCRC = CHECKSUM.checksum(checkdata, (ushort)(datalen + 8 - 5));

            txdata[datalen + 8 - 3] = (byte)dataCRC;
            txdata[datalen + 8 - 4] = (byte)(dataCRC >> 8);

            //  txdata[datalen + 8 - 2] = 0x0d;
            //  txdata[datalen + 8 - 1] = 0x0a;


            result = SendRS485DataApi(txdata, 6 + datalen);

            return(result);
        }
Esempio n. 2
0
        public int WriteflashCommandAPI(int datalen, byte[] dat)
        {
            byte[] txdata    = new byte[50];
            byte[] checkdata = new byte[50];
            int    dataCRC   = 0;
            int    result    = 0;

            txdata[0] = 0x3a;
            txdata[1] = 0x16;
            txdata[2] = 0xf0;
            txdata[3] = (byte)datalen;


            for (int i = 0; i < datalen; i++)
            {
                txdata[4 + i] = dat[i];
            }
            for (int i = 0; i < datalen + 8 - 5; i++)
            {
                checkdata[i] = txdata[i + 1];
            }


            dataCRC = CHECKSUM.checksum(checkdata, (ushort)(datalen + 8 - 5));

            txdata[datalen + 8 - 3] = (byte)dataCRC;
            txdata[datalen + 8 - 4] = (byte)(dataCRC >> 8);

            // txdata[datalen + 8 - 2] = 0x0d;
            // txdata[datalen + 8 - 1] = 0x0a;


            result = SendRS485DataApi(txdata, 6 + datalen);

            return(result);
        }