[chronojump] Discover creates buttons "Use this", updates progressBars with final results
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Discover creates buttons "Use this", updates progressBars with final results
- Date: Fri, 13 May 2022 09:42:22 +0000 (UTC)
commit 6fc53f8fa133231e4bc8cc0ac70b409b1d47f8ef
Author: Xavier de Blas <xaviblas gmail com>
Date: Fri May 13 11:41:50 2022 +0200
Discover creates buttons "Use this", updates progressBars with final results
glade/app1.glade | 71 +++++++++++++++++++++++++++++++++++--------
src/execute/arduinoCapture.cs | 26 +++++++++++-----
src/gui/app1/chronojump.cs | 41 +++++++++++++++++++------
3 files changed, 107 insertions(+), 31 deletions(-)
---
diff --git a/glade/app1.glade b/glade/app1.glade
index 9236a6558..337332049 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -26569,6 +26569,9 @@ Concentric</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -32977,6 +32980,18 @@ Concentric</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<child>
+ <widget class="GtkLabel"
id="label_video_encoder_tests_will_be_filmed">
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Tests
will be filmed</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
<widget class="GtkHBox"
id="hbox_video_encoder_capturing">
<property name="can_focus">False</property>
<property name="spacing">4</property>
@@ -33013,18 +33028,6 @@ Concentric</property>
</packing>
</child>
<child>
- <widget class="GtkLabel"
id="label_video_encoder_tests_will_be_filmed">
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Tests
will be filmed</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
<widget class="GtkHBox"
id="hbox_video_encoder_no_capturing">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -42353,6 +42356,9 @@ then click this button.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -50272,7 +50278,7 @@ Since Chronojump 2.1.3, backups contain the complete data.</property>
<property name="spacing">25</property>
<child>
<widget class="GtkFrame" id="frame_micro_discover">
- <property name="width_request">300</property>
+ <property name="width_request">450</property>
<property name="height_request">250</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -50285,12 +50291,21 @@ Since Chronojump 2.1.3, backups contain the complete data.</property>
<property name="can_focus">False</property>
<property name="border_width">4</property>
<child>
+ <widget class="GtkHBox" id="hbox223">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
<widget class="GtkVBox" id="vbox270">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">20</property>
<property name="spacing">20</property>
<child>
+ <widget class="GtkHBox" id="hbox224">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
<widget class="GtkLabel"
id="label_micro_discover_ports">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -50303,6 +50318,26 @@ Since Chronojump 2.1.3, backups contain the complete data.</property>
</packing>
</child>
<child>
+ <widget class="GtkLabel"
id="label_micro_discover_ports_detecting">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label"
translatable="yes">Detecting …</property>
+ </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="GtkTable"
id="table_micro_discover">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -50311,6 +50346,9 @@ Since Chronojump 2.1.3, backups contain the complete data.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -50319,6 +50357,13 @@ Since Chronojump 2.1.3, backups contain the complete data.</property>
</packing>
</child>
</widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
</child>
</widget>
</child>
diff --git a/src/execute/arduinoCapture.cs b/src/execute/arduinoCapture.cs
index 649c1b0e5..7375f1d24 100644
--- a/src/execute/arduinoCapture.cs
+++ b/src/execute/arduinoCapture.cs
@@ -551,6 +551,9 @@ public class MicroDiscover : MicroComms
public enum Status { NOTSTARTED, CONNECTING, DETECTING, DONE };
private List<Status> progressBar_l; //progressBars status
+ //devices discovered compatible with current mode
+ private static List<ChronopicRegisterPort.Types> discovered_l;
+
//9600
//private string rfidStr = "YES Chronojump RFID";
//Chronopic multitest will send a J (9600)
@@ -573,14 +576,16 @@ public class MicroDiscover : MicroComms
}
//mode is forceSensor, runsEncoder, ...
- public List<string> DiscoverOneMode (Constants.Modes mode)
+ public void DiscoverOneMode (Constants.Modes mode)
{
- List<string> discovered_l = new List<string> ();
+ discovered_l = new List<ChronopicRegisterPort.Types> ();
+ bool success;
for (int i = 0; i < micro_l.Count ; i ++)
{
micro = micro_l[i]; //micro is the protected variable
progressBar_l[i] = Status.CONNECTING;
+ success = false;
LogB.Information("Discover loop, port: " + micro.PortName);
if(connectAndSleep ())
@@ -589,23 +594,25 @@ public class MicroDiscover : MicroComms
flush(); //after connect
if(mode == Constants.Modes.RUNSSIMPLE || mode ==
Constants.Modes.RUNSINTERVALLIC)
- discoverWichro ();
+ success = discoverWichro ();
if(mode == Constants.Modes.FORCESENSOR)
- discoverForceSensor ();
+ success = discoverForceSensor ();
else if(mode == Constants.Modes.RUNSENCODER)
- discoverRaceAnalyzer ();
+ success = discoverRaceAnalyzer ();
} else
micro.Discovered = ChronopicRegisterPort.Types.UNKNOWN;
micro.ClosePort (); //close even connect failed?
- discovered_l.Add(string.Format("{0} {1}", micro.PortName, micro.Discovered));
+
+ //add to list only the relevant, eg in races will be Wichro (and maybe Chronopic
multitest)
+ if(success)
+ discovered_l.Add(micro.Discovered);
+
progressBar_l[i] = Status.DONE;
if(cancel)
break;
}
-
- return discovered_l;
}
/*
@@ -891,6 +898,9 @@ public class MicroDiscover : MicroComms
public List<Status> ProgressBar_l {
get { return progressBar_l; }
}
+ public List<ChronopicRegisterPort.Types> Discovered_l {
+ get { return discovered_l; }
+ }
}
/*
diff --git a/src/gui/app1/chronojump.cs b/src/gui/app1/chronojump.cs
index 5967f4d87..cff1fea7d 100644
--- a/src/gui/app1/chronojump.cs
+++ b/src/gui/app1/chronojump.cs
@@ -302,6 +302,7 @@ public partial class ChronoJumpWindow
[Widget] Gtk.Table table_micro_discover;
[Widget] Gtk.Button button_contacts_detect;
[Widget] Gtk.Label label_micro_discover_ports;
+ [Widget] Gtk.Label label_micro_discover_ports_detecting;
[Widget] Gtk.EventBox eventbox_button_micro_discover_cancel_close;
[Widget] Gtk.Image image_button_micro_discover_cancel_close;
[Widget] Gtk.Label label_button_micro_discover_cancel_close;
@@ -4554,6 +4555,7 @@ public partial class ChronoJumpWindow
*/
List<Gtk.ProgressBar> progressbar_micro_discover_l;
+ List<Gtk.Button> button_micro_discover_l;
private void setup_progressbar_micro_discover_l (List<string> discoverPorts_l)
{
// 1) delete old progressbars
@@ -4565,12 +4567,15 @@ public partial class ChronoJumpWindow
*/
//table_micro_discover = new Gtk.Table((uint) microDiscover.ProgressBar_l.Count +1, 3,
false); //not homogeneous
- table_micro_discover.Resize((uint) discoverPorts_l.Count +1, 3);
+ table_micro_discover.Resize((uint) discoverPorts_l.Count, 3);
table_micro_discover.ColumnSpacing = 20;
table_micro_discover.RowSpacing = 12;
- // 2) add new progressbars on the list
+ // 2) create the lists of widgets to be able to access later
progressbar_micro_discover_l = new List<Gtk.ProgressBar> ();
+ button_micro_discover_l = new List<Gtk.Button> ();
+
+ // 3) create and show the table
for (int i = 0; i < discoverPorts_l.Count; i ++)
{
Gtk.Label l = new Gtk.Label(discoverPorts_l[i]);
@@ -4578,8 +4583,14 @@ public partial class ChronoJumpWindow
Gtk.ProgressBar pb = new Gtk.ProgressBar();
pb.Text = "----"; //to have height
+ pb.SetSizeRequest(125, -1);
table_micro_discover.Attach (pb, (uint) 1, (uint) 2, (uint) i, (uint) i+1);
progressbar_micro_discover_l.Add (pb);
+
+ Gtk.Button b = new Gtk.Button("Use this");
+ b.Sensitive = false;
+ button_micro_discover_l.Add (b);
+ table_micro_discover.Attach (b, (uint) 2, (uint) 3, (uint) i, (uint) i+1);
}
table_micro_discover.ShowAll();
}
@@ -4604,6 +4615,7 @@ public partial class ChronoJumpWindow
"Found 1 device.",
"Found {0} devices.",
discoverPorts_l.Count), discoverPorts_l.Count);
+ label_micro_discover_ports_detecting.Visible = true;
app1s_notebook_sup_entered_from = notebook_sup.CurrentPage; //CONTACTS or ENCODER
notebook_sup.CurrentPage = Convert.ToInt32(notebook_sup_pages.MICRODISCOVER);
@@ -4627,14 +4639,7 @@ public partial class ChronoJumpWindow
private void discoverDo ()
{
- List<string> discovered_l = microDiscover.DiscoverOneMode (current_mode);
-
- string discoveredStr = "Discovered: ";
- foreach (string str in discovered_l)
- discoveredStr += "\n- " + str;
-
- //new DialogMessage( Constants.MessageTypes.INFO, discoveredStr +
- // string.Format("\n{0} ms", cDebug.StartToEndInMs()) );
+ microDiscover.DiscoverOneMode (current_mode);
}
private bool pulseDiscoverGTK ()
{
@@ -4678,8 +4683,16 @@ public partial class ChronoJumpWindow
(progressbar_micro_discover_l[i]).Text =
Catalog.GetString("Cancelled");
(progressbar_micro_discover_l[i]).Fraction = 1;
+
+ if (i < microDiscover.Discovered_l.Count && discoverMatchCurrentMode
(microDiscover.Discovered_l[i]))
+ {
+ LogB.Information("found in " + i);
+ (progressbar_micro_discover_l[i]).Text =
ChronopicRegisterPort.TypePrint(microDiscover.Discovered_l[i]);
+ button_micro_discover_l[i].Sensitive = true;
+ }
}
+ label_micro_discover_ports_detecting.Visible = false;
image_button_micro_discover_cancel_close.Pixbuf =
new Pixbuf (null, Util.GetImagePath(false) + "image_close.png");
label_button_micro_discover_cancel_close.Text = Catalog.GetString("Close");
@@ -4691,6 +4704,14 @@ public partial class ChronoJumpWindow
return true;
}
+ private bool discoverMatchCurrentMode (ChronopicRegisterPort.Types crpt)
+ {
+ if (current_mode == Constants.Modes.FORCESENSOR && crpt ==
ChronopicRegisterPort.Types.ARDUINO_FORCE)
+ return true;
+
+ return false;
+ }
+
private void on_button_micro_discover_cancel_close_clicked (object o, EventArgs args)
{
if (discoverThread != null && discoverThread.IsAlive && microDiscover != null)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]