public async void LoadLog(DSLOGFileEntry file) { var fileName = $"{file.FilePath}\\{file.Name}.dsevents"; EventsDict.Clear(); Entries = null; //listViewEvents.Items.Clear(); if (!File.Exists(fileName)) { return; } DSEVENTSReader reader = new DSEVENTSReader(fileName); try { reader.Read(); } catch (Exception ex) { MessageBox.Show("dsevent file corrupted!"); return; } if (reader.Version != 4) { return; } Entries = reader.Entries; }
public void TestReadEvents() { var reader = new DSEVENTSReader("TestFiles\\2022_02_25 21_25_39 Fri.dsevents"); reader.Read(); Assert.IsTrue(reader.Version == 4); Assert.IsTrue(reader.Entries[0].Data == "<TagVersion>1 <time> 04.803 <message> ********** Robot program starting ********** "); }
private void backgroundWorkerExport_DoWork(object sender, DoWorkEventArgs e) { var tempDict = new Dictionary <string, DSLOGFileEntry>(); Files.ForEach(en => tempDict.Add(en.Name, en)); TotalExported = 0; Parallel.ForEach(CheckedFiles, (file, state) => { DSLOGFileEntry entry; if (tempDict.TryGetValue(file, out entry)) { DateTime matchTime = DateTime.Now; if (checkBoxLogs.Checked) { string dsFile = $"{entry.FilePath}\\{entry.Name}.dslog"; if (File.Exists(dsFile)) { DSLOGReader reader = new DSLOGReader(dsFile); try { reader.Read(); } catch (Exception ex) { return; } if (entry.IsFMSMatch) { string eventName = entry.EventName; if (!UseFilledInEvents && entry.FMSFilledIn) { eventName = ""; } string data = Util.GetTableFromLogEntries(reader.Entries, Series, IdToPDPGroup, checkBoxMatchTime.Checked && reader.Entries.TryFindMatchStart(out matchTime), matchTime, ","); var dir = $"{FilePath}\\{eventName}{entry.StartTime.Year}"; if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } File.WriteAllText($"{dir}\\{entry.Name} {entry.MatchType}_{entry.FMSMatchNum}.csv", data); } else { string data = Util.GetTableFromLogEntries(reader.Entries, Series, IdToPDPGroup, false, matchTime, ","); var dir = $"{FilePath}\\{entry.StartTime.Year}"; if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } File.WriteAllText($"{dir}\\{entry.Name}.csv", data); } } } if (checkBoxEvents.Checked) { string dsFile = $"{entry.FilePath}\\{entry.Name}.dsevents"; if (File.Exists(dsFile)) { DSEVENTSReader reader = new DSEVENTSReader(dsFile); try { reader.Read(); } catch (Exception ex) { return; } if (entry.IsFMSMatch) { string eventName = entry.EventName; if (!UseFilledInEvents && entry.FMSFilledIn) { eventName = ""; } string data = Util.GetTableFromEvents(reader.Entries, checkBoxMatchTime.Checked && checkBoxLogs.Checked, matchTime, ","); var dir = $"{FilePath}\\{eventName}{entry.StartTime.Year}"; if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } File.WriteAllText($"{dir}\\{entry.Name} {entry.MatchType}_{entry.FMSMatchNum}_Events.csv", data); } else { string data = Util.GetTableFromEvents(reader.Entries, false, matchTime, ","); var dir = $"{FilePath}\\{entry.StartTime.Year}"; if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } File.WriteAllText($"{dir}\\{entry.Name}_Events.csv", data); } } } } if (backgroundWorkerExport.CancellationPending) { e.Cancel = true; state.Break(); } int precent = (int)((double)++TotalExported / CheckedFiles.Count * 100.0); backgroundWorkerExport.ReportProgress(precent); }); }