[chronojump] Done AutodetectPort change on main menu.



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]