[chronojump] db 1.43: Added exercise params of last capture for next Chronojump start
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] db 1.43: Added exercise params of last capture for next Chronojump start
- Date: Tue, 25 Apr 2017 13:55:39 +0000 (UTC)
commit 53b041b129e22072cd72bb5f284ecff888ae8bee
Author: Xavier de Blas <xaviblas gmail com>
Date: Tue Apr 25 15:49:37 2017 +0200
db 1.43: Added exercise params of last capture for next Chronojump start
src/gui/chronojump.cs | 6 ++
src/gui/encoder.cs | 116 ++++++++++++++++++++++++++++++++++++++++++--
src/sqlite/main.cs | 36 ++++++++++++++-
src/sqlite/preferences.cs | 30 ++++++++++++
4 files changed, 181 insertions(+), 7 deletions(-)
---
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index a896981..922978f 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -2987,6 +2987,12 @@ public partial class ChronoJumpWindow
if(changed) {
prepareAnalyzeRepetitions ();
}
+
+ if(! encoderPreferencesSet)
+ {
+ setEncoderExerciseOptionsFromPreferences();
+ encoderPreferencesSet = true;
+ }
}
else if(m == Constants.Menuitem_modes.FORCESENSOR)
{
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index ac9d936..32399b6 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -286,6 +286,8 @@ public partial class ChronoJumpWindow
Thread encoderThreadBG;
+ bool encoderPreferencesSet = false;
+
int image_encoder_width;
int image_encoder_height;
@@ -418,13 +420,15 @@ public partial class ChronoJumpWindow
//treeview_encoder_capture_curves.CursorChanged +=
on_treeview_encoder_capture_curves_cursor_changed;
//changed, now unselectable because there are the checkboxes
+ array1RM = new ArrayList();
+
createEncoderCombos();
encoderConfigurationGUIUpdate();
//on start it's concentric and powerbars. Eccon-together should be unsensitive
check_encoder_analyze_eccon_together.Sensitive = false;
-
+
//spin_encoder_capture_inertial.Value = Convert.ToDouble(Util.ChangeDecimalSeparator(
// SqlitePreferences.Select("inertialmomentum")));
@@ -447,8 +451,6 @@ public partial class ChronoJumpWindow
//configInit();
- array1RM = new ArrayList();
-
//triggers
triggerList = new TriggerList();
showTriggerTab(false);
@@ -671,10 +673,108 @@ public partial class ChronoJumpWindow
notebook_encoder_capture_or_exercise_or_instructions.Page = 2;
}
+ private void setEncoderExerciseOptionsFromPreferences()
+ {
+ Sqlite.Open();
+
+ //1. exercise
+ string exerciseID = "";
+ if(currentEncoderGI == Constants.EncoderGI.GRAVITATORY)
+ exerciseID = SqlitePreferences.Select(SqlitePreferences.EncoderExerciseIDGravitatory,
true);
+ else
+ exerciseID = SqlitePreferences.Select(SqlitePreferences.EncoderExerciseIDInertial,
true);
+
+ string exerciseNameTranslated = Util.FindOnArray(':', 0, 2, exerciseID.ToString(),
+ encoderExercisesTranslationAndBodyPWeight);
+
+ combo_encoder_exercise_capture.Active = UtilGtk.ComboMakeActive(
+ combo_encoder_exercise_capture, exerciseNameTranslated);
+
+ //2 contraction
+ string contraction = "";
+ if(currentEncoderGI == Constants.EncoderGI.GRAVITATORY)
+ contraction =
SqlitePreferences.Select(SqlitePreferences.EncoderContractionGravitatory, true);
+ else
+ contraction = SqlitePreferences.Select(SqlitePreferences.EncoderContractionInertial,
true);
+
+ string contractionTranslated = Util.FindOnArray(':',0,1, contraction,
+ encoderEcconTranslation);
+ combo_encoder_eccon.Active = UtilGtk.ComboMakeActive(
+ combo_encoder_eccon, contractionTranslated);
+
+ //3 laterality
+ string laterality = "";
+ if(currentEncoderGI == Constants.EncoderGI.GRAVITATORY)
+ laterality = SqlitePreferences.Select(SqlitePreferences.EncoderLateralityGravitatory,
true);
+ else
+ laterality = SqlitePreferences.Select(SqlitePreferences.EncoderLateralityInertial,
true);
+
+ string lateralityTranslated = Util.FindOnArray(':',0,1, laterality,
+ encoderLateralityTranslation);
+ combo_encoder_laterality.Active = UtilGtk.ComboMakeActive(
+ combo_encoder_laterality, lateralityTranslated);
+
+ //4 mass / weights
+ string mass = SqlitePreferences.Select(SqlitePreferences.EncoderMassGravitatory, true);
+ entry_raspberry_extra_weight.Text = mass;
+
+ string weights = SqlitePreferences.Select(SqlitePreferences.EncoderWeightsInertial, true);
+ entry_encoder_im_weights_n.Text = weights;
+
+
+ Sqlite.Close();
+ }
+
+ private void saveEncoderExerciseOptionsToPreferences()
+ {
+ //store execution params on SQL for next Chronojump start
+ Sqlite.Open();
+
+ //1 exercise
+ int exerciseID = getExerciseIDFromCombo (exerciseCombos.CAPTURE);
+ if(currentEncoderGI == Constants.EncoderGI.GRAVITATORY)
+ SqlitePreferences.Update (SqlitePreferences.EncoderExerciseIDGravitatory,
exerciseID.ToString(), true);
+ else
+ SqlitePreferences.Update (SqlitePreferences.EncoderExerciseIDInertial,
exerciseID.ToString(), true);
+
+ //2 contraction
+ string eccon = Util.FindOnArray(':',1,0,
+ UtilGtk.ComboGetActive(combo_encoder_eccon),
+ encoderEcconTranslation);
+ if(currentEncoderGI == Constants.EncoderGI.GRAVITATORY)
+ SqlitePreferences.Update (SqlitePreferences.EncoderContractionGravitatory, eccon,
true);
+ else
+ SqlitePreferences.Update (SqlitePreferences.EncoderContractionInertial, eccon, true);
+
+ //3 laterality
+ string laterality = Util.FindOnArray(':',1,0,
+ UtilGtk.ComboGetActive(combo_encoder_laterality),
+ encoderLateralityTranslation);
+ if(currentEncoderGI == Constants.EncoderGI.GRAVITATORY)
+ SqlitePreferences.Update (SqlitePreferences.EncoderLateralityGravitatory, laterality,
true);
+ else
+ SqlitePreferences.Update (SqlitePreferences.EncoderLateralityInertial, laterality,
true);
+
+ //4 mass / weights
+ if(currentEncoderGI == Constants.EncoderGI.GRAVITATORY)
+ SqlitePreferences.Update (SqlitePreferences.EncoderMassGravitatory,
+ Util.ConvertToPoint(findMass(Constants.MassType.EXTRA)), //when save
on sql, do not include person weight
+ true);
+ else
+ SqlitePreferences.Update (SqlitePreferences.EncoderWeightsInertial,
+ spin_encoder_im_weights_n.Value.ToString(),
+ true);
+
+ Sqlite.Close();
+
+ }
+
double maxPowerIntersessionOnCapture;
//called from main GUI
void on_button_encoder_capture_clicked (object o, EventArgs args)
{
+ saveEncoderExerciseOptionsToPreferences();
+
on_button_encoder_capture_clicked_do (true);
}
@@ -846,9 +946,10 @@ public partial class ChronoJumpWindow
//array1RM variable is not local because we need to perform calculations at each change on
displaced_weight
void array1RMUpdate (bool returnPersonNameAndExerciseName)
{
- array1RM = SqliteEncoder.Select1RM(
- false, currentPerson.UniqueID, -1, //-1: currentSession = all sessions
- getExerciseIDFromCombo(exerciseCombos.CAPTURE),
returnPersonNameAndExerciseName);
+ if(currentPerson != null)
+ array1RM = SqliteEncoder.Select1RM(
+ false, currentPerson.UniqueID, -1, //-1: currentSession = all sessions
+ getExerciseIDFromCombo(exerciseCombos.CAPTURE),
returnPersonNameAndExerciseName);
}
void on_button_encoder_1RM_win_clicked (object o, EventArgs args)
@@ -3088,6 +3189,9 @@ public partial class ChronoJumpWindow
//BODY and EXTRA are at EncoderParams and sent to graph.R
private double findMass(Constants.MassType massType)
{
+ if(currentPersonSession == null)
+ return 0;
+
double extraWeight = spin_encoder_extra_weight.Value;
if(encoderConfigurationCurrent.has_inertia)
extraWeight = 0;
diff --git a/src/sqlite/main.cs b/src/sqlite/main.cs
index 755a3fd..0877c99 100644
--- a/src/sqlite/main.cs
+++ b/src/sqlite/main.cs
@@ -125,7 +125,7 @@ class Sqlite
/*
* Important, change this if there's any update to database
*/
- static string lastChronojumpDatabaseVersion = "1.42";
+ static string lastChronojumpDatabaseVersion = "1.43";
public Sqlite() {
}
@@ -2178,6 +2178,39 @@ class Sqlite
currentVersion = updateVersion("1.42");
}
+ if(currentVersion == "1.42")
+ {
+ LogB.SQL("Added exercise params of last capture for next Chronojump start");
+
+ //1 exercise
+ ArrayList encoderExercises =
+ SqliteEncoder.SelectEncoderExercises(true, -1, true);
+
+ if(encoderExercises.Count > 0) {
+ EncoderExercise ex = (EncoderExercise) encoderExercises[0];
+
SqlitePreferences.Insert(SqlitePreferences.EncoderExerciseIDGravitatory, ex.uniqueID.ToString());
+ SqlitePreferences.Insert(SqlitePreferences.EncoderExerciseIDInertial,
ex.uniqueID.ToString());
+ }
+ else {
+ SqlitePreferences.Insert
(SqlitePreferences.EncoderExerciseIDGravitatory, "1");
+ SqlitePreferences.Insert
(SqlitePreferences.EncoderExerciseIDInertial, "1");
+ }
+
+ //2 contraction
+ SqlitePreferences.Insert (SqlitePreferences.EncoderContractionGravitatory,
Constants.Concentric);
+ SqlitePreferences.Insert (SqlitePreferences.EncoderContractionInertial,
Constants.EccentricConcentric);
+
+ //3 laterality
+ SqlitePreferences.Insert (SqlitePreferences.EncoderLateralityGravitatory,
"RL");
+ SqlitePreferences.Insert (SqlitePreferences.EncoderLateralityInertial, "RL");
+
+ //4 mass/weights
+ SqlitePreferences.Insert (SqlitePreferences.EncoderMassGravitatory, "10");
+ SqlitePreferences.Insert (SqlitePreferences.EncoderWeightsInertial, "0");
+
+ currentVersion = updateVersion("1.43");
+ }
+
// --- add more updates here
@@ -2358,6 +2391,7 @@ class Sqlite
SqliteForceSensor.InsertDefaultValues(true);
//changes [from - to - desc]
+ //1.42 - 1.43 Converted DB to 1.43 Added exercise params of last capture for next Chronojump
start
//1.41 - 1.42 Converted DB to 1.42 Created and default values for ForceSensorRFD
//1.40 - 1.41 Converted DB to 1.41 Updated preferences maximized: from true/false to
no/yes/undecorated
//1.39 - 1.40 Converted DB to 1.40 Added to preferences: maximized, personWinHide,
encoderCaptureShowOnlyBars
diff --git a/src/sqlite/preferences.cs b/src/sqlite/preferences.cs
index 7e52543..0ed21af 100644
--- a/src/sqlite/preferences.cs
+++ b/src/sqlite/preferences.cs
@@ -22,10 +22,20 @@ using System;
using System.Data;
using System.IO;
using Mono.Data.Sqlite;
+using System.Collections; //ArrayList
class SqlitePreferences : Sqlite
{
+ public const string EncoderExerciseIDGravitatory = "encoderExerciseIDGravitatory";
+ public const string EncoderExerciseIDInertial = "encoderExerciseIDInertial";
+ public const string EncoderContractionGravitatory = "encoderContractionGravitatory";
+ public const string EncoderContractionInertial = "encoderContractionInertial";
+ public const string EncoderLateralityGravitatory = "encoderLateralityGravitatory";
+ public const string EncoderLateralityInertial = "encoderLateralityInertial";
+ public const string EncoderMassGravitatory = "encoderMassGravitatory";
+ public const string EncoderWeightsInertial = "encoderWeightsInertial";
+
protected internal static new void createTable()
{
dbcmd.CommandText =
@@ -105,6 +115,26 @@ class SqlitePreferences : Sqlite
Insert ("encoderSmoothCon", "0.7", dbcmdTr);
Insert ("encoder1RMMethod", Constants.Encoder1RMMethod.WEIGHTED2.ToString(),
dbcmdTr);
+ ArrayList encoderExercises =
+ SqliteEncoder.SelectEncoderExercises(true, -1, true);
+
+ if(encoderExercises.Count > 0) {
+ EncoderExercise ex = (EncoderExercise) encoderExercises[0];
+ Insert (EncoderExerciseIDGravitatory, ex.uniqueID.ToString());
+ Insert (EncoderExerciseIDInertial, ex.uniqueID.ToString());
+ }
+ else {
+ Insert (EncoderExerciseIDGravitatory, "1");
+ Insert (EncoderExerciseIDInertial, "1");
+ }
+
+ Insert (EncoderContractionGravitatory, Constants.Concentric);
+ Insert (EncoderContractionInertial, Constants.EccentricConcentric);
+ Insert (EncoderLateralityGravitatory, "RL");
+ Insert (EncoderLateralityInertial, "RL");
+ Insert (EncoderMassGravitatory, "10");
+ Insert (EncoderWeightsInertial, "0");
+
Insert ("videoDevice", "0", dbcmdTr); //first
Insert ("inertialmomentum", "0.01", dbcmdTr);
Insert ("CSVExportDecimalSeparator", Util.GetDecimalSeparatorFromLocale(),
dbcmdTr);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]