Ejemplo n.º 1
0
        public void SetLimitsToTrackBar()
        {
            foreach (DataStream dataStream in project.DataStreams)
            {
                if (dataStream is ImageDataStream)
                {
                    ImageDataStream imageDataStream = dataStream as ImageDataStream;
                    if ((imageDataStream.StartTime != DateTime.MaxValue) && (imageDataStream.EndTime != DateTime.MaxValue))
                    {
                        if (imageDataStream.StartTime < minTime)
                        {
                            minTime = imageDataStream.StartTime;
                        }
                        if (imageDataStream.EndTime > maxTime)
                        {
                            maxTime = imageDataStream.EndTime;
                        }
                    }
                }
            }

            double totalSecs = (new TimeSpan(maxTime.Ticks - minTime.Ticks)).TotalSeconds;

            trackBar.Minimum = 0;
            trackBar.Maximum = Convert.ToInt32(totalSecs / timeResolution);
            timer.Interval   = Convert.ToInt32(timeResolution * 1000.0);
            CurrentTime      = minTime;
        }
Ejemplo n.º 2
0
        public static void Create(Project project, ILogger logger, CancellationToken cancelletionToken = default(CancellationToken))
        {
            logger.WriteLineInfo("----------------------------------");
            logger.WriteLineInfo("  CAR METADATA file v0.1");
            logger.WriteLineInfo("  The Ohio State University, 2017");
            logger.WriteLineInfo("----------------------------------");
            logger.WriteLineInfo(" ");
            logger.WriteLineInfo(" ");

            int pi = 0;

            foreach (DataStream dataStream in project.DataStreams)
            {
                pi++;
                cancelletionToken.ThrowIfCancellationRequested();

                logger.WriteProgress((double)pi / (double)project.DataStreams.Count() * 100.0);
                dataStream.WriteMetadata(logger);
            }

            PrintSummary(project, logger);

            logger.WriteLineInfo(" ");
            logger.WriteLineInfo("Checking: ");

            // Checking Nikon's Novatel MARKTIMEA
            ImageDataStream   nikonDataStream   = (ImageDataStream)project.GetDataStreamByShortName("NIKON");
            NovatelDataStream novatelDataStream = (NovatelDataStream)project.GetDataStreamByShortName("NOVATEL");

            CheckEvents(nikonDataStream, novatelDataStream, EvenMarkerDataLine.MarkerEventPort.Unknown, logger);

            /*if ((nikonDataStream != null) && (novatelDataStream != null))
             * {
             *  if (nikonDataStream.NumOfFiles != novatelDataStream.MarkerEvents.Count())
             *  {
             *      logger.WriteLineInfo("WRONG -- Number of #MARKTIME events from the Novatel ASC and the number of Nikon images are different!");
             *      logger.WriteLineWarning("Number of #MARKTIME events from the Novatel ASC and the number of Nikon images are different!");
             *  }
             *  else
             *  {
             *      logger.WriteLineInfo("OK -- Number of #MARKTIME events from the Novatel ASC and the number of Nikon images !");
             *  }
             * }*/

            // Checking Sony's Septentrio MARKTIME
            ImageDataStream son1DataStream = (ImageDataStream)project.GetDataStreamByShortName("SON1");
            ImageDataStream son2DataStream = (ImageDataStream)project.GetDataStreamByShortName("SON2");
            GPSDataStream   septDataStream = (GPSDataStream)project.GetDataStreamByShortName("SEPT");

            CheckEvents(son1DataStream, septDataStream, EvenMarkerDataLine.MarkerEventPort.EventA, logger);
            CheckEvents(son2DataStream, septDataStream, EvenMarkerDataLine.MarkerEventPort.EventB, logger);

            logger.Flush();
        }
