[chronojump] Fixed multichronopic connection



commit e16ff347591d3579ea75f157aa997482326da51f
Author: Xavier de Blas <xaviblas gmail com>
Date:   Wed Jan 4 08:00:16 2017 +0100

    Fixed multichronopic connection

 src/chronopic2016.cs  |   49 ++++++++++++++++++++++++++++++++++---------------
 src/gui/chronojump.cs |    2 +-
 src/gui/chronopic.cs  |    2 +-
 src/gui/guiTests.cs   |    2 +-
 4 files changed, 37 insertions(+), 18 deletions(-)
---
diff --git a/src/chronopic2016.cs b/src/chronopic2016.cs
index 4fbdddd..79d0cd0 100644
--- a/src/chronopic2016.cs
+++ b/src/chronopic2016.cs
@@ -44,11 +44,17 @@ public class Chronopic2016
        private Chronopic cp2;
        private SerialPort sp2;
        private int cpDoing; //2 is for the second chronopic on multichronopic
-       
+
+       //to check if cp changed
        private string lastConnectedRealPort = "";
        private string lastConnectedRealSerialNumber = "";
        private ChronopicRegisterPort.Types lastConnectedRealType = ChronopicRegisterPort.Types.UNKNOWN;
 
+       //to check if cp2 changed
+       private string lastConnectedRealPort2 = "";
+       private string lastConnectedRealSerialNumber2 = "";
+       private ChronopicRegisterPort.Types lastConnectedRealType2 = ChronopicRegisterPort.Types.UNKNOWN;
+
 
        // -----ConnectContactsReal START ----->
 
@@ -157,11 +163,8 @@ public class Chronopic2016
 
                LogB.Information("Ended chronopicInit.Do()");
 
-               if(connected) {
-                       lastConnectedRealPort = crp.Port;
-                       lastConnectedRealSerialNumber = crp.SerialNumber;
-                       lastConnectedRealType = ChronopicRegisterPort.Types.CONTACTS;
-               }
+               if(connected)
+                       assignLastConnectedVariables(crp);
 
                SuccededConnectContactsRealThread = connected;
        }
@@ -201,23 +204,38 @@ public class Chronopic2016
        }
 
 
-       public bool IsLastConnectedReal(ChronopicRegisterPort crp)
+       public bool IsLastConnectedReal(ChronopicRegisterPort crp, int cpCount)
        {
-               LogB.Information(string.Format(
-                                       "lastConnectedReal (port:{0}, serialNumber:{1}, type:{2})",
-                                       lastConnectedRealPort, lastConnectedRealSerialNumber,
-                                       lastConnectedRealType.ToString()));
-               LogB.Information(crp.ToString());
-
-               if(lastConnectedRealPort != "" && lastConnectedRealSerialNumber != "" &&
+               if(cpCount == 1 &&
+                               lastConnectedRealPort != "" && lastConnectedRealSerialNumber != "" &&
                                lastConnectedRealType == ChronopicRegisterPort.Types.CONTACTS &&
                                crp.Port == lastConnectedRealPort &&
                                crp.SerialNumber == lastConnectedRealSerialNumber)
-                       return true;
+                               return true;
+               else if(cpCount == 2 &&
+                               lastConnectedRealPort2 != "" && lastConnectedRealSerialNumber2 != "" &&
+                               lastConnectedRealType2 == ChronopicRegisterPort.Types.CONTACTS &&
+                               crp.Port == lastConnectedRealPort2 &&
+                               crp.SerialNumber == lastConnectedRealSerialNumber2)
+                               return true;
 
                return false;
        }
 
+       private void assignLastConnectedVariables(ChronopicRegisterPort crp)
+       {
+               if(cpDoing == 1) {
+                       lastConnectedRealPort = crp.Port;
+                       lastConnectedRealSerialNumber = crp.SerialNumber;
+                       lastConnectedRealType = ChronopicRegisterPort.Types.CONTACTS;
+               } else { //2
+                       lastConnectedRealPort2 = crp.Port;
+                       lastConnectedRealSerialNumber2 = crp.SerialNumber;
+                       lastConnectedRealType2 = ChronopicRegisterPort.Types.CONTACTS;
+               }
+       }
+
+       /*
        //check if last connected real port exists on getFiles()
        public bool WindowsLastConnectedRealExists()
        {
@@ -230,6 +248,7 @@ public class Chronopic2016
 
                return false;
        }
+       */
 
        public bool StoredCanCaptureContacts; //store a boolean in order to read info faster
 
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 536a8c5..2f0fb75 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -3670,7 +3670,7 @@ public partial class ChronoJumpWindow
                LogB.Information("numContacts: " + numContacts);
 
                //check if chronopics have changed
-               if(numContacts >= 2 && radio_mode_multi_chronopic_small.Active)
+               if(numContacts >= 2 && radio_menuitem_mode_other.Active && 
radio_mode_multi_chronopic_small.Active)
                {
                        chronopicConnectionSequenceInit(2);
                }
diff --git a/src/gui/chronopic.cs b/src/gui/chronopic.cs
index e3fb818..e8d7bf6 100644
--- a/src/gui/chronopic.cs
+++ b/src/gui/chronopic.cs
@@ -96,7 +96,7 @@ public partial class ChronoJumpWindow
                //2 update sequence
                if(connectingSequence == connectingSequenceEnum.START)
                {
-                       if(cp2016.IsLastConnectedReal(crpDoing)) {
+                       if(cp2016.IsLastConnectedReal(crpDoing, connectNum)) {
                                connectingSequence = connectingSequenceEnum.FIRMWAREIFNEEDED;
                        } else {
                                connectingSequence = connectingSequenceEnum.CONNECTINGREAL;
diff --git a/src/gui/guiTests.cs b/src/gui/guiTests.cs
index efe0d9b..5c994cc 100644
--- a/src/gui/guiTests.cs
+++ b/src/gui/guiTests.cs
@@ -381,7 +381,7 @@ public partial class ChronoJumpWindow
                }
 
                ChronopicRegisterPort crp = 
chronopicRegister.ConnectedOfType(ChronopicRegisterPort.Types.CONTACTS);
-               if(cp2016.IsLastConnectedReal(crp)) {
+               if(cp2016.IsLastConnectedReal(crp,1)) {
                        LogB.TestEnd("chronojumpWindowTestsChronopicContactReal");
                        chronojumpWindowTestsNext();
                }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]