[chronojump] pulsebar on connectContactsReal
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] pulsebar on connectContactsReal
- Date: Wed, 12 Oct 2016 23:14:11 +0000 (UTC)
commit 286ec4301df581652321657b5a7468fa3352708e
Author: Xavier de Blas <xaviblas gmail com>
Date: Thu Oct 13 01:09:07 2016 +0200
pulsebar on connectContactsReal
src/gui/chronojump.cs | 120 ++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 93 insertions(+), 27 deletions(-)
---
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 4981f22..9092ba0 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -3611,18 +3611,96 @@ public partial class ChronoJumpWindow
cp2016.StoredCanCaptureContacts = (numContacts == 1);
if(numContacts == 0) {
- new DialogMessage(Constants.MessageTypes.WARNING, "Chronopic jumps/runs is not
connected");
+ if(currentSession.Name != Constants.SessionSimulatedName)
+ new DialogMessage(Constants.MessageTypes.WARNING, "Chronopic jumps/runs is
not connected");
+
return false;
}
if(numContacts > 1) {
- new DialogMessage(Constants.MessageTypes.WARNING, "More than 1 Chronopic for
jumps/runs are connected");
+ if(currentSession.Name != Constants.SessionSimulatedName)
+ new DialogMessage(Constants.MessageTypes.WARNING, "More than 1 Chronopic for
jumps/runs are connected");
+
return false;
}
+ return true;
+ }
+
+ Thread connectContactsRealThread;
+ //used to pass crp to connectContactsRealThread
+ ChronopicRegisterPort crpConnectContactsRealThread;
+ static bool succededConnectContactsRealThread;
+ void connectContactsReal(ChronopicRegisterPort crp)
+ {
+ LogB.Information("Connecting real (starting connection)");
+ LogB.Information("Press test button on Chronopic");
+ event_execute_label_message.Text = "Press TEST button on Chronopic to stablish initial
communication";
+
+ crpConnectContactsRealThread = crp;
+
+ connectContactsRealThread = new Thread (new ThreadStart (connectContactsRealDo));
+ GLib.Idle.Add (new GLib.IdleHandler (pulseConnectContactsReal));
+
+ LogB.ThreadStart();
+ connectContactsRealThread.Start();
+ }
+ void connectContactsRealDo()
+ {
+ succededConnectContactsRealThread = cp2016.ConnectContactsReal(
+ crpConnectContactsRealThread);
+ }
+ bool pulseConnectContactsReal()
+ {
+ if(! connectContactsRealThread.IsAlive)
+ {
+ event_execute_progressbar_event.Fraction = 1.0;
+ event_execute_progressbar_time.Fraction = 1.0;
+ LogB.ThreadEnding();
+ connectContactsRealEnd();
+ LogB.ThreadEnded();
+
+ return false;
+ }
+
+ event_execute_progressbar_event.Pulse();
+ event_execute_progressbar_time.Pulse();
+ Thread.Sleep (50);
return true;
}
+ private void connectContactsRealEnd()
+ {
+ event_execute_label_message.Text = "";
+
+ if(! succededConnectContactsRealThread)
+ {
+ LogB.Information("Failure at Connecting real!");
+ return;
+ }
+
+ LogB.Information("Success at Connecting real!");
+ changeMultitestFirmwareIfNeeded();
+ on_button_execute_test_accepted();
+ }
+
+
+ private void changeMultitestFirmwareIfNeeded()
+ {
+ //change multitest stuff
+ int changed = cp2016.ChangeMultitestFirmwareMaybe(getMenuItemMode());
+
+ //TODO: this is debug info. Remove this for 1.6.3
+ if(changed == -1)
+ label_chronopics_multitest.Text = "";
+ else if(changed == 50)
+ label_chronopics_multitest.Text =
+ "[" + Catalog.GetString("Jumps") + "]";
+ else if(changed == 10)
+ label_chronopics_multitest.Text =
+ "[" + Catalog.GetString("Runs") + "]";
+ }
+
void on_button_execute_test_clicked (object o, EventArgs args)
{
/*
@@ -3643,43 +3721,31 @@ public partial class ChronoJumpWindow
ChronopicRegisterPort crp =
chronopicRegister.ConnectedOfType(ChronopicRegisterPort.Types.CONTACTS);
LogB.Information("Checking if Connected real!");
if(cp2016.IsLastConnectedReal(crp))
+ {
LogB.Information("Already Connected real!");
- else {
- LogB.Information("Connecting real (starting connection)");
- LogB.Information("Press test button on Chronopic");
- bool connectedReal = cp2016.ConnectContactsReal(crp);
- if(connectedReal)
- LogB.Information("Sucess at Connecting real!");
- else {
- LogB.Information("Failure at Connecting real!");
- return;
- }
+ changeMultitestFirmwareIfNeeded();
+ on_button_execute_test_accepted();
+ } else
+ {
+ connectContactsReal(crp);
+ /*
+ * this will start a thread and if succeeds, then will call:
+ * changeMultitestFirmwareIfNeeded();
+ * on_button_execute_test_accepted();
+ */
}
- //change multitest stuff
- int changed = cp2016.ChangeMultitestFirmwareMaybe(getMenuItemMode());
-
- //TODO: this is debug info. Remove this for 1.6.3
- if(changed == -1)
- label_chronopics_multitest.Text = "";
- else if(changed == 50)
- label_chronopics_multitest.Text =
- "[" + Catalog.GetString("Jumps") + "]";
- else if(changed == 10)
- label_chronopics_multitest.Text =
- "[" + Catalog.GetString("Runs") + "]";
} else {
//simulated tests are only allowed on SIMULATED session
if(currentSession.Name != Constants.SessionSimulatedName) {
new DialogMessage(Constants.MessageTypes.WARNING,
Constants.SimulatedTestsNotAllowed);
return;
}
+ on_button_execute_test_accepted();
}
-
- on_button_execute_test_accepted(o, args);
}
- void on_button_execute_test_accepted (object o, EventArgs args)
+ void on_button_execute_test_accepted ()
{
bool canCaptureC = cp2016.StoredCanCaptureContacts;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]