[chronojump] DB: 1.28. Select "Best" is not always meanpower now. Can be changed on capture options win



commit 1917fc19a20a0a6807f742b59f2f066bf69c7de2
Author: Xavier de Blas <xaviblas gmail com>
Date:   Thu Mar 10 13:17:28 2016 +0100

    DB: 1.28. Select "Best" is not always meanpower now. Can be changed on capture options win

 src/constants.cs            |   14 ++++++------
 src/encoder.cs              |   45 +++++++++++++++++++++++++++++++++++-------
 src/gui/encoder.cs          |   11 +++++----
 src/gui/encoderTreeviews.cs |   12 +++++-----
 src/gui/preferences.cs      |   12 +++++-----
 src/sqlite/main.cs          |   13 ++++++++++-
 src/sqlite/preferences.cs   |    2 +-
 7 files changed, 74 insertions(+), 35 deletions(-)
---
diff --git a/src/constants.cs b/src/constants.cs
index 2984146..80f94d6 100644
--- a/src/constants.cs
+++ b/src/constants.cs
@@ -802,17 +802,17 @@ public class Constants
                LINEAR, ROTARYFRICTION, ROTARYAXIS
        }       
 
-       public static string MeanSpeed = "Mean speed";
-       public static string MaxSpeed = "Max speed";
-       public static string MeanForce = "Mean force";
-       public static string MaxForce = "Max force";
-       public static string MeanPower = "Mean power";
-       public static string PeakPower = "Peak power";
+       public const string MeanSpeed = "Mean speed";
+       public const string MaxSpeed = "Max speed";
+       public const string MeanForce = "Mean force";
+       public const string MaxForce = "Max force";
+       public const string MeanPower = "Mean power";
+       public const string PeakPower = "Peak power";
                
        public enum Encoder1RMMethod { NONWEIGHTED, WEIGHTED, WEIGHTED2, WEIGHTED3 }
        public enum ContextMenu { NONE, EDITDELETE, DELETE }
        
-       public enum EncoderAutoSaveCurve { ALL, NONE, BESTMEANPOWER }
+       public enum EncoderAutoSaveCurve { ALL, NONE, BEST }
 
        public enum DoubleContact {
                NONE, FIRST, AVERAGE, LAST
diff --git a/src/encoder.cs b/src/encoder.cs
index 7ee851e..9077e77 100644
--- a/src/encoder.cs
+++ b/src/encoder.cs
@@ -331,6 +331,31 @@ public class EncoderCurve
                return false;
        }
 
+       public double GetParameter(string parameter) {
+               switch(parameter) {
+                       case Constants.MeanSpeed:
+                               return Convert.ToDouble(MeanSpeed);
+                               break;
+                       case Constants.MaxSpeed:
+                               return Convert.ToDouble(MaxSpeed);
+                               break;
+                       case Constants.MeanForce:
+                               return Convert.ToDouble(MeanForce);
+                               break;
+                       case Constants.MaxForce:
+                               return Convert.ToDouble(MaxForce);
+                               break;
+                       case Constants.MeanPower:
+                               return Convert.ToDouble(MeanPower);
+                               break;
+                       case Constants.PeakPower:
+                               return Convert.ToDouble(PeakPower);
+                               break;
+                       default:
+                               return Convert.ToDouble(MeanPower);
+                               break;
+               }
+       }
 
        public string ToCSV(bool captureOrAnalyze, string decimalSeparator) {
 
@@ -376,18 +401,22 @@ public class EncoderSignal
        }
 
        //this can be an eccentric or concentric curve
