public TimeFeature(DataStream stream, ImageDataLine dataLine, HotFrame hotFrame) { this.DataStream = stream; this.OriginalTime = dataLine.TimeStamp; this.FileTime = dataLine.TimeStamp; this.FileName = dataLine.ImageFileName; this.GlobalTime = hotFrame.Timestamp; }
public void SetFrame(int frame) { CurrentHotFrame = null; if ((frame >= 0) && (frame < dataStream.DataLines.Count())) { if (frame != currentFrame) { if (frameBox.Image != null) { frameBox.Image.Dispose(); } ImageDataLine dataLine = (ImageDataLine)dataStream.DataLines[frame]; String fileName = dataLine.ImageFileName; if (Path.GetExtension(fileName) == ".yuv") { frameBox.Image = YUVConverter.Convert(project.Folder + "\\" + dataStream.SubFolder + "\\" + fileName, logger); } else { frameBox.Image = Image.FromFile(project.Folder + "\\" + dataStream.SubFolder + "\\" + fileName); } frameBox.ZoomToFit(); frameBox.Refresh(); currentFrame = frame; //some UI stuff lblStatus.Text = dataLine.TimeType.ToString() + " " + dataLine.TimeStamp.ToString("yyyy-MM-dd HH:mm:ss.fff") + " #: " + currentFrame; trackBar.Value = currentFrame; } } else { frameBox.Image = null; if (frame < 0) { currentFrame = 0; trackBar.Value = 0; } else if (frame > dataStream.DataLines.Count()) { currentFrame = dataStream.DataLines.Count() - 1; trackBar.Value = trackBar.Maximum; } //some UI stuff toolStripStatus.Text = "Outside of the stream time limits."; } }
private async Task SyncSept(String fileName) { using (StreamReader reader = File.OpenText(fileName)) { reader.ReadLine(); int num_dates = 0; int num_lines = 0; List <double> dts = new List <double>(); while (!reader.EndOfStream) { num_lines++; string[] elems = reader.ReadLine().Split(','); String imageName = elems[0]; ImageDataLine dataLine = (ImageDataLine)dataStream.DataLines.Find(x => ((ImageDataLine)x).ImageFileName == imageName); if (dataLine == null) { continue; } DateTime dateTime = new DateTime(Convert.ToInt32(elems[1]), Convert.ToInt32(elems[2]), Convert.ToInt32(elems[3]), Convert.ToInt32(elems[4]), Convert.ToInt32(elems[5]), 0); dateTime = dateTime.AddSeconds(Convert.ToDouble(elems[6])); dts.Add(Math.Abs((new TimeSpan(dataLine.TimeStamp.Ticks - dateTime.Ticks)).TotalSeconds)); dataLine.TimeStamp = dateTime; dataLine.TimeType = TimeType.GPS; num_dates++; logger.WriteProgress((double)reader.BaseStream.Position / (double)reader.BaseStream.Length * 100); } this.dataStream.OrderDataLines(); logger.WriteLineInfo("Number of updated items: " + num_dates + " out of " + dataStream.DataLines.Count()); logger.WriteLineInfo("Number of items in the file: " + num_lines); logger.WriteLineInfo("Average dT [s]= " + dts.Average()); logger.WriteLineInfo("Maximum dT [s]= " + dts.Max()); logger.WriteLineInfo("Minimum dT [s]= " + dts.Min()); } }