Beispiel #1
0
        private void SyncGpsTimes()
        {
            _race.Save();

            if (_race.Boats.Count > 1)
            {
                DateTime dataStart      = _race.Boats[0].GetSensorReadings()[0].datetime;
                long     dataStartTicks = dataStart.Ticks;
                for (int i = 1; i < _race.Boats.Count; i++)
                {
                    SkipperDataSet.SensorReadingsDataTable dt = _race.Boats[i].GetSensorReadings();
                    long difference = dt[0].datetime.Ticks - dataStartTicks;

                    var query = from r in Persistance.Data.BoatFile.AsEnumerable()
                                join f in Persistance.Data.SensorReadings.AsEnumerable() on r.sensorfile_id equals f.sensorfile_id
                                where
                                r.boat_id == _race.Boats[i].Id
                                //&& (/*start==null ||*/ f.datetime >=start)
                                //&& (/*end == null ||*/ f.datetime <= end)
                                orderby f.datetime ascending
                                select f;
                    foreach (SkipperDataSet.SensorReadingsRow r in query)
                    {
                        r.BeginEdit();
                        r.datetime = r.datetime.Subtract(new TimeSpan(difference));
                        r.EndEdit();
                    }
                }
            }
            _race.Save();
        }
Beispiel #2
0
        private void fileLB_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (fileLB.SelectedIndex >= 0)
            {
                SkipperDataSet.SensorReadingsDataTable srdt = ((SensorFile)fileLB.SelectedItem).SensorReadings;

                if (srdt.Rows.Count > 0)
                {
                    DateTime start = ((SkipperDataSet.SensorReadingsRow)srdt.Rows[0]).datetime;
                    DateTime end   = ((SkipperDataSet.SensorReadingsRow)srdt.Rows[srdt.Rows.Count - 1]).datetime;

                    fileInfoLBL.Text      = start.ToShortTimeString() + " to " + end.ToShortTimeString();
                    removeFileBTN.Enabled = true;
                }
                else
                {
                    fileInfoLBL.Text      = "No Data from this file was imported";
                    removeFileBTN.Enabled = true;
                }
            }
            else
            {
                fileInfoLBL.Text      = "";
                removeFileBTN.Enabled = false;
            }
        }
Beispiel #3
0
 private ReplayBoat(SkipperDataSet.BoatRow row)
 {
     LoadFromRow(row);
     _currentMarkIndex = new TimeLineStatistic<int>(new Raw<int>("Current Mark", new AmphibianSoftware.VisualSail.Data.Statistics.Calculator.Int32.Calculator(), 0, StatisticType.other, StatisticUnit.other, StatisticUnit.other, "", false));
     _currentTackIndex = new TimeLineStatistic<int>(new Raw<int>("Current Tack", new AmphibianSoftware.VisualSail.Data.Statistics.Calculator.Int32.Calculator(), 1, StatisticType.other, StatisticUnit.other, StatisticUnit.other, "", false));
     _tacks = new List<Tack>();
     _boatDataRows = GetSensorReadings();
     InitializeStatistics();
 }
Beispiel #4
0
        public SkipperDataSet.SensorReadingsDataTable GetSensorReadings(DateTime?start, DateTime?end)
        {
            SkipperDataSet.SensorReadingsDataTable dt = new SkipperDataSet.SensorReadingsDataTable();
            List <SensorFile> files = new List <SensorFile>();
            var query = from r in Persistance.Data.BoatFile.AsEnumerable()
                        join f in Persistance.Data.SensorReadings.AsEnumerable() on r.sensorfile_id equals f.sensorfile_id
                        where
                        r.boat_id == _id &&
                        (start == null || f.datetime >= start) &&
                        (end == null || f.datetime <= end)
                        orderby f.datetime ascending
                        select f;

            foreach (SkipperDataSet.SensorReadingsRow r in query)
            {
                dt.ImportRow(r);
            }
            return(dt);
        }
Beispiel #5
0
        private void LoadPaths(Race race)
        {
            DateTime start = race.UtcStart;
            DateTime end   = race.UtcEnd;

            _paths = new List <List <ColoredCoordinatePoint> >();
            foreach (Boat b in race.Boats)
            {
                List <ColoredCoordinatePoint> points = new List <ColoredCoordinatePoint>();
                Color c = Color.FromArgb(b.Color);
                SkipperDataSet.SensorReadingsDataTable dt = b.GetSensorReadings(start, end);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    CoordinatePoint cp = new CoordinatePoint(new Coordinate(((SkipperDataSet.SensorReadingsRow)dt.Rows[i]).latitude), new Coordinate(((SkipperDataSet.SensorReadingsRow)dt.Rows[i]).longitude), ((SkipperDataSet.SensorReadingsRow)dt.Rows[i]).altitude);
                    points.Add(new ColoredCoordinatePoint(cp, c));
                }
                _paths.Add(points);
            }
        }
Beispiel #6
0
 public SkipperDataSet.SensorReadingsDataTable GetSensorReadings(DateTime? start,DateTime? end)
 {
     SkipperDataSet.SensorReadingsDataTable dt = new SkipperDataSet.SensorReadingsDataTable();
     List<SensorFile> files = new List<SensorFile>();
     var query = from r in Persistance.Data.BoatFile.AsEnumerable()
                 join f in Persistance.Data.SensorReadings.AsEnumerable() on r.sensorfile_id equals f.sensorfile_id
                 where 
                     r.boat_id == _id 
                     && (start==null || f.datetime >=start)
                     && (end == null || f.datetime <= end)
                 orderby f.datetime ascending
                 select f;
     foreach (SkipperDataSet.SensorReadingsRow r in query)
     {
         dt.ImportRow(r);
     }
     return dt;
 }