[chronojump] Done AutodetectPort change on main menu.
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Done AutodetectPort change on main menu.
- Date: Fri, 18 Sep 2015 14:38:47 +0000 (UTC)
commit 52dfdb878b6c305edd20e2036a2ca0b1290e8e37
Author: Xavier de Blas <xaviblas gmail com>
Date: Fri Sep 18 16:37:14 2015 +0200
Done AutodetectPort change on main menu.
chronojump_config.txt | 2 +-
glade/chronojump.glade | 70 +++++++++++++++++++++++++++++++++++++++++++++---
src/config.cs | 51 ++++++++++++++++++++++------------
src/gui/encoder.cs | 5 +++-
src/gui/networks.cs | 45 ++++++++++++++++++++++++++++++
5 files changed, 149 insertions(+), 24 deletions(-)
---
diff --git a/chronojump_config.txt b/chronojump_config.txt
index 78f85ca..69f7d4e 100644
--- a/chronojump_config.txt
+++ b/chronojump_config.txt
@@ -63,7 +63,7 @@ EncoderAnalyzeHide=FALSE
#EncoderConfiguration if exists, this will be used and cannot be changed
#name:d:D:anglePush:angleWeight:inertiaMachine:gearedDown:inertiaTotal:extraWeightN:extraWeightGrams:extraWeightLenght:list_d
-#list_d is list of anchorages in centimeters. each value separated by '_'
+#list_d is list of anchorages in centimeters. each value separated by '_' . Decimal separator is '.'
#default: EncoderConfiguration=
EncoderConfiguration=ROTARYAXISINERTIAL:4:-1:-1:-1:42:1:71:2:300:7:4_8_12
diff --git a/glade/chronojump.glade b/glade/chronojump.glade
index 852d136..7431868 100644
--- a/glade/chronojump.glade
+++ b/glade/chronojump.glade
@@ -586,6 +586,7 @@
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
+ <signal name="toggled"
handler="on_radio_autodetect_active_toggled" swapped="no"/>
<child>
<widget class="GtkHBox" id="hbox85">
<property name="visible">True</property>
@@ -666,6 +667,7 @@
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
<property name="group">radio_autodetect_active</property>
+ <signal name="toggled"
handler="on_radio_autodetect_inactive_toggled" swapped="no"/>
<child>
<widget class="GtkHBox" id="hbox190">
<property name="visible">True</property>
@@ -747,6 +749,7 @@
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
<property name="group">radio_autodetect_active</property>
+ <signal name="toggled"
handler="on_radio_autodetect_discard_first_toggled" swapped="no"/>
</widget>
<packing>
<property name="expand">True</property>
@@ -1880,7 +1883,6 @@
<widget class="GtkNotebook" id="notebook_sup">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="show_tabs">False</property>
<property name="show_border">False</property>
<property name="tab_hborder">18</property>
<property name="tab_vborder">4</property>
@@ -7916,6 +7918,9 @@ after time</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
<child>
@@ -9351,6 +9356,9 @@ after time</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="position">2</property>
@@ -10427,6 +10435,9 @@ after time</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="position">4</property>
@@ -22116,6 +22127,9 @@ by you</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -23091,6 +23105,9 @@ by you</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -24558,6 +24575,9 @@ by you</property>
<placeholder/>
</child>
<child>
+ <placeholder/>
+ </child>
+ <child>
<widget class="GtkButton" id="button_video_url">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -25082,6 +25102,9 @@ by you</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">True</property>
@@ -36834,6 +36857,24 @@ options</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -38697,6 +38738,18 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -40022,9 +40075,6 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
<placeholder/>
</child>
<child>
- <placeholder/>
- </child>
- <child>
<widget class="GtkLabel" id="label218">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -40999,6 +41049,9 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -44761,6 +44814,9 @@ It starts before and arrives there with some speed.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="left_attach">2</property>
@@ -45400,6 +45456,9 @@ It starts before and arrives there with some speed.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -46054,6 +46113,9 @@ It starts before and arrives there with some speed.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
diff --git a/src/config.cs b/src/config.cs
index 5b478ef..7c255ad 100644
--- a/src/config.cs
+++ b/src/config.cs
@@ -118,31 +118,46 @@ public class Config
}
}
- public static void UpdateEncoderConfiguration(EncoderConfiguration EconfNew)
+ public static void UpdateField(string field, string text)
{
//adapted from
//http://stackoverflow.com/a/2401873
+
+ string tempfile = Path.GetTempFileName();
- try {
- string tempfile = Path.GetTempFileName();
- using (var writer = new StreamWriter(tempfile))
- using (var reader = new StreamReader(UtilAll.GetConfigFileName()))
+ LogB.Information("UpdateField, field: " + field + ", text: " + text);
+
+ if(! File.Exists(UtilAll.GetConfigFileName())) {
+ try {
+ using (var writer = new StreamWriter(tempfile))
{
- while (! reader.EndOfStream) {
- string line = reader.ReadLine();
- if (line != "" && line[0] != '#')
- {
- string [] parts = line.Split(new char[] {'_'});
- if(parts.Length == 2 && parts[0] ==
"EncoderConfiguration")
- line = "EncoderConfiguration=" +
EconfNew.ToStringOutput(EncoderConfiguration.Outputs.SQL);
- }
+ writer.WriteLine(field + "=" + text);
+ }
+ File.Copy(tempfile, UtilAll.GetConfigFileName(), true);
+ } catch {
+ LogB.Warning("Cannot write at Config.UpdateField");
+ }
+ } else {
+ try {
+ using (var writer = new StreamWriter(tempfile))
+ using (var reader = new StreamReader(UtilAll.GetConfigFileName()))
+ {
+ while (! reader.EndOfStream) {
+ string line = reader.ReadLine();
+ if (line != "" && line[0] != '#')
+ {
+ string [] parts = line.Split(new char[]
{'='});
+ if(parts.Length == 2 && parts[0] == field)
+ line = field + "=" + text;
+ }
- writer.WriteLine(line);
+ writer.WriteLine(line);
+ }
}
- }
- File.Copy(tempfile, UtilAll.GetConfigFileName(), true);
- } catch {
- LogB.Warning("Cannot write EncoderConfiguration at
Config.UpdateEncoderConfiguration");
+ File.Copy(tempfile, UtilAll.GetConfigFileName(), true);
+ } catch {
+ LogB.Warning("Cannot write at Config.UpdateField");
+ }
}
}
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index 9cf4eba..1fece3b 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -417,7 +417,10 @@ public partial class ChronoJumpWindow
//if there's a chronojump_config.txt, update it
if(encoderConfigurationDefinedFromFile)
- Config.UpdateEncoderConfiguration(encoderConfigurationCurrent);
+ Config.UpdateField(
+ "EncoderConfiguration",
+
encoderConfigurationCurrent.ToStringOutput(EncoderConfiguration.Outputs.SQL)
+ );
}
void on_combo_encoder_anchorage_changed (object o, EventArgs args) {
diff --git a/src/gui/networks.cs b/src/gui/networks.cs
index 679861c..b98a065 100644
--- a/src/gui/networks.cs
+++ b/src/gui/networks.cs
@@ -32,6 +32,11 @@ public partial class ChronoJumpWindow
{
//custom buttons
[Widget] Gtk.HBox hbox_encoder_analyze_signal_or_curves;
+
+ //Auto-detect
+ [Widget] Gtk.RadioButton radio_autodetect_active;
+ [Widget] Gtk.RadioButton radio_autodetect_inactive;
+ [Widget] Gtk.RadioButton radio_autodetect_discard_first;
//RFID
[Widget] Gtk.Box hbox_rfid;
@@ -63,6 +68,8 @@ public partial class ChronoJumpWindow
private linuxTypeEnum linuxType;
private bool encoderConfigurationDefinedFromFile = false;
private bool encoderUpdateTreeViewWhileCapturing = true;
+
+ private bool autodetectSignalEnabled = true;
private void configInit()
@@ -108,8 +115,21 @@ public partial class ChronoJumpWindow
alignment_video_encoder.Visible = false;
}
+ //Auto-detect stuff
configAutodetectPort = config.AutodetectPort;
+
+ autodetectSignalEnabled = false; //do not raise signals that could rewrite the config file
(loop)
+
+ if(configAutodetectPort == Config.AutodetectPortEnum.ACTIVE)
+ radio_autodetect_active.Active = true;
+ else if(configAutodetectPort == Config.AutodetectPortEnum.INACTIVE)
+ radio_autodetect_inactive.Active = true;
+ else // (configAutodetectPort == Config.AutodetectPortEnum.DISCARDFIRST)
+ radio_autodetect_discard_first.Active = true;
+
+ autodetectSignalEnabled = true; //activate signals again
+
//show only power
if(config.OnlyEncoder)
select_menuitem_mode_toggled(menuitem_modes.POWER);
@@ -197,6 +217,31 @@ public partial class ChronoJumpWindow
*/
}
+ public void on_radio_autodetect_active_toggled (object obj, EventArgs args)
+ {
+ if(autodetectSignalEnabled && radio_autodetect_active.Active)
+ {
+ configAutodetectPort = Config.AutodetectPortEnum.ACTIVE;
+ Config.UpdateField("AutodetectPort", configAutodetectPort.ToString());
+ }
+ }
+ public void on_radio_autodetect_inactive_toggled (object obj, EventArgs args)
+ {
+ if(autodetectSignalEnabled && radio_autodetect_inactive.Active)
+ {
+ configAutodetectPort = Config.AutodetectPortEnum.INACTIVE;
+ Config.UpdateField("AutodetectPort", configAutodetectPort.ToString());
+ }
+ }
+ public void on_radio_autodetect_discard_first_toggled (object obj, EventArgs args)
+ {
+ if(autodetectSignalEnabled && radio_autodetect_discard_first.Active)
+ {
+ configAutodetectPort = Config.AutodetectPortEnum.DISCARDFIRST;
+ Config.UpdateField("AutodetectPort", configAutodetectPort.ToString());
+ }
+ }
+
//rfid
private void rfid_test() {
Networks networks = new Networks();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]