示例#1
0
        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;
        }
示例#2
0
        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);
            });
        }