Ejemplo n.º 3
0
        private void dataStreamList_DoubleClick(object sender, EventArgs e)
        {
            DataStream dataStream = (DataStream)dataStreamList.SelectedItem;

            if (dataStream.DataLines.Count == 0)
            {
                Logger.WriteLineWarning("No file for " + dataStream.ShortName);
                MessageBox.Show("No file for " + dataStream.ShortName, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            if (dataStreamList.SelectedItem is VideoDataStream)
            {
                VideoDataStream videoDataStream = dataStreamList.SelectedItem as VideoDataStream;
                VideoStreamWnd  wnd             = new VideoStreamWnd(videoDataStream, Logger);
                wnd.MdiParent = this.MdiParent;
                wnd.Show();
            }
            else if (dataStreamList.SelectedItem is ImageDataStream)
            {
                ImageDataStream imageDataStream = dataStreamList.SelectedItem as ImageDataStream;
                ImageStreamWnd  wnd             = new ImageStreamWnd(imageDataStream, Logger);
                wnd.MdiParent = this.MdiParent;
                wnd.Show();
            }
            else if (dataStreamList.SelectedItem is VelodyneDataStream)
            {
                VelodyneDataStream velodyneDataStream = dataStreamList.SelectedItem as VelodyneDataStream;
                if (velodyneDataStream.HasIndexedFiles() == false)
                {
                    DialogResult result = MessageBox.Show("No index file for " + dataStream.ShortName + "! Do you want to create index file?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                    if (result == DialogResult.No)
                    {
                        return;
                    }
                    ConvertVelodyneDataStream(velodyneDataStream);
                }
                else
                {
                    VelodyneStreamWnd wnd = new VelodyneStreamWnd(velodyneDataStream, Logger);
                    wnd.MdiParent = this.MdiParent;
                    wnd.Show();
                }
            }
            else if (dataStreamList.SelectedItem is GPSDataStream)
            {
                GPSDataStream    gpsDataStream = dataStreamList.SelectedItem as GPSDataStream;
                GPSDataStreamWnd wnd           = new GPSDataStreamWnd(gpsDataStream, Logger);
                wnd.MdiParent = this.MdiParent;
                wnd.Show();
            }
        }
Ejemplo n.º 4
0
        public ImageStreamWnd(ImageDataStream dataStream, ILogger logger)
        {
            InitializeComponent();

            this.dataStream = dataStream;
            this.logger     = logger;
            timer.Interval  = 500;

            trackBar.Minimum   = 0;
            trackBar.Maximum   = Convert.ToInt32(dataStream.DataLines.Count());
            this.HasToSetFrame = true;

            this.Text        = "Image Stream: " + dataStream.ShortName;
            this.windowState = StreamWindowState.Normal;
        }
Ejemplo n.º 5
0
        public static void CheckEvents(ImageDataStream imgDataStream, GPSDataStream gpsDataStream, EvenMarkerDataLine.MarkerEventPort port, ILogger logger)
        {
            if ((imgDataStream != null) && (gpsDataStream != null))
            {
                if (imgDataStream.DataLines.Count() == 0)
                {
                    return;
                }

                DateTime startTime  = imgDataStream.StartTime - TimeSpan.FromMinutes(5);
                DateTime endTime    = imgDataStream.EndTime + TimeSpan.FromMinutes(5);
                int      numMarkers = 0;

                // check events and image numbers
                foreach (EvenMarkerDataLine evnt in gpsDataStream.MarkerEvents)
                {
                    if ((startTime <= evnt.TimeStamp) && (evnt.TimeStamp <= endTime) && (evnt.Port == port))
                    {
                        numMarkers++;
                    }
                }

                if (imgDataStream.NumOfData != numMarkers)
                {
                    logger.WriteLineWarning("Number of events from the " + gpsDataStream.ShortName + " and the number of " + imgDataStream.ShortName + " images are different!");
                    logger.WriteLineWarning("Number of images: " + imgDataStream.NumOfData);
                    logger.WriteLineWarning("Number of markers: " + numMarkers);
                }
                else
                {
                    logger.WriteLineInfo("OK -- Number of events from the " + gpsDataStream.ShortName + " and the number of " + imgDataStream.ShortName + " images are same");
                    logger.WriteLineInfo("Number of images: " + imgDataStream.NumOfData);
                    logger.WriteLineInfo("Number of markers: " + numMarkers);
                }
            }
        }
Ejemplo n.º 6
0
 public ImageFeature(ImageDataStream dataStream) : this()
 {
     this.DataStream = dataStream;
 }
Ejemplo n.º 7
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();
        }