[chronojump] RaceAnalyzer load capture graphs start at preferences.runEncoderMinAccel (10ms^2)
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] RaceAnalyzer load capture graphs start at preferences.runEncoderMinAccel (10ms^2)
- Date: Tue, 10 May 2022 11:25:07 +0000 (UTC)
commit f255db9fa902828ea2bc1eed01c2cedead655b2b
Author: Xavier de Blas <xaviblas gmail com>
Date: Tue May 10 12:41:26 2022 +0200
RaceAnalyzer load capture graphs start at preferences.runEncoderMinAccel (10ms^2)
src/gui/app1/runEncoder.cs | 54 ++++++++++++++++++++++++++++++++--------------
1 file changed, 38 insertions(+), 16 deletions(-)
---
diff --git a/src/gui/app1/runEncoder.cs b/src/gui/app1/runEncoder.cs
index 881189f80..63ac2dcc4 100644
--- a/src/gui/app1/runEncoder.cs
+++ b/src/gui/app1/runEncoder.cs
@@ -1092,7 +1092,12 @@ public partial class ChronoJumpWindow
double timePre2 = -1;
double speedPre = -1;
double timePre = -1;
+ double accel = -1;
+ bool enoughAccel = false; //accel has been > preferences.runEncoderMinAccel (default 10ms^2)
+ string rowPre = "";
+
+ //store data on cairoGraphRaceAnalyzerPoints_dt_l, ...st_l, ...at_l
foreach(string row in contents)
{
//LogB.Information("row: " + row);
@@ -1105,15 +1110,7 @@ public partial class ChronoJumpWindow
if(reCGSD.PassLoadedRow (row))
reCGSD.Calcule();
- //distance/time
- cairoGraphRaceAnalyzerPoints_dt_l.Add(new PointF(
- UtilAll.DivideSafe(reCGSD.Time, 1000000),
- reCGSD.RunEncoderCaptureDistance));
- //speed/time
- cairoGraphRaceAnalyzerPoints_st_l.Add(new PointF(
- UtilAll.DivideSafe(reCGSD.Time, 1000000),
- reCGSD.RunEncoderCaptureSpeed));
-
+ rowPre = row;
speedPre2 = speedPre;
timePre2 = timePre;
speedPre = reCGSD.RunEncoderCaptureSpeed;
@@ -1121,18 +1118,43 @@ public partial class ChronoJumpWindow
if(timePre2 > 0)
{
- //LogB.Information(string.Format("accel at load is: {0} m/s",
- // UtilAll.DivideSafe(reCGSD.RunEncoderCaptureSpeed -
speedPre2,
- // UtilAll.DivideSafe(reCGSD.Time, 1000000) -
timePre2)));
+ accel = UtilAll.DivideSafe(reCGSD.RunEncoderCaptureSpeed - speedPre2,
+ UtilAll.DivideSafe(reCGSD.Time, 1000000) -
timePre2);
+
+ if (accel > preferences.runEncoderMinAccel && ! enoughAccel)
+ {
+ //recreate rcCGSD object since now
+ reCGSD = new RunEncoderCaptureGetSpeedAndDisplacement(
+ currentRunEncoderExercise.SegmentCm,
currentRunEncoderExercise.SegmentVariableCm,
+ currentPersonSession.Weight, //but note if person
changes (but graph will be hopefully erased), this will change also take care on exports
+ currentRunEncoder.Angle);
+
+ //pass previous row and this one
+ if(reCGSD.PassLoadedRow (rowPre))
+ reCGSD.Calcule();
+ if(reCGSD.PassLoadedRow (row))
+ reCGSD.Calcule();
+
+ enoughAccel = true;
+ }
+ }
+
+ if(enoughAccel)
+ {
+ cairoGraphRaceAnalyzerPoints_dt_l.Add(new PointF(
+ UtilAll.DivideSafe(reCGSD.Time, 1000000),
+ reCGSD.RunEncoderCaptureDistance));
+
+ cairoGraphRaceAnalyzerPoints_st_l.Add(new PointF(
+ UtilAll.DivideSafe(reCGSD.Time, 1000000),
+ reCGSD.RunEncoderCaptureSpeed));
- //accel/time
cairoGraphRaceAnalyzerPoints_at_l.Add(new PointF(
UtilAll.DivideSafe(reCGSD.Time, 1000000),
- UtilAll.DivideSafe(reCGSD.RunEncoderCaptureSpeed -
speedPre2,
- UtilAll.DivideSafe(reCGSD.Time, 1000000) -
timePre2)));
+ accel));
}
-
}
+
if(reCGSD.RunEncoderCaptureSpeedMax > 0)
{
if(cairoRadial == null)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]