[chronojump] DB: 2.05 preferences: forceSensorStartEndOptimized, gui and sent to R



commit 606ee6df784d9f162d109c53c7f57e60acd09582
Author: Xavier de Blas <xaviblas gmail com>
Date:   Fri Nov 20 19:03:39 2020 +0100

    DB: 2.05 preferences: forceSensorStartEndOptimized, gui and sent to R

 glade/app1.glade                   | 134 +++++++++++++++++++++++++++++++------
 src/forceSensor.cs                 |   6 +-
 src/gui/app1/forceSensor.cs        |   2 +-
 src/gui/app1/forceSensorAnalyze.cs |  29 +++++++-
 src/preferences.cs                 |   1 +
 src/sqlite/main.cs                 |  11 ++-
 src/sqlite/preferences.cs          |   5 +-
 7 files changed, 160 insertions(+), 28 deletions(-)
---
diff --git a/glade/app1.glade b/glade/app1.glade
index 70e3e1c7..8d898044 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -23199,6 +23199,12 @@ Concentric</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
@@ -23548,18 +23554,77 @@ Concentric</property>
                                                             <property name="label_xalign">0.5</property>
                                                             <property name="shadow_type">in</property>
                                                             <child>
+                                                            <widget class="GtkVBox" id="vbox121">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <child>
                                                             <widget class="GtkAlignment" id="alignment40">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="left_padding">12</property>
                                                             <child>
-                                                            <widget class="GtkVBox" id="vbox122">
+                                                            <widget class="GtkNotebook" id="notebook3">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="border_width">16</property>
+                                                            <child>
+                                                            <widget class="GtkVBox" id="vbox189">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="border_width">16</property>
                                                             <property name="spacing">16</property>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox240">
+                                                            <widget class="GtkHBox" id="hbox339">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">12</property>
+                                                            <child>
+                                                            <widget class="GtkRadioButton" 
id="radio_force_rfd_search_optimized_ab">
+                                                            <property name="label" translatable="yes">Search 
best start/end inside AB range</property>
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="active">True</property>
+                                                            <property name="draw_indicator">True</property>
+                                                            <signal name="toggled" 
handler="on_radio_force_rfd_search_optimized_ab_toggled" swapped="no"/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkRadioButton" 
id="radio_force_rfd_use_ab_range">
+                                                            <property name="label" 
translatable="yes">Strictly use A for start and B for end</property>
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="active">True</property>
+                                                            <property name="draw_indicator">True</property>
+                                                            <property 
name="group">radio_force_rfd_search_optimized_ab</property>
+                                                            <signal name="toggled" 
handler="on_radio_force_rfd_use_ab_range_toggled" swapped="no"/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkAlignment" id="alignment46">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="left_padding">20</property>
+                                                            <child>
+                                                            <widget class="GtkVBox" 
id="vbox_force_rfd_duration_end">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">12</property>
@@ -23568,7 +23633,8 @@ Concentric</property>
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="tooltip" 
translatable="yes">Length of analysis:</property>
-                                                            <property name="label" 
translatable="yes">Length:</property>
+                                                            <property name="xalign">0</property>
+                                                            <property name="label" 
translatable="yes">Duration:</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
@@ -23577,6 +23643,11 @@ Concentric</property>
                                                             </packing>
                                                             </child>
                                                             <child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_rfd_duration_end">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">12</property>
+                                                            <child>
                                                             <widget class="GtkHBox" id="hbox241">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
@@ -23623,6 +23694,13 @@ Concentric</property>
                                                             <packing>
                                                             <property name="expand">False</property>
                                                             <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">1</property>
                                                             </packing>
                                                             </child>
@@ -23701,28 +23779,32 @@ Concentric</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
+                                                            </child>
+                                                            </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
                                                             <property name="fill">False</property>
-                                                            <property name="position">0</property>
+                                                            <property name="position">1</property>
                                                             </packing>
                                                             </child>
+                                                            </widget>
+                                                            </child>
                                                             <child>
