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 byte[] GetMode3436Frame(byte[] uploadblock, string mode) { byte[] numArray = null; bool flag = false; int length = (int)uploadblock.Length; length = length & 65535; if (mode != "34") { if (mode != "36") { return(null); } numArray = Tools.ConvertStringArray(OBD.sendmode36_request, out flag); } else { numArray = Tools.ConvertStringArray(OBD.sendmode34_request, out flag); } numArray = Tools.AppendByteArray(numArray, Tools.NumberToByte(length, 2)); numArray = Tools.AppendByteArray(numArray, Tools.NumberToByte(OBD.uploadkernaladdr, 3)); if (mode == "36") { numArray = Tools.AppendByteArray(numArray, uploadblock); byte[] checkSum = BinFile.GetCheckSum(4, numArray); numArray = Tools.AppendByteArray(numArray, checkSum); } return(numArray); }
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); }