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); }
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); }