/// <summary> /// Convert Velodyne data stream into internal format /// </summary> /// <param name="velodyneDataStream"></param> private void ConvertVelodyneDataStream(VelodyneDataStream velodyneDataStream) { MainForm form = (MainForm)this.MdiParent; ProgressBarWnd wnd = new ProgressBarWnd(); wnd.Text = "Conversion: " + velodyneDataStream.ShortName; // create multiple logger List <ILogger> loggers = new List <ILogger>(); loggers.Add(Logger); loggers.Add(wnd); MultipleLogger logger = new MultipleLogger(loggers); wnd.Worker.DoWork += delegate(object senderWorker, DoWorkEventArgs eWorker) { foreach (VelodyneDataLine dataLine in velodyneDataStream.DataLines) { VelodyneConverter converter = VelodyneConverter.Create(form.Project.Folder + "\\" + velodyneDataStream.SubFolder + "\\" + dataLine.PcapLocation); converter.ProgressReport += delegate(object senderReport, ProgressReportEventArgs argsReport) { logger.WriteLineInfo(argsReport.CurrentDataTime.ToString("yyy-MM-dd hh:mm:ss") + " " + argsReport.ReadBytes / 1000000 + " MB " + argsReport.Precentage.ToString("0.00") + "%" + Environment.NewLine); logger.WriteProgress(argsReport.Precentage); }; try { converter.Convert(wnd.CancelTokenSource.Token); } catch (OperationCanceledException) { // TODO: clean up files! } catch (Exception ex) { logger.WriteLineInfo("Error occured: " + ex.Message); } } }; wnd.Worker.RunWorkerCompleted += delegate(object senderWorker, RunWorkerCompletedEventArgs eWorker) { logger.WriteLineInfo("Conversion done."); logger.WriteProgress(100); }; wnd.ShowDialog(); }
private void updateFileTimesToolStripMenuItem_Click(object sender, EventArgs e) { List <ILogger> loggers = new List <ILogger>(); loggers.Add(ConsoleLogger); MainForm form = (MainForm)this.MdiParent; ProgressBarWnd wnd = new ProgressBarWnd(); wnd.Text = "Updating file times..."; loggers.Add(wnd); MultipleLogger logger = new MultipleLogger(loggers); wnd.WriteLine("Start updating file times: " + projectFolder); toolStripProgressBar.Visible = true; wnd.Worker.DoWork += delegate(object senderWorker, DoWorkEventArgs eWorker) { try { int k = 0; foreach (DataStream stream in Project.DataStreams) { wnd.CancelTokenSource.Token.ThrowIfCancellationRequested(); logger.WriteProgress((++k / (double)Project.DataStreams.Count()) * 100.0); if (stream is ImageDataStream) { logger.WriteLineInfo("Image data stream: " + stream.ShortName); ImageDataStream imageDataStream = stream as ImageDataStream; imageDataStream.UpdateFileTimes(); } if (stream is VideoDataStream) { logger.WriteLineInfo("Image data stream: " + stream.ShortName); VideoDataStream videoDataStream = stream as VideoDataStream; videoDataStream.UpdateFileTimes(); } } } catch (OperationCanceledException) { logger.WriteLineWarning("User cancelled!"); return; } catch (Exception ex) { logger.WriteLineError("Error occured: " + ex.Message); } logger.WriteLineInfo("done."); }; wnd.Worker.RunWorkerCompleted += delegate(object senderWorker, RunWorkerCompletedEventArgs eWorker) { toolStripProgressBar.Visible = false; }; wnd.ShowDialog(); }