[chronojump] Discover/Capture useThis working ok for n chronopics (contacts) and forceSensor, and RaceAnalyzer
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Discover/Capture useThis working ok for n chronopics (contacts) and forceSensor, and RaceAnalyzer
- Date: Fri, 10 Jun 2022 15:14:20 +0000 (UTC)
commit 2f91323942a33e2a9a1d30e73f054a3c597e171b
Author: Xavier de Blas <xaviblas gmail com>
Date: Fri Jun 10 17:13:39 2022 +0200
Discover/Capture useThis working ok for n chronopics (contacts) and forceSensor, and RaceAnalyzer
src/chronopicRegister.cs | 36 +++++++++++++++------
src/gui/app1/chronojump.cs | 75 +++++++++++++++++++++++++++++---------------
src/gui/app1/forceSensor.cs | 6 ++--
src/gui/app1/runEncoder.cs | 6 ++--
src/gui/chronopic.cs | 17 ++++++++--
src/gui/chronopicRegister.cs | 23 ++++++--------
6 files changed, 107 insertions(+), 56 deletions(-)
---
diff --git a/src/chronopicRegister.cs b/src/chronopicRegister.cs
index 57c1ae860..733fc7faf 100644
--- a/src/chronopicRegister.cs
+++ b/src/chronopicRegister.cs
@@ -306,17 +306,22 @@ public abstract class ChronopicRegister
private List <selectedForMode> selectedForMode_l;
public struct selectedForMode
{
- public string portName;
+ public ChronopicRegisterPort crp;
public Constants.Modes mode;
- public selectedForMode (string portName, Constants.Modes mode)
+ public selectedForMode (ChronopicRegisterPort crp, Constants.Modes mode)
{
- this.portName = portName;
+ this.crp = crp;
this.mode = mode;
}
+
+ public override string ToString () //debug
+ {
+ return string.Format ("crp: {0}; mode: {1}", crp, mode);
+ }
}
- public void SetSelectedForMode (string portName, Constants.Modes mode)
+ public void SetSelectedForMode (ChronopicRegisterPort crp, Constants.Modes mode)
{
if (selectedForMode_l == null)
selectedForMode_l = new List<selectedForMode> ();
@@ -325,21 +330,34 @@ public abstract class ChronopicRegister
if (selectedForMode_l[i].mode == mode)
{
//note structs cannot be changed, so change by a new one
- selectedForMode_l[i] = new selectedForMode (portName, mode);
+ selectedForMode_l[i] = new selectedForMode (crp, mode);
return;
}
//not found, add it
- selectedForMode_l.Add (new selectedForMode (portName, mode));
+ selectedForMode_l.Add (new selectedForMode (crp, mode));
}
- public string GetSelectedForMode (Constants.Modes mode)
+ public ChronopicRegisterPort GetSelectedForMode (Constants.Modes mode)
{
+ if (selectedForMode_l == null)
+ return new ChronopicRegisterPort ("");
+
foreach (selectedForMode sfm in selectedForMode_l)
if (sfm.mode == mode)
- return sfm.portName;
+ return sfm.crp;
- return "";
+ return new ChronopicRegisterPort ("");
+ }
+
+ //to debug
+ public void ListSelectedForAllModes ()
+ {
+ if (selectedForMode_l == null)
+ return;
+
+ foreach (selectedForMode sfm in selectedForMode_l)
+ LogB.Information (sfm.ToString ());
}
// <---- end of selectedForMode ----
diff --git a/src/gui/app1/chronojump.cs b/src/gui/app1/chronojump.cs
index 07767d13f..c36ed3541 100644
--- a/src/gui/app1/chronojump.cs
+++ b/src/gui/app1/chronojump.cs
@@ -4676,7 +4676,8 @@ public partial class ChronoJumpWindow
chronopicRegister = discoverWin.ChronopicRegisterGet;
- if(discoverWin.PortSelected != "")
+ //if(discoverWin.PortSelected != "")
+ if(discoverWin.PortSelected.Port != "")
{
chronopicRegister.SetSelectedForMode (discoverWin.PortSelected, current_mode);
button_contacts_detect.Visible = false;
@@ -4727,9 +4728,9 @@ public partial class ChronoJumpWindow
if(current_mode == Constants.Modes.RUNSINTERVALLIC && compujumpAutologout != null)
compujumpAutologout.StartCapturingRunInterval();
- if( chronopicRegister.NumConnectedOfType(ChronopicRegisterPort.Types.RUN_WIRELESS) == 1 && (
- current_mode == Constants.Modes.RUNSSIMPLE ||
- current_mode == Constants.Modes.RUNSINTERVALLIC) )
+ //WICHRO
+ if ( chronopicRegister.NumConnectedOfType(ChronopicRegisterPort.Types.RUN_WIRELESS) == 1 &&
+ (current_mode == Constants.Modes.RUNSSIMPLE || current_mode ==
Constants.Modes.RUNSINTERVALLIC) )
{
//cp2016.StoredCanCaptureContacts = true;
cp2016.StoredWireless = true;
@@ -4738,48 +4739,72 @@ public partial class ChronoJumpWindow
return;
}
- //Done before the Wichro capture.
- //If we want to use this before Wichro capture, then we will need to call first
Arduino.Disconnect.
- chronopicRegisterUpdate(false);
+ if (current_mode == Constants.Modes.JUMPSSIMPLE || current_mode ==
Constants.Modes.JUMPSREACTIVE ||
+ current_mode == Constants.Modes.RUNSSIMPLE || current_mode ==
Constants.Modes.RUNSINTERVALLIC)
+ {
+ // non-wichro 2.2.2
+ chronopicRegister.ListSelectedForAllModes (); //debug
- cp2016.StoredWireless = false;
+ if (chronopicRegister.GetSelectedForMode (current_mode).Port == "")
+ {
+ // simulated test can be done on SIMULATED session
+ if(currentSession.Name == Constants.SessionSimulatedName)
+ on_button_execute_test_acceptedPre_start_camera
(WebcamStartedTestStart.CHRONOPIC);
+ else
+ on_button_contacts_detect_clicked (o, args); //open discover win
+ } else {
+ LogB.Information ("getSelectedFormode: " +
chronopicRegister.GetSelectedForMode (current_mode).ToString ());
+ chronopicConnectionSequenceInit (chronopicRegister.GetSelectedForMode
(current_mode));
+ }
- int numContacts = chronopicRegister.NumConnectedOfType(ChronopicRegisterPort.Types.CONTACTS);
- LogB.Information("numContacts: " + numContacts);
+ /* before 2.2.2
+ //Done before the Wichro capture.
+ //If we want to use this before Wichro capture, then we will need to call first
Arduino.Disconnect.
+ chronopicRegisterUpdate(false);
- //check if chronopics have changed
- if(numContacts >= 2 && current_mode == Constants.Modes.OTHER &&
radio_mode_multi_chronopic_small.Active)
- {
+ cp2016.StoredWireless = false;
+
+ int numContacts =
chronopicRegister.NumConnectedOfType(ChronopicRegisterPort.Types.CONTACTS);
+ LogB.Information("numContacts: " + numContacts);
+
+ //check if chronopics have changed
+ if(numContacts >= 2 && current_mode == Constants.Modes.OTHER &&
radio_mode_multi_chronopic_small.Active)
+ {
chronopicConnectionSequenceInit(2);
- }
- else if(numContacts >= 1) //will get first
- {
+ }
+ else if(numContacts >= 1) //will get first
+ {
chronopicConnectionSequenceInit(1);
- }
- else //(numContacts == 0)
- {
+ }
+ else //(numContacts == 0)
+ {
//store a boolean in order to read info faster
cp2016.StoredCanCaptureContacts = false;
+ */
/*
* if serial port gets opened, then a new USB connection will use different ttyUSB on
Linux
* and maybe is the cause for blocking the port on OSX
* close the port if opened
*/
- cp2016.SerialPortsCloseIfNeeded(true);
+ /*
+ cp2016.SerialPortsCloseIfNeeded(true);
//simulated tests are only allowed on SIMULATED session
if(currentSession.Name != Constants.SessionSimulatedName)
{
- //new DialogMessage(Constants.MessageTypes.WARNING,
Constants.SimulatedTestsNotAllowed);
- //UtilGtk.DeviceColors(viewport_chronopics, false);
- //open device window
- chronopicRegisterUpdate(true);
+ //new DialogMessage(Constants.MessageTypes.WARNING,
Constants.SimulatedTestsNotAllowed);
+ //UtilGtk.DeviceColors(viewport_chronopics, false);
+ //open device window
+ chronopicRegisterUpdate(true);
- return;
+ return;
}
on_button_execute_test_acceptedPre_start_camera(WebcamStartedTestStart.CHRONOPIC);
+ }
+ */
}
+
UtilGtk.DeviceColors(viewport_chronopics, true);
}
diff --git a/src/gui/app1/forceSensor.cs b/src/gui/app1/forceSensor.cs
index 92d5e2f97..b31063fc4 100644
--- a/src/gui/app1/forceSensor.cs
+++ b/src/gui/app1/forceSensor.cs
@@ -252,7 +252,7 @@ public partial class ChronoJumpWindow
private bool forceSensorConnect()
{
LogB.Information(" FS connect 0 ");
- if (chronopicRegister.GetSelectedForMode (current_mode) == "")
+ if (chronopicRegister.GetSelectedForMode (current_mode).Port == "")
{
forceSensorOtherMessage = forceSensorNotConnectedString;
return false;
@@ -267,7 +267,7 @@ public partial class ChronoJumpWindow
{
forceSensorOtherMessage = "Connecting ...";
- portFS = new SerialPort (chronopicRegister.GetSelectedForMode (current_mode), 115200);
+ portFS = new SerialPort (chronopicRegister.GetSelectedForMode (current_mode).Port, 115200);
LogB.Information(" FS connect 4: opening port...");
try {
@@ -451,7 +451,7 @@ public partial class ChronoJumpWindow
}
}
- if (chronopicRegister.GetSelectedForMode (current_mode) == "")
+ if (chronopicRegister.GetSelectedForMode (current_mode).Port == "")
{
event_execute_label_message.Text = forceSensorNotConnectedString;
return;
diff --git a/src/gui/app1/runEncoder.cs b/src/gui/app1/runEncoder.cs
index 1bbabb2c6..d471b04e2 100644
--- a/src/gui/app1/runEncoder.cs
+++ b/src/gui/app1/runEncoder.cs
@@ -220,7 +220,7 @@ public partial class ChronoJumpWindow
private bool runEncoderConnect()
{
LogB.Information(" RE connect 0 ");
- if (chronopicRegister.GetSelectedForMode (current_mode) == "")
+ if (chronopicRegister.GetSelectedForMode (current_mode).Port == "")
{
runEncoderPulseMessage = runEncoderNotConnectedString;
return false;
@@ -229,7 +229,7 @@ public partial class ChronoJumpWindow
LogB.Information(" RE connect 1 ");
runEncoderPulseMessage = "Connecting ...";
- portRE = new SerialPort (chronopicRegister.GetSelectedForMode (current_mode), 115200);
+ portRE = new SerialPort (chronopicRegister.GetSelectedForMode (current_mode).Port, 115200);
LogB.Information(" RE connect 4: opening port...");
try {
@@ -393,7 +393,7 @@ public partial class ChronoJumpWindow
//if graphs are not updated with the line, use this that will fire ExposeEvent:
//drawingarea_race_analyzer_capture_position_time.QueueDraw(); and the others
- if (chronopicRegister.GetSelectedForMode (current_mode) == "")
+ if (chronopicRegister.GetSelectedForMode (current_mode).Port == "")
{
event_execute_label_message.Text = runEncoderNotConnectedString;
runEncoderButtonsSensitive(true);
diff --git a/src/gui/chronopic.cs b/src/gui/chronopic.cs
index 7b56ac455..12a3f9816 100644
--- a/src/gui/chronopic.cs
+++ b/src/gui/chronopic.cs
@@ -37,13 +37,20 @@ public partial class ChronoJumpWindow
List<ChronopicRegisterPort> crpMultiList;
ChronopicRegisterPort crpDoing;
- bool connectAnother;
+ //bool connectAnother;
int connectNum;
enum connectingSequenceEnum { START, CONNECTINGREAL, FIRMWAREIFNEEDED, END }
private static connectingSequenceEnum connectingSequence;
- private void chronopicConnectionSequenceInit(int numCPs)
+ private void chronopicConnectionSequenceInit (ChronopicRegisterPort crpDoing)
{
+ // 2.2.2
+ this.crpDoing = crpDoing;
+ //store a boolean in order to read info faster
+ cp2016.StoredCanCaptureContacts = true;
+ connectNum = 1;
+
+ /* before 2.2.2
connectNum = 1;
if(numCPs == 1)
{
@@ -65,8 +72,10 @@ public partial class ChronoJumpWindow
cp2016.StoredCanCaptureContacts = (crpMultiList.Count == 2);
}
+ */
connectingSequence = connectingSequenceEnum.START;
chronopicConnectionSequenceDo();
+
}
private void chronopicConnectionSequenceDo()
@@ -77,6 +86,7 @@ public partial class ChronoJumpWindow
//1 check if need to end sequence or go to second chronopic
if (connectingSequence == connectingSequenceEnum.END)
{
+ /*
if(connectAnother)
{
System.Threading.Thread.Sleep(250);
@@ -87,10 +97,11 @@ public partial class ChronoJumpWindow
chronopicConnectionSequenceDo();
return;
} else {
+ */
button_activate_chronopics.Show();
on_button_execute_test_acceptedPre_start_camera(ChronoJumpWindow.WebcamStartedTestStart.CHRONOPIC);
return;
- }
+ //}
}
//2 update sequence
diff --git a/src/gui/chronopicRegister.cs b/src/gui/chronopicRegister.cs
index b43f13a5b..d3d46059c 100644
--- a/src/gui/chronopicRegister.cs
+++ b/src/gui/chronopicRegister.cs
@@ -123,7 +123,7 @@ public class DiscoverWindow
List<Gtk.ProgressBar> progressbar_microNotDiscovered_l;
List<Gtk.Button> button_microNotDiscovered_l;
- List<string> portAlreadyDiscovered_l;
+ List<ChronopicRegisterPort> portAlreadyDiscovered_l;
List<Gtk.Button> button_microAlreadyDiscovered_l;
static bool discoverCloseAfterCancel; //is true when select useThis while reading other devices
@@ -137,7 +137,7 @@ public class DiscoverWindow
private Gtk.Image image_button_micro_discover_cancel_close;
private Gtk.Label label_button_micro_discover_cancel_close;
- private string portSelected;
+ private ChronopicRegisterPort portSelected;
public DiscoverWindow (Constants.Modes current_mode, ChronopicRegister chronopicRegister,
Gtk.Label label_micro_discover_not_found,
@@ -154,7 +154,7 @@ public class DiscoverWindow
// 1) set up gui
FakeButtonClose = new Gtk.Button();
- portSelected = "";
+ portSelected = new ChronopicRegisterPort ("");
//ChronoDebug cDebug = new ChronoDebug("Discover " + current_mode.ToString());
//cDebug.Start();
@@ -165,7 +165,6 @@ public class DiscoverWindow
List<ChronopicRegisterPort> alreadyDiscovered_l = new List<ChronopicRegisterPort> ();
List<ChronopicRegisterPort> notDiscovered_l = new List<ChronopicRegisterPort> ();
foreach (ChronopicRegisterPort crp in chronopicRegister.Crpl.L)
- //foreach (ChronopicRegisterPort crp in crpl.L)
if (crp.Port != "")
{
if (crp.Type != ChronopicRegisterPort.Types.UNKNOWN &&
@@ -220,7 +219,7 @@ public class DiscoverWindow
// 2) create the lists of widgets to be able to access later
progressbar_microNotDiscovered_l = new List<Gtk.ProgressBar> ();
button_microNotDiscovered_l = new List<Gtk.Button> ();
- portAlreadyDiscovered_l = new List<string> ();
+ portAlreadyDiscovered_l = new List<ChronopicRegisterPort> ();
button_microAlreadyDiscovered_l = new List<Gtk.Button> ();
// 3) create widgets, lists, attach to table and show all
@@ -280,8 +279,8 @@ public class DiscoverWindow
{
b.Sensitive = discoverMatchCurrentMode (crp.Type);
button_microAlreadyDiscovered_l.Add (b);
- portAlreadyDiscovered_l.Add (crp.Port);
- b.Clicked += new EventHandler (on_discover_button_clicked);
+ portAlreadyDiscovered_l.Add (crp);
+ b.Clicked += new EventHandler (on_discover_use_this_clicked);
} else {
b.Sensitive = false;
button_microNotDiscovered_l.Add (b);
@@ -328,7 +327,7 @@ public class DiscoverWindow
{
(progressbar_microNotDiscovered_l[i]).Text =
ChronopicRegisterPort.TypePrint(microDiscover.Discovered_l[i]);
button_microNotDiscovered_l[i].Sensitive = true;
- button_microNotDiscovered_l[i].Clicked += new
EventHandler(on_discover_button_clicked);
+ button_microNotDiscovered_l[i].Clicked += new
EventHandler(on_discover_use_this_clicked);
}
}
@@ -390,7 +389,7 @@ public class DiscoverWindow
return false;
}
- private void on_discover_button_clicked (object o, EventArgs args)
+ private void on_discover_use_this_clicked (object o, EventArgs args)
{
Button bPress = (Button) o;
bool success = false;
@@ -404,8 +403,7 @@ public class DiscoverWindow
microDiscover.ToDiscover_l[i], microDiscover.Discovered_l[i]);
chronopicRegister.SetType (microDiscover.ToDiscover_l[i].SerialNumber,
microDiscover.Discovered_l[i]);
- //portSelectedForceSensor = microDiscover.ToDiscover_l[i].Port;
- portSelected = microDiscover.ToDiscover_l[i].Port;
+ portSelected = microDiscover.ToDiscover_l[i];
/* instead of connect, just do changes on gui in order to be used
if(! portFSOpened)
@@ -429,7 +427,6 @@ public class DiscoverWindow
if (button_microAlreadyDiscovered_l[i] == bPress)
{
portSelected = portAlreadyDiscovered_l[i];
-
success = true;
}
@@ -475,7 +472,7 @@ public class DiscoverWindow
}
//the port that user clicked on "Use this!"
- public string PortSelected {
+ public ChronopicRegisterPort PortSelected {
get { return portSelected; }
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]