[chronojump] Networks inertial upload reps discard with preferences.encoderCaptureInertialDiscardFirstN
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Networks inertial upload reps discard with preferences.encoderCaptureInertialDiscardFirstN
- Date: Mon, 15 Jul 2019 15:00:53 +0000 (UTC)
commit 122ca26b4812cfdfe7ac93861f732bbc82117727
Author: Xavier de Blas <xaviblas gmail com>
Date: Mon Jul 15 16:59:43 2019 +0200
Networks inertial upload reps discard with preferences.encoderCaptureInertialDiscardFirstN
src/gui/encoder.cs | 86 +++++++++++++++++++++++++++++----------------------
src/json/compujump.cs | 32 +++++++++++++++++--
2 files changed, 79 insertions(+), 39 deletions(-)
---
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index a973d678..384315b9 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -6999,43 +6999,7 @@ public partial class ChronoJumpWindow
if(configChronojump.Compujump && encoderCaptureCurves.Count >
0)
{
- UploadEncoderDataObject uo = new
UploadEncoderDataObject(
- encoderCaptureCurves,
lastEncoderSQLSignal.eccon);
-
-
- /*
- * Problems on Json by accents like "Pressió sobre
banc"
- * string exerciseName =
UtilGtk.ComboGetActive(combo_encoder_exercise_capture);
- * right now fixed in json.cs UploadEncoderData()
- */
-
- LogB.Information("calling Upload");
- JsonCompujump js = new
JsonCompujump(configChronojump.CompujumpDjango);
- UploadEncoderDataFullObject uedfo = new
UploadEncoderDataFullObject(
- -1, //uniqueID
- currentPerson.UniqueID,
- configChronojump.CompujumpStationID,
- lastEncoderSQLSignal.exerciseID,
-
lastEncoderSQLSignal.LateralityToEnglish(),
-
Util.ConvertToPoint(findMass(Constants.MassType.EXTRA)), //this is only for gravitatory
- uo);
- bool success = js.UploadEncoderData(uedfo);
-
- LogB.Information(js.ResultMessage);
- LogB.Information("called Upload");
-
- if(! success) {
- LogB.Error(js.ResultMessage);
-
- SqliteJson.InsertTempEncoder(false, uedfo);
-
- bool showInWindow = false;
- if(showInWindow)
- new DialogMessage(
- "Chronojump",
-
Constants.MessageTypes.WARNING,
- js.ResultMessage);
- }
+ uploadEncoderDataObjectIfPossible();
}
else if(configChronojump.Exhibition &&
configChronojump.ExhibitionStationType ==
ExhibitionTest.testTypes.INERTIAL &&
@@ -7262,6 +7226,54 @@ public partial class ChronoJumpWindow
chronojumpWindowTestsNext();
}
+ private void uploadEncoderDataObjectIfPossible()
+ {
+ UploadEncoderDataObject uo = new UploadEncoderDataObject(encoderCaptureCurves,
lastEncoderSQLSignal.eccon);
+
+ if(current_menuitem_mode == Constants.Menuitem_modes.POWERINERTIAL)
+ {
+ //discard first reps on inertial and if there are not enough reps, then do not upload
+ if(! uo.InertialDiscardFirstN(preferences.encoderCaptureInertialDiscardFirstN))
+ return;
+ }
+
+ uo.Calcule();
+
+ /*
+ * Problems on Json by accents like "Pressió sobre banc"
+ * string exerciseName = UtilGtk.ComboGetActive(combo_encoder_exercise_capture);
+ * right now fixed in json.cs UploadEncoderData()
+ */
+
+ LogB.Information("calling Upload");
+ JsonCompujump js = new JsonCompujump(configChronojump.CompujumpDjango);
+ UploadEncoderDataFullObject uedfo = new UploadEncoderDataFullObject(
+ -1, //uniqueID
+ currentPerson.UniqueID,
+ configChronojump.CompujumpStationID,
+ lastEncoderSQLSignal.exerciseID,
+ lastEncoderSQLSignal.LateralityToEnglish(),
+ Util.ConvertToPoint(findMass(Constants.MassType.EXTRA)), //this is only for
gravitatory
+ uo);
+ bool success = js.UploadEncoderData(uedfo);
+
+ LogB.Information(js.ResultMessage);
+ LogB.Information("called Upload");
+
+ if(! success) {
+ LogB.Error(js.ResultMessage);
+
+ SqliteJson.InsertTempEncoder(false, uedfo);
+
+ bool showInWindow = false;
+ if(showInWindow)
+ new DialogMessage(
+ "Chronojump",
+ Constants.MessageTypes.WARNING,
+ js.ResultMessage);
+ }
+ }
+
//sqlite is opened on this method
private void manageCurvesOfThisSignal()
{
diff --git a/src/json/compujump.cs b/src/json/compujump.cs
index 40fae25f..4d94b066 100644
--- a/src/json/compujump.cs
+++ b/src/json/compujump.cs
@@ -788,7 +788,6 @@ public class UploadEncoderDataObject
{
private enum byTypes { SPEED, POWER }
- public string eccon; //"c" or "ec"
public int repetitions;
//variables calculated BySpeed (by best mean speed)
@@ -811,8 +810,36 @@ public class UploadEncoderDataObject
public double pmeanByPowerAsDouble;
+ private ArrayList curves;
+ private string eccon;
+
//constructor called after capture
public UploadEncoderDataObject(ArrayList curves, string eccon)
+ {
+ this.curves = curves;
+ this.eccon = eccon;
+ }
+
+ //returns false if on discarding, there are no curves
+ public bool InertialDiscardFirstN(int inertialDiscardFirstN)
+ {
+ if(eccon == "c")
+ {
+ if(curves.Count > inertialDiscardFirstN)
+ curves.RemoveRange(0, inertialDiscardFirstN);
+ else
+ return false;
+ } else {
+ if(curves.Count > inertialDiscardFirstN *2)
+ curves.RemoveRange(0, inertialDiscardFirstN *2);
+ else
+ return false;
+ }
+
+ return true;
+ }
+
+ public void Calcule()
{
if(eccon == "c")
calculeObjectCon (curves);
@@ -820,6 +847,7 @@ public class UploadEncoderDataObject
calculeObjectEccCon (curves);
}
+
private void calculeObjectCon (ArrayList curves)
{
repetitions = curves.Count;
@@ -887,7 +915,7 @@ public class UploadEncoderDataObject
lossByPower = eSignal.GetEccConLossByOnlyConPhase(Constants.MeanPower);
}
- //constructor called on SQL load
+ //constructor called on SQL load SqliteJson.SelectTempEncoder()
public UploadEncoderDataObject(int repetitions,
int numBySpeed, int lossBySpeed, string rangeBySpeed,
string vmeanBySpeed, string vmaxBySpeed, string pmeanBySpeed, string pmaxBySpeed,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]