Exemplo n.º 1
0
        private void Calc()
        {
            LapCount = Laps.Count;

            if (LapCount == 0)
            {
                TotalRot   = 0;
                MaxRot     = 0;
                AverageRot = 0;
            }
            else
            {
                TotalRot   = Laps.Sum(x => x.Rot);
                MaxRot     = Laps.Max(x => x.Rot);
                AverageRot = (double)TotalRot / LapCount;
            }
        }
Exemplo n.º 2
0
        private void analyseLaps()
        {
            var lDist = Laps.Sum(l => l.DistanceMeters);
            var lapsWithTrackPoints = Laps.Where(l => l.TrackPoints != null && l.TrackPoints.Any()).ToList();

            if (lapsWithTrackPoints.Any())
            {
                var tDist = lapsWithTrackPoints.SelectMany(l => l.TrackPoints).Max(t => t.DistanceMeters);
                if (lDist != tDist)
                {
                    Debugger.Log(1, "", $"Laps inconsistent: trackpoints cover {100.0 * tDist / lDist}% of lap distance ({tDist} vs {lDist})\r\n");
                }
            }
            TrackPoint lastTrackPoint = null;
            var        totalDistance  = 0.0;

            foreach (var lap in Laps)
            {
                totalDistance += lap.DistanceMeters;
                foreach (var trackpoint in lap.TrackPoints)
                {
                    if (lastTrackPoint != null)
                    {
                        var interval        = trackpoint.Time - lastTrackPoint.Time;
                        var intervalS       = interval.TotalSeconds;
                        var distanceCovered = trackpoint.DistanceMeters - lastTrackPoint.DistanceMeters;
                        lastTrackPoint.Interval          = interval;
                        trackpoint.DistanceCoveredMeters = distanceCovered;
                    }
                    lastTrackPoint = trackpoint;
                }
            }
            if (lastTrackPoint != null)
            {
                lastTrackPoint.Interval = EndTime - lastTrackPoint.Time;
            }
        }
Exemplo n.º 3
0
        public decimal GetAvarageSpeed()
        {
            var sum = Laps.Sum(l => l.AvarageSpeed);

            return(sum / Laps.Count());
        }