-       public int FindPosOfBestMeanPower() {
-               double bestMeanPower = 0;
-               int bestMeanPowerPos = 0;
+       public int FindPosOfBest(string variable) {
+               //TODO: change for the rest of stuff
+               double bestValue = 0;
+               int bestValuePos = 0;
                int i = 0;
-               foreach(EncoderCurve curve in curves) {
-                       if(Convert.ToDouble(curve.MeanPower) > bestMeanPower) {
-                               bestMeanPower = Convert.ToDouble(curve.MeanPower);
-                               bestMeanPowerPos = i;
+               
+               foreach(EncoderCurve curve in curves) 
+               {
+                       if(curve.GetParameter(variable) > bestValue) {
+                               bestValue = curve.GetParameter(variable);
+                               bestValuePos = i;
                        }
+
                        i++;
                }
-               return bestMeanPowerPos;
+               return bestValuePos;
        }
        
        ~EncoderSignal() {}
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index 433e4a5..b0ed4e7 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -3646,13 +3646,13 @@ public partial class ChronoJumpWindow
        }
 
        void on_button_encoder_capture_curves_all_clicked (object o, EventArgs args) {
-               encoderCaptureSaveCurvesAllNoneBest(Constants.EncoderAutoSaveCurve.ALL);
+               encoderCaptureSaveCurvesAllNoneBest(Constants.EncoderAutoSaveCurve.ALL, 
encoderCaptureOptionsWin.GetMainVariable());
        }
        void on_button_encoder_capture_curves_best_clicked (object o, EventArgs args) {
-               encoderCaptureSaveCurvesAllNoneBest(Constants.EncoderAutoSaveCurve.BESTMEANPOWER);
+               encoderCaptureSaveCurvesAllNoneBest(Constants.EncoderAutoSaveCurve.BEST, 
encoderCaptureOptionsWin.GetMainVariable());
        }
        void on_button_encoder_capture_curves_none_clicked (object o, EventArgs args) {
-               encoderCaptureSaveCurvesAllNoneBest(Constants.EncoderAutoSaveCurve.NONE);
+               encoderCaptureSaveCurvesAllNoneBest(Constants.EncoderAutoSaveCurve.NONE, 
encoderCaptureOptionsWin.GetMainVariable());
        }
 
        void on_combo_encoder_analyze_data_compare_changed (object o, EventArgs args)
@@ -5676,13 +5676,14 @@ public partial class ChronoJumpWindow
                                        if(
                                                        encoderSignalUniqueID == "-1" &&        //if we just 
captured
                                                        (preferences.encoderAutoSaveCurve == 
Constants.EncoderAutoSaveCurve.ALL ||
-                                                       preferences.encoderAutoSaveCurve == 
Constants.EncoderAutoSaveCurve.BESTMEANPOWER) )
+                                                       preferences.encoderAutoSaveCurve == 
Constants.EncoderAutoSaveCurve.BEST) )
                                                needToAutoSaveCurve = true;
 
                                        encoder_pulsebar_capture.Text = encoderSaveSignalOrCurve(false, 
"signal", 0); //this updates encoderSignalUniqueID
 
                                        if(needToAutoSaveCurve)
-                                               
encoderCaptureSaveCurvesAllNoneBest(preferences.encoderAutoSaveCurve);
+                                               encoderCaptureSaveCurvesAllNoneBest(
+                                                               preferences.encoderAutoSaveCurve, 
encoderCaptureOptionsWin.GetMainVariable());
 
                                } else
                                        encoder_pulsebar_capture.Text = "";
diff --git a/src/gui/encoderTreeviews.cs b/src/gui/encoderTreeviews.cs
index e248339..e4a98d6 100644
--- a/src/gui/encoderTreeviews.cs
+++ b/src/gui/encoderTreeviews.cs
@@ -329,14 +329,14 @@ public partial class ChronoJumpWindow
                }
        }
 
-       //allNone: true (save all), false (unsave all)
-       void encoderCaptureSaveCurvesAllNoneBest(Constants.EncoderAutoSaveCurve saveOption)
+       //mainVariable used if saveOption == BEST
+       void encoderCaptureSaveCurvesAllNoneBest(Constants.EncoderAutoSaveCurve saveOption, string 
mainVariable)
        {
                int bestRow = 0;
-               if(saveOption == Constants.EncoderAutoSaveCurve.BESTMEANPOWER) {
+               if(saveOption == Constants.EncoderAutoSaveCurve.BEST) {
                        //get the concentric curves
                        EncoderSignal encoderSignal = new 
EncoderSignal(treeviewEncoderCaptureCurvesGetCurves(AllEccCon.CON));
-                       bestRow = encoderSignal.FindPosOfBestMeanPower();
+                       bestRow = encoderSignal.FindPosOfBest(mainVariable);
                        
                        //convert from c to ec. eg.
                        //three concentric curves: c[0], c[1], c[2]
@@ -368,8 +368,8 @@ public partial class ChronoJumpWindow
                        EncoderCurve curve = (EncoderCurve) encoderCaptureListStore.GetValue (iter, 0);
                        if(
                                        (! curve.Record && saveOption == Constants.EncoderAutoSaveCurve.ALL) 
||
-                                       (! curve.Record && saveOption == 
Constants.EncoderAutoSaveCurve.BESTMEANPOWER && i == bestRow) ||
-                                       (curve.Record && saveOption == 
Constants.EncoderAutoSaveCurve.BESTMEANPOWER && i != bestRow) ||
+                                       (! curve.Record && saveOption == Constants.EncoderAutoSaveCurve.BEST 
&& i == bestRow) ||
+                                       (curve.Record && saveOption == Constants.EncoderAutoSaveCurve.BEST && 
i != bestRow) ||
                                        (curve.Record && saveOption == Constants.EncoderAutoSaveCurve.NONE) ) 
                        { 
                                changeTo = ! curve.Record;
diff --git a/src/gui/preferences.cs b/src/gui/preferences.cs
index ed45706..6e01430 100644
--- a/src/gui/preferences.cs
+++ b/src/gui/preferences.cs
@@ -97,7 +97,7 @@ public class PreferencesWindow {
        [Widget] Gtk.RadioButton radio_encoder_1RM_weighted;
        [Widget] Gtk.RadioButton radio_encoder_1RM_weighted2;
        [Widget] Gtk.RadioButton radio_encoder_1RM_weighted3;
-       [Widget] Gtk.RadioButton radio_encoder_auto_save_curve_bestmeanpower;
+       [Widget] Gtk.RadioButton radio_encoder_auto_save_curve_best;
        [Widget] Gtk.RadioButton radio_encoder_auto_save_curve_all;
        [Widget] Gtk.RadioButton radio_encoder_auto_save_curve_none;
 
@@ -306,8 +306,8 @@ public class PreferencesWindow {
                else
                        PreferencesWindowBox.radio_do_not_use_heights_on_jump_indexes.Active = true;
                        
-               if(preferences.encoderAutoSaveCurve == Constants.EncoderAutoSaveCurve.BESTMEANPOWER)
-                       PreferencesWindowBox.radio_encoder_auto_save_curve_bestmeanpower.Active = true;
+               if(preferences.encoderAutoSaveCurve == Constants.EncoderAutoSaveCurve.BEST)
+                       PreferencesWindowBox.radio_encoder_auto_save_curve_best.Active = true;
                else if(preferences.encoderAutoSaveCurve == Constants.EncoderAutoSaveCurve.ALL)
                        PreferencesWindowBox.radio_encoder_auto_save_curve_all.Active = true;
                else
@@ -1006,9 +1006,9 @@ public class PreferencesWindow {
                        preferences.useHeightsOnJumpIndexes = 
PreferencesWindowBox.radio_use_heights_on_jump_indexes.Active;
                }
 
-               if(PreferencesWindowBox.radio_encoder_auto_save_curve_bestmeanpower.Active) {
-                       SqlitePreferences.Update("encoderAutoSaveCurve", 
Constants.EncoderAutoSaveCurve.BESTMEANPOWER.ToString(), true);
-                       preferences.encoderAutoSaveCurve = Constants.EncoderAutoSaveCurve.BESTMEANPOWER;
+               if(PreferencesWindowBox.radio_encoder_auto_save_curve_best.Active) {
+                       SqlitePreferences.Update("encoderAutoSaveCurve", 
Constants.EncoderAutoSaveCurve.BEST.ToString(), true);
+                       preferences.encoderAutoSaveCurve = Constants.EncoderAutoSaveCurve.BEST;
                }
                else if(PreferencesWindowBox.radio_encoder_auto_save_curve_all.Active) {
                        SqlitePreferences.Update("encoderAutoSaveCurve", 
Constants.EncoderAutoSaveCurve.ALL.ToString(), true);
diff --git a/src/sqlite/main.cs b/src/sqlite/main.cs
index 64ce02c..01c8f03 100644
--- a/src/sqlite/main.cs
+++ b/src/sqlite/main.cs
@@ -77,7 +77,7 @@ class Sqlite
        /*
         * Important, change this if there's any update to database
         */
-       static string lastChronojumpDatabaseVersion = "1.27";
+       static string lastChronojumpDatabaseVersion = "1.28";
 
        public Sqlite() {
        }
@@ -1664,7 +1664,7 @@ class Sqlite
                        
                                LogB.SQL("Added option on autosave curves on capture 
(all/bestmeanpower/none)");
                                
-                               SqlitePreferences.Insert ("encoderAutoSaveCurve", 
Constants.EncoderAutoSaveCurve.BESTMEANPOWER.ToString()); 
+                               SqlitePreferences.Insert ("encoderAutoSaveCurve", 
Constants.EncoderAutoSaveCurve.BEST.ToString()); 
                                SqlitePreferences.Update ("databaseVersion", "1.11", true); 
                                Sqlite.Close();
 
@@ -1863,6 +1863,14 @@ class Sqlite
                                SqlitePreferences.Update ("databaseVersion", newVersion, true); 
                                currentVersion = newVersion;
                        }
+                       if(currentVersion == "1.27") {
+                               LogB.SQL("Changed encoderAutoSaveCurve BESTMEANPOWER to BEST");
+                               Update(true, Constants.PreferencesTable, "value", "BESTMEANPOWER", "BEST", 
"name", "encoderAutoSaveCurve");
+                               
+                               newVersion = "1.28";
+                               SqlitePreferences.Update ("databaseVersion", newVersion, true); 
+                               currentVersion = newVersion;
+                       }
 
 
                        // --- add more updates here
@@ -2018,6 +2026,7 @@ class Sqlite
                SqliteExecuteAuto.addChronojumpProfileAndBilateral();
                
                //changes [from - to - desc]
+               //1.27 - 1.28 Converted DB to 1.28 Changed encoderAutoSaveCurve BESTMEANPOWER to BEST
                //1.26 - 1.27 Converted DB to 1.27 Changing runDoubleContactsMS and runIDoubleContactsMS from 
1000ms to 300ms
                //1.25 - 1.26 Converted DB to 1.26 Changed Inclinated to Inclined
                //1.24 - 1.25 Converted DB to 1.25 Language defaults to (empty string), means detected
diff --git a/src/sqlite/preferences.cs b/src/sqlite/preferences.cs
index af9341a..6173030 100644
--- a/src/sqlite/preferences.cs
+++ b/src/sqlite/preferences.cs
@@ -92,7 +92,7 @@ class SqlitePreferences : Sqlite
                                Insert ("CSVExportDecimalSeparator", Util.GetDecimalSeparatorFromLocale(), 
dbcmdTr);
                                Insert ("RGraphsTranslate", "True", dbcmdTr);
                                Insert ("useHeightsOnJumpIndexes", "True", dbcmdTr);
-                               Insert ("encoderAutoSaveCurve", 
Constants.EncoderAutoSaveCurve.BESTMEANPOWER.ToString(), dbcmdTr); 
+                               Insert ("encoderAutoSaveCurve", 
Constants.EncoderAutoSaveCurve.BEST.ToString(), dbcmdTr); 
                                Insert ("email", "", dbcmdTr);
                                
                                //last encoderConfiguration, to be used on next session


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]