[chronojump] DB: 2.05 preferences: forceSensorStartEndOptimized, gui and sent to R
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] DB: 2.05 preferences: forceSensorStartEndOptimized, gui and sent to R
- Date: Fri, 20 Nov 2020 18:03:56 +0000 (UTC)
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]