Esempio n. 1
0
        public static bool ModeE1UpdateBIN(string[] serialdata, byte[] oldbin, out byte[] newbin, out bool datavalid)
        {
            int num           = -1;
            int num1          = -1;
            int frameChecksum = -1;
            int number        = -1;

            byte[] frameData = null;
            datavalid = false;
            newbin    = null;
            int num2 = Tools.SearchSerialArray(serialdata, OBD.mode36E1_header);

            if (num2 == -1)
            {
                newbin = oldbin;
                return(false);
            }
            if (BinFile.GetFrameAddr(num2, serialdata, out num, out num1))
            {
                num2          = num2 + 5;
                frameData     = BinFile.GetFrameData(num2, num, serialdata);
                num2          = num2 + num;
                frameChecksum = BinFile.GetFrameChecksum(num2, serialdata);
                number        = Tools.ByteToNumber(BinFile.GetCheckSum(0, frameData));
            }
            if (frameChecksum == -1 | number == -1 | num == -1 | num1 == -1)
            {
                newbin = oldbin;
                return(true);
            }
            if (frameChecksum != number)
            {
                newbin = oldbin;
                return(true);
            }
            datavalid = true;
            newbin    = BinFile.UpdateBIN(oldbin, frameData, num, num1);
            return(true);
        }