示例#1
0
        private void sampleLiDARToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (TimeLineWnd == null)
            {
                MessageBox.Show("Frame is not selected! Open the TimeLine window and select a frame.", "Frame is not selected", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            List <ILogger> loggers = new List <ILogger>();

            loggers.Add(ConsoleLogger);

            MainForm       form = (MainForm)this.MdiParent;
            ProgressBarWnd wnd  = new ProgressBarWnd();

            wnd.Text = "Export LiDAR frames...";
            loggers.Add(wnd);

            MultipleLogger logger = new MultipleLogger(loggers);

            wnd.WriteLine("Export LiDAR frames..");
            toolStripProgressBar.Visible = true;

            DateTime startTime = TimeLineWnd.CurrentTime;

            startTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, startTime.Hour, startTime.Minute, startTime.Second);

            wnd.Worker.DoWork += delegate(object senderWorker, DoWorkEventArgs eWorker)
            {
                try
                {
                    for (int k = 0; k < 100; k++)
                    {
                        wnd.CancelTokenSource.Token.ThrowIfCancellationRequested();
                        DateTime currentTime = startTime.AddSeconds(k);
                        wnd.WriteLine("Time: " + currentTime.ToString("yyyy-MM-hh HH:mm:ss.fff"));
                        this.SampleLiDAR(currentTime, LiDARTransformType.None);
                    }
                }
                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();
        }
示例#2
0
        private void extractFolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
            List <ILogger> loggers = new List <ILogger>();

            loggers.Add(ConsoleLogger);

            if (!Directory.Exists(Project.Folder + "\\" + Project.MetadataFolder))
            {
                Directory.CreateDirectory(Project.Folder + "\\" + Project.MetadataFolder);
            }
            var fileLogger = FileLogger.Create(Project.Folder + "\\" + Project.MetadataFolder + "\\metadata.txt", Project.Folder + "\\" + Project.MetadataFolder + "\\warnings.txt");

            loggers.Add(fileLogger);

            MainForm       form = (MainForm)this.MdiParent;
            ProgressBarWnd wnd  = new ProgressBarWnd();

            wnd.Text             = "Loading project...";
            wnd.ProgressBarStyle = ProgressBarStyle.Blocks;
            loggers.Add(wnd);

            MultipleLogger logger = new MultipleLogger(loggers);

            wnd.WriteLine("Start loading project: " + projectFolder);
            toolStripProgressBar.Visible = true;

            wnd.Worker.DoWork += delegate(object senderWorker, DoWorkEventArgs eWorker)
            {
                try
                {
                    MetadataBuilder.Create(Project, new MultipleLogger(loggers), wnd.CancelTokenSource.Token);
                }
                catch (OperationCanceledException)
                {
                }
                catch (Exception ex)
                {
                    logger.WriteLineError("Error occured: " + ex.Message);
                }
            };

            wnd.Worker.RunWorkerCompleted += delegate(object senderWorker, RunWorkerCompletedEventArgs eWorker)
            {
                toolStripProgressBar.Visible = false;
                fileLogger.Flush();
                fileLogger.Dispose();
            };

            wnd.ShowDialog();
        }
示例#3
0
        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();
        }