Exemplo n.º 1
0
        public static bool ModeE2UploadBIN(string[] serialdata, byte[] bin, out byte[] messageframe, out int currentaddr)
        {
            bool flag;
            int  num  = -1;
            int  num1 = -1;

            currentaddr  = -1;
            messageframe = null;
            int num2 = Tools.SearchSerialArray(serialdata, OBD.mode36E2_header);

            if (num2 == -1)
            {
                return(false);
            }
            if (BinFile.GetFrameAddr(num2, serialdata, out num, out num1))
            {
                byte[] numArray = BinFile.MakeFrameData(num, num1, bin);
                if (numArray != null)
                {
                    messageframe = Tools.ConvertStringArray(OBD.sendmode36E2_data, out flag);
                    messageframe = Tools.AppendByteArray(messageframe, Tools.NumberToByte(num, 2));
                    messageframe = Tools.AppendByteArray(messageframe, Tools.NumberToByte(num1, 3));
                    messageframe = Tools.AppendByteArray(messageframe, numArray);
                    messageframe = Tools.AppendByteArray(messageframe, BinFile.GetCheckSum(0, numArray));
                    currentaddr  = num1;
                }
            }
            return(true);
        }
Exemplo n.º 2
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);
        }