static void Main(string[] args) { var options = new Options(); if (CommandLine.Parser.Default.ParseArguments(args, options)) { try { EcuCode ecuCode = new EcuCode(options.InputFile); InjectCode injectCode = new InjectCode(ecuCode) { HighestTemperatureThreshold = options.HighestTemperatureThreshold, LowestTemperatureThreshold = options.LowestTemperatureThreshold, LaunchControlDeactivationSpeedThreshold = options.SpeedThreshold, LaunchRPMThreshold1 = options.RPMThreshold1, LaunchRPMThreshold2 = options.RPMThreshold2, PedalPositionValue = options.PedalPosition, IgnitionCutTime = options.IgnitionCutTime }; string parametersInformation = ParametersInformationGenerator.GenerateInformation(injectCode); Console.WriteLine(parametersInformation); injectCode.InjectEcu(); injectCode.PatchEcu(); File.WriteAllBytes("out.bin", ecuCode.CodeBytes); } catch (Exception ex) { Console.Error.WriteLine("An error occured:"); Console.Error.Write(ex.ToString()); } } }
public static string GenerateInformation(InjectCode injectCode) { StringBuilder sb = new StringBuilder(); sb.AppendLine(PrintParameter(injectCode.TmotlinCoolantTemperatureAddress, "TmotlinCoolantTemperatureAddress", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.HighestTemperatureThreshold, "HighestTemperatureThreshold")); sb.AppendLine(PrintParameter(injectCode.LowestTemperatureThreshold, "LowestTemperatureThreshold")); sb.AppendLine(PrintParameter(injectCode.B_kupplClutchPedalSwitchAddress, "B_kupplClutchPedalSwitchAddress", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.Vfil_wVehicleSpeedAddress, "Vfil_wVehicleSpeedAddress", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.LaunchControlDeactivationSpeedThreshold, "LaunchControlDeactivationSpeedThreshold")); sb.AppendLine(PrintParameter(injectCode.Nmot_wEngineSpeedAddress1, "Nmot_wEngineSpeedAddress1", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.LaunchRPMThreshold1, "LaunchRPMThreshold1")); sb.AppendLine(PrintParameter(injectCode.B_bremsBrakePedalSwitchSddress, "B_bremsBrakePedalSwitchSddress", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.Nmot_wEngineSpeedAddress2, "Nmot_wEngineSpeedAddress2", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.LaunchRPMThreshold2, "LaunchRPMThreshold2")); sb.AppendLine(PrintParameter(injectCode.Wped_wAcceleratorPedalPositionAddress, "Wped_wAcceleratorPedalPositionAddress", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.PedalPositionValue, "PedalPositionValue")); sb.AppendLine(PrintParameter(injectCode.IgnitionCutTime, "IgnitionCutTime")); sb.AppendLine(PrintParameter(injectCode.Branch1Address1, "Branch1Address1", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.Branch1Address2, "Branch1Address2", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.Branch1Address3, "Branch1Address3", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.Branch1Address4, "Branch1Address4", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.Szfuba_w, "Szfuba_w", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.Szfuba_w_BranchToCode, "Szfuba_w_BranchToCode", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.CdmdForMisfireDetection, "CdmdForMisfireDetection", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.CdmdForMisfireDetection_BranchToCode1, "CdmdForMisfireDetection_BranchToCode1", ValueFormat.Hexadecimal)); sb.AppendLine(PrintParameter(injectCode.CdmdForMisfireDetection_BranchToCode2, "CdmdForMisfireDetection_BranchToCode2", ValueFormat.Hexadecimal)); return(sb.ToString()); }