private void ReadAllECUIdentificationInfo(KWP2000DiagnosticSessionType sessionType) { App.OperationInProgress = true; App.PercentOperationComplete = -1.0f; App.DisplayStatusMessage("Reading all ECU info.", StatusMessageType.USER); ECUInfo.Clear(); var KWP2000CommViewModel = App.CommInterfaceViewModel as KWP2000Interface_ViewModel; App.CurrentOperation = new ReadAllECUIdentificationOptionsOperation(App.CommInterface as KWP2000Interface, KWP2000CommViewModel.DesiredBaudRates, sessionType); App.CurrentOperation.CompletedOperationEvent += this.ReadAllECUIdentificationInfoCompleted; App.CurrentOperation.Start(); }
private void ConvertPartNumber() { partNumberConverter pnc = new partNumberConverter(); ECUInfo ecuinfo = pnc.ConvertPartnumber(buttonEdit1.Text, 0); lblCarModel.Text = "---"; lblECUType.Text = "---"; lblFuel.Text = "---"; lblCarType.Text = "---"; lblRating.Text = "--/--"; lblSoftwareID.Text = "---"; if (ecuinfo.CarMake != string.Empty) { lblCarModel.Text = ecuinfo.CarMake; lblECUType.Text = ecuinfo.EcuType; lblFuel.Text = ecuinfo.FuelType; lblCarType.Text = ecuinfo.CarType; lblSoftwareID.Text = ecuinfo.SoftwareID; if (ecuinfo.HP > 0 || ecuinfo.TQ > 0) { lblRating.Text = ecuinfo.HP + " hp/" + ecuinfo.TQ + " Nm"; } else { lblRating.Text = ""; } if (System.IO.File.Exists(Path.Combine(Application.StartupPath, "Binaries\\" + buttonEdit1.Text + ".BIN"))) { simpleButton2.Enabled = true; simpleButton3.Enabled = true; simpleButton4.Enabled = true; } else { simpleButton2.Enabled = false; simpleButton3.Enabled = false; simpleButton4.Enabled = false; } } else { MessageBox.Show("The entered partnumber was not recognized by VAGEDCSuite"); } }
private void OnLoadInfo() { App.DisplayStatusMessage("Starting loading of info.", StatusMessageType.USER); var dialog = new OpenFileDialog(); dialog.Filter = IdentificationFile.FILTER; dialog.CheckFileExists = true; dialog.CheckPathExists = true; dialog.Title = "Select Info File to Load"; dialog.InitialDirectory = Directory.GetCurrentDirectory(); //TODO: remember last used directory if (dialog.ShowDialog() == true) { ECUInfo.Clear(); try { using (var fileSteam = new FileStream(dialog.FileName, FileMode.Open, FileAccess.Read)) { var formatter = new XmlSerializer(typeof(IdentificationFile)); var infoFile = (IdentificationFile)formatter.Deserialize(fileSteam); foreach (var entry in infoFile.IdentificationValues) { ECUInfo.Add(entry); } App.DisplayStatusMessage("Successfully loaded info from file.", StatusMessageType.USER); } } catch (Exception e) { App.DisplayStatusMessage("Failed to load info from file: " + e.Message, StatusMessageType.USER); } } else { App.DisplayStatusMessage("Cancelling loading of info.", StatusMessageType.USER); } }
public EDCFileType DetermineFileType(string fileName, bool isPrimaryFile) { byte[] allBytes = File.ReadAllBytes(fileName); string boschnumber = ExtractBoschPartnumber(allBytes); //Console.WriteLine("Bosch number: " + boschnumber); partNumberConverter pnc = new partNumberConverter(); ECUInfo info = pnc.ConvertPartnumber(boschnumber, allBytes.Length); if (info.EcuType.Contains("EDC15P-6")) { if (isPrimaryFile) { m_currentFileType = EDCFileType.EDC15P6; } return(EDCFileType.EDC15P6); } else if (info.EcuType.Contains("EDC15P")) { if (isPrimaryFile) { m_currentFileType = EDCFileType.EDC15P; } return(EDCFileType.EDC15P); } else if (info.EcuType.Contains("EDC15M")) { if (isPrimaryFile) { m_currentFileType = EDCFileType.EDC15M; } return(EDCFileType.EDC15M); } else if (info.EcuType.Contains("MSA15") || info.EcuType.Contains("EDC15V-5")) { if (isPrimaryFile) { m_currentFileType = EDCFileType.MSA15; } return(EDCFileType.MSA15); } else if (info.EcuType.Contains("MSA12")) { if (isPrimaryFile) { m_currentFileType = EDCFileType.MSA12; } return(EDCFileType.MSA12); } else if (info.EcuType.Contains("MSA11")) { if (isPrimaryFile) { m_currentFileType = EDCFileType.MSA11; } return(EDCFileType.MSA11); } else if (info.EcuType.Contains("MSA6")) { if (isPrimaryFile) { m_currentFileType = EDCFileType.MSA6; } return(EDCFileType.MSA6); } else if (info.EcuType.Contains("EDC15V")) { if (isPrimaryFile) { m_currentFileType = EDCFileType.EDC15V; } return(EDCFileType.EDC15V); } if (info.EcuType.Contains("EDC15C")) { if (isPrimaryFile) { m_currentFileType = EDCFileType.EDC15C; } return(EDCFileType.EDC15C); } else if (info.EcuType.Contains("EDC16")) { if (isPrimaryFile) { m_currentFileType = EDCFileType.EDC16; } return(EDCFileType.EDC16); } else if (info.EcuType.Contains("EDC17")) { if (isPrimaryFile) { m_currentFileType = EDCFileType.EDC17; } return(EDCFileType.EDC17); } else if (IsEDC16Partnumber(boschnumber)) { if (isPrimaryFile) { m_currentFileType = EDCFileType.EDC16; } return(EDCFileType.EDC16); } else if (boschnumber != string.Empty) { if (allBytes.Length == 1024 * 1024 * 2) { if (isPrimaryFile) { m_currentFileType = EDCFileType.EDC17; } return(EDCFileType.EDC17); } else if (boschnumber.StartsWith("EDC17")) { if (isPrimaryFile) { m_currentFileType = EDCFileType.EDC17; } return(EDCFileType.EDC17); } else { if (isPrimaryFile) { m_currentFileType = EDCFileType.EDC15V; } return(EDCFileType.EDC15V); } } else { if (isPrimaryFile) { m_currentFileType = EDCFileType.EDC16; } return(EDCFileType.EDC16); // default to EDC16??? } }
private void LoadFiles() { loading = true; simpleButton1.Text = "Cancel"; simpleButton2.Enabled = false; SetProgressVisibility(true); SetScanProgress("scanning...", 0); Application.DoEvents(); ctrlAirmassResult airmassResult = new ctrlAirmassResult(); partNumberConverter pnc = new partNumberConverter(); List <ScannedFile> detectedFiles = new List <ScannedFile>(); int fileCounter = 0; if (Directory.Exists(buttonEdit1.Text)) { string[] files = Directory.GetFiles(buttonEdit1.Text, "*.*", SearchOption.AllDirectories); foreach (string file in files) { fileCounter++; int percentage = (fileCounter * 100) / files.Length; SetScanProgress("importing...", percentage); if (cancelLoad) { cancelLoad = false; break; } FileInfo fi = new FileInfo(file); this.Text = "Library builder - " + Path.GetFileNameWithoutExtension(file); Application.DoEvents(); if (IsValidLength(fi.Length)) { IEDCFileParser parser = Tools.Instance.GetParserForFile(file, false); byte[] allBytes = File.ReadAllBytes(file); string boschPartnumber = parser.ExtractBoschPartnumber(allBytes); List <CodeBlock> newCodeBlocks = new List <CodeBlock>(); List <AxisHelper> newAxisHelpers = new List <AxisHelper>(); if (boschPartnumber != string.Empty) { //string additionalInfo = parser.ExtractInfo(allBytes); SymbolCollection sc = parser.parseFile(file, out newCodeBlocks, out newAxisHelpers); ECUInfo info = pnc.ConvertPartnumber(boschPartnumber, allBytes.Length); ScannedFile newFile = new ScannedFile(); newFile.CarMake = info.CarMake; newFile.CarType = info.CarType; newFile.EcuType = info.EcuType; newFile.EngineType = info.EngineType; newFile.FuellingType = info.FuellingType; newFile.FuelType = info.FuelType; newFile.HP = info.HP; newFile.PartNumber = info.PartNumber; newFile.SoftwareID = info.SoftwareID; newFile.TQ = info.TQ; if (info.EcuType.Contains("EDC15P-6")) { newFile.Filetype = EDCFileType.EDC15P6; } else if (info.EcuType.Contains("EDC15P")) { newFile.Filetype = EDCFileType.EDC15P; } else if (info.EcuType.Contains("EDC15M")) { newFile.Filetype = EDCFileType.EDC15M; } else if (info.EcuType.Contains("EDC15V-5.")) { newFile.Filetype = EDCFileType.MSA15; } else if (info.EcuType.Contains("EDC15V")) { newFile.Filetype = EDCFileType.EDC15V; } else if (info.EcuType.Contains("EDC15C")) { newFile.Filetype = EDCFileType.EDC15C; } else if (info.EcuType.Contains("EDC16")) { newFile.Filetype = EDCFileType.EDC16; } else if (info.EcuType.Contains("EDC17")) { newFile.Filetype = EDCFileType.EDC17; } else if (info.EcuType.Contains("MSA15")) { newFile.Filetype = EDCFileType.MSA15; } else if (info.EcuType.Contains("MSA12")) { newFile.Filetype = EDCFileType.MSA12; } else if (info.EcuType.Contains("MSA11")) { newFile.Filetype = EDCFileType.MSA11; } else if (info.EcuType.Contains("MSA6")) { newFile.Filetype = EDCFileType.MSA6; } else if (boschPartnumber != string.Empty) { if (fi.Length == 1024 * 1024 * 2) { newFile.Filetype = EDCFileType.EDC17; } else if (boschPartnumber.StartsWith("EDC17")) { newFile.Filetype = EDCFileType.EDC17; } else { newFile.Filetype = EDCFileType.EDC15V; } } else { newFile.Filetype = EDCFileType.EDC16; // default to EDC16??? } newFile.Filename = file; newFile.Filesize = (int)fi.Length; ChecksumResultDetails crd = Tools.Instance.UpdateChecksum(file, true); string chkType = string.Empty; if (crd.TypeResult == ChecksumType.VAG_EDC15P_V41) { chkType = "VAG EDC15P V4.1"; } else if (crd.TypeResult == ChecksumType.VAG_EDC15P_V41V2) { chkType = "VAG EDC15P V4.1v2"; } else if (crd.TypeResult == ChecksumType.VAG_EDC15P_V41_2002) { chkType = "VAG EDC15P V4.1 2002+"; } newFile.ChecksumType = chkType; newFile.ChecksumResult = crd.CalculationResult.ToString(); newFile.NumberChecksums = crd.NumberChecksumsTotal; newFile.NumberChecksumsFail = crd.NumberChecksumsFail; newFile.NumberChecksumsOk = crd.NumberChecksumsOk; newFile.NumberMapsDetected = sc.Count; string _message = string.Empty; newFile.MapsOk = CheckMajorMapsPresent(sc, newFile.Filetype, out _message); newFile.Messages = _message; foreach (SymbolHelper sh in sc) { if (!sh.Varname.StartsWith("3D") && !sh.Varname.StartsWith("2D")) { newFile.NumberMapsRecognized++; } } try { airmassResult.Currentfile = file; airmassResult.Symbols = sc; airmassResult.Currentfile_size = (int)fi.Length; string additionalInfo = parser.ExtractInfo(allBytes); airmassResult.NumberCylinders = pnc.GetNumberOfCylinders(info.EngineType, additionalInfo); airmassResult.ECUType = info.EcuType; PerformanceResults pr = airmassResult.Calculate(file, sc); newFile.RealHP = pr.Horsepower; newFile.RealTQ = pr.Torque; } catch (Exception) { } detectedFiles.Add(newFile); } else if (file.ToUpper().EndsWith(".BIN") || file.ToUpper().EndsWith(".ORI")) { Console.WriteLine("Missed " + file); // add it as well if (checkEdit1.Checked) { ScannedFile newFile = new ScannedFile(); newFile.CarMake = ""; newFile.CarType = ""; newFile.EcuType = "Unknown"; newFile.EngineType = ""; newFile.FuellingType = ""; newFile.FuelType = ""; newFile.HP = 0; newFile.PartNumber = ""; newFile.SoftwareID = ""; newFile.TQ = 0; newFile.Filetype = EDCFileType.Unknown; newFile.Filename = file; newFile.Filesize = (int)fi.Length; newFile.ChecksumType = ""; newFile.ChecksumResult = ""; newFile.NumberChecksums = 0; newFile.NumberChecksumsFail = 0; newFile.NumberChecksumsOk = 0; newFile.NumberMapsDetected = 0; newFile.MapsOk = false; newFile.Messages = ""; newFile.NumberMapsRecognized = 0; detectedFiles.Add(newFile); } } } } gridControl1.DataSource = detectedFiles; } loading = false; SetScanProgress("done", 100); SetProgressVisibility(false); this.Text = "Library builder"; simpleButton1.Text = "Close"; simpleButton2.Enabled = true; Application.DoEvents(); }