-                                                            <widget class="GtkFrame" id="frame12">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="label_xalign">0</property>
-                                                            <property name="shadow_type">in</property>
-                                                            <child>
-                                                            <widget class="GtkAlignment" id="alignment46">
+                                                            <widget class="GtkLabel" id="label357">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="left_padding">12</property>
+                                                            <property name="label" translatable="yes">Start 
and duration</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="tab_fill">False</property>
+                                                            <property name="type">tab</property>
+                                                            </packing>
+                                                            </child>
                                                             <child>
-                                                            <widget class="GtkVBox" id="vbox121">
+                                                            <widget class="GtkVBox" id="vbox122">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="border_width">8</property>
+                                                            <property name="border_width">16</property>
                                                             <property name="spacing">10</property>
                                                             <child>
                                                             <widget class="GtkHBox" id="hbox33">
@@ -25178,31 +25260,33 @@ Concentric</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
-                                                            </child>
-                                                            </widget>
+                                                            <packing>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label339">
+                                                            <widget class="GtkLabel" id="label397">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="label" translatable="yes">RFD 
calculation</property>
-                                                            <property name="use_markup">True</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="type">label_item</property>
+                                                            <property name="position">1</property>
+                                                            <property name="tab_fill">False</property>
+                                                            <property name="type">tab</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
+                                                            </child>
+                                                            </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
                                                             <property name="fill">False</property>
-                                                            <property name="position">1</property>
+                                                            <property name="position">0</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
                                                             </child>
-                                                            </widget>
-                                                            </child>
                                                             <child>
                                                             <widget class="GtkHBox" id="hbox251">
                                                             <property name="visible">True</property>
@@ -36123,6 +36207,12 @@ then click this button.</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
diff --git a/src/forceSensor.cs b/src/forceSensor.cs
index ab48168f..d476adc6 100644
--- a/src/forceSensor.cs
+++ b/src/forceSensor.cs
@@ -1360,11 +1360,12 @@ public class ForceSensorGraph
        private TriggerList triggerList;
        private int startSample;
        private int endSample;
+       private bool startEndOptimized;
 
        public ForceSensorGraph(ForceSensor.CaptureOptions fsco, List<ForceSensorRFD> rfdList,
                        ForceSensorImpulse impulse, int testLength, int percentChange,
                        string title, string exercise, string datetime, TriggerList triggerList,
-                       int startSample, int endSample)
+                       int startSample, int endSample, bool startEndOptimized)
        {
                this.fsco = fsco;
                this.rfdList = rfdList;
@@ -1377,6 +1378,7 @@ public class ForceSensorGraph
                this.triggerList = triggerList;
                this.startSample = startSample;
                this.endSample = endSample;
+               this.startEndOptimized = startEndOptimized;
 
                averageLength = 0.1;
                vlineT0 = false;
@@ -1438,7 +1440,7 @@ public class ForceSensorGraph
                        printTriggers(TriggerList.Type3.OFF) + "\n" +
                        "#startSample\n" +              startSample.ToString() + "\n" +
                        "#endSample\n" +                endSample.ToString() + "\n" +
-                       "#startEndOptimized\n" +        "TRUE" + "\n";
+                       "#startEndOptimized\n" +        Util.BoolToRBool(startEndOptimized) + "\n";
 
                /*
                #startEndOptimized on gui can be:
diff --git a/src/gui/app1/forceSensor.cs b/src/gui/app1/forceSensor.cs
index 4937aafd..7092c416 100644
--- a/src/gui/app1/forceSensor.cs
+++ b/src/gui/app1/forceSensor.cs
@@ -2087,7 +2087,7 @@ LogB.Information(" fs R ");
                ForceSensorGraph fsg = new ForceSensorGraph(getForceSensorCaptureOptions(), rfdList, impulse,
                                duration, Convert.ToInt32(spin_force_rfd_duration_percent.Value),
                                title, exercise, currentForceSensor.DateTimePublic, triggerListForceSensor,
-                               sampleA, sampleB
+                               sampleA, sampleB, preferences.forceSensorStartEndOptimized
                                );
 
                int imageWidth = UtilGtk.WidgetWidth(viewport_force_sensor_graph);
diff --git a/src/gui/app1/forceSensorAnalyze.cs b/src/gui/app1/forceSensorAnalyze.cs
index 560106c6..e60c6b69 100644
--- a/src/gui/app1/forceSensorAnalyze.cs
+++ b/src/gui/app1/forceSensorAnalyze.cs
@@ -45,6 +45,8 @@ public partial class ChronoJumpWindow
 
        [Widget] Gtk.Button button_force_sensor_analyze_back_to_signal;
 
+       [Widget] Gtk.RadioButton radio_force_rfd_search_optimized_ab;
+       [Widget] Gtk.RadioButton radio_force_rfd_use_ab_range;
        [Widget] Gtk.SpinButton spin_force_duration_seconds;
        [Widget] Gtk.RadioButton radio_force_duration_seconds;
        [Widget] Gtk.HBox hbox_force_rfd_duration_percent;
@@ -55,6 +57,7 @@ public partial class ChronoJumpWindow
        [Widget] Gtk.Notebook notebook_force_sensor_analyze; //decide between automatic and manual
 //     [Widget] Gtk.HBox hbox_force_sensor_analyze_automatic_options;
 //     [Widget] Gtk.Notebook notebook_force_analyze_automatic;
+       [Widget] Gtk.VBox vbox_force_rfd_duration_end;
        [Widget] Gtk.Button button_force_sensor_analyze_options;
        [Widget] Gtk.HBox hbox_force_1;
        [Widget] Gtk.HBox hbox_force_2;
@@ -201,6 +204,13 @@ public partial class ChronoJumpWindow
                        impulse = newImpulse;
                }
 
+               if(preferences.forceSensorStartEndOptimized != radio_force_rfd_search_optimized_ab.Active)
+               {
+                       preferences.forceSensorStartEndOptimized = radio_force_rfd_search_optimized_ab.Active;
+                       SqlitePreferences.Update(SqlitePreferences.ForceSensorStartEndOptimized,
+                                       radio_force_rfd_search_optimized_ab.Active.ToString(), true);
+               }
+
                if(preferences.forceSensorMIFDurationMode == Preferences.ForceSensorMIFDurationModes.SECONDS 
&&
                                radio_force_rfd_duration_percent.Active)
                {
@@ -265,6 +275,15 @@ public partial class ChronoJumpWindow
                button_force_sensor_analyze_back_to_signal.Sensitive = false;
        }
 
+       private void on_radio_force_rfd_search_optimized_ab_toggled (object o, EventArgs args)
+       {
+               vbox_force_rfd_duration_end.Sensitive = true;
+       }
+       private void on_radio_force_rfd_use_ab_range_toggled (object o, EventArgs args)
+       {
+               vbox_force_rfd_duration_end.Sensitive = false;
+       }
+
        private void check_force_visibilities()
        {
                hbox_force_1.Visible = (check_force_1.Active);
@@ -376,7 +395,15 @@ public partial class ChronoJumpWindow
 
        private void setForceDurationRadios()
        {
-               //TODO: assignar aquĆ­ lo que hi hagi de les preferencies: del radio actiu is els dos 
spinbuttons
+               if(preferences.forceSensorStartEndOptimized)
+               {
+                       radio_force_rfd_search_optimized_ab.Active = true;
+                       vbox_force_rfd_duration_end.Sensitive = true;
+               } else {
+                       radio_force_rfd_use_ab_range.Active = true;
+                       vbox_force_rfd_duration_end.Sensitive = false;
+               }
+
                if(preferences.forceSensorMIFDurationMode == Preferences.ForceSensorMIFDurationModes.SECONDS)
                        radio_force_duration_seconds.Active = true;
                else //(preferences.forceSensorMIFDurationMode == 
Preferences.ForceSensorMIFDurationModes.PERCENT)
diff --git a/src/preferences.cs b/src/preferences.cs
index a3a7a633..a386fdbe 100644
--- a/src/preferences.cs
+++ b/src/preferences.cs
@@ -231,6 +231,7 @@ public class Preferences
        public bool forceSensorCaptureFeedbackActive;
        public int forceSensorCaptureFeedbackAt;
        public int forceSensorCaptureFeedbackRange;
+       public bool forceSensorStartEndOptimized;
        public enum ForceSensorMIFDurationModes { SECONDS, PERCENT };
        public ForceSensorMIFDurationModes forceSensorMIFDurationMode;
        public double forceSensorMIFDurationSeconds;
diff --git a/src/sqlite/main.cs b/src/sqlite/main.cs
index 902bee41..45102e9f 100644
--- a/src/sqlite/main.cs
+++ b/src/sqlite/main.cs
@@ -129,7 +129,7 @@ class Sqlite
        /*
         * Important, change this if there's any update to database
         */
-       static string lastChronojumpDatabaseVersion = "2.04";
+       static string lastChronojumpDatabaseVersion = "2.05";
 
        public Sqlite()
        {
@@ -2810,6 +2810,14 @@ class Sqlite
 
                                currentVersion = updateVersion("2.04");
                        }
+                       if(currentVersion == "2.04")
+                       {
+                               LogB.SQL("Inserted into preferences: forceSensorStartEndOptimized");
+                               SqlitePreferences.Insert (SqlitePreferences.ForceSensorStartEndOptimized,
+                                               "True");
+
+                               currentVersion = updateVersion("2.05");
+                       }
 
                        /*
                        if(currentVersion == "1.79")
@@ -3027,6 +3035,7 @@ class Sqlite
 //just testing: 1.79 - 1.80 Converted DB to 1.80 Created table ForceSensorElasticBandGlue and moved 
stiffnessString records there
 
 
+               //2.04 - 2.05 Converted DB to 2.05 Inserted into preferences: forceSensorStartEndOptimized
                //2.03 - 2.04 Converted DB to 2.04 Created tables: tagSession, sessionTagSession
                //2.02 - 2.03 Converted DB to 2.03 Inserted into preferences: encoderInertialGraphsX
                //2.01 - 2.02 Converted DB to 2.02 Inserted into preferences: restTimeMinutes, 
restTimeSeconds")
diff --git a/src/sqlite/preferences.cs b/src/sqlite/preferences.cs
index 58263c38..556497f6 100644
--- a/src/sqlite/preferences.cs
+++ b/src/sqlite/preferences.cs
@@ -90,6 +90,7 @@ class SqlitePreferences : Sqlite
        public const string ForceSensorCaptureFeedbackActive = "forceSensorCaptureFeedbackActive";
        public const string ForceSensorCaptureFeedbackAt = "forceSensorCaptureFeedbackAt";
        public const string ForceSensorCaptureFeedbackRange = "forceSensorCaptureFeedbackRange";
+       public const string ForceSensorStartEndOptimized = "forceSensorStartEndOptimized";
        public const string ForceSensorMIFDurationMode = "forceSensorMIFDurationMode";
        public const string ForceSensorMIFDurationSeconds = "forceSensorMIFDurationSeconds";
        public const string ForceSensorMIFDurationPercent = "forceSensorMIFDurationPercent";
@@ -273,6 +274,7 @@ class SqlitePreferences : Sqlite
                                Insert (ForceSensorCalibrationDateTimeStr, "", dbcmdTr);
                                Insert (ForceSensorCalibrationWeightStr, "-1", dbcmdTr);
                                Insert (ForceSensorCalibrationFactorStr, "-1", dbcmdTr); //result value from 
sensor. Decimal is point!!
+                               Insert (ForceSensorStartEndOptimized, "True", dbcmdTr);
                                Insert (ForceSensorMIFDurationMode, 
Preferences.ForceSensorMIFDurationModes.SECONDS.ToString(), dbcmdTr);
                                Insert (ForceSensorMIFDurationSeconds, "2", dbcmdTr);
                                Insert (ForceSensorMIFDurationPercent, "5", dbcmdTr);
@@ -669,8 +671,9 @@ class SqlitePreferences : Sqlite
                        else if(reader[0].ToString() == ForceSensorCalibrationFactorStr)
                                preferences.forceSensorCalibrationFactor = Convert.ToDouble(
                                                Util.ChangeDecimalSeparator(reader[1].ToString()));
-
                        //force sensor MIF
+                       else if(reader[0].ToString() == ForceSensorStartEndOptimized)
+                               preferences.forceSensorStartEndOptimized = reader[1].ToString() == "True";
                        else if(reader[0].ToString() == ForceSensorMIFDurationMode)
                                preferences.forceSensorMIFDurationMode = 
(Preferences.ForceSensorMIFDurationModes)
                                        Enum.Parse(typeof(Preferences.ForceSensorMIFDurationModes), 
reader[1].ToString());


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