Bart Reedijk 10 years ago
parent
commit
2cb20b0ccc

+ 17 - 31
Proftaak Remote Healthcare/FietsClientV2/DataHandler.cs

@@ -4,6 +4,7 @@ using System.IO.Ports;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using System.Windows.Forms;
 
 namespace FietsClientV2
 {
@@ -64,20 +65,26 @@ namespace FietsClientV2
         public void initComm(string portname)
         {
             if (ComPort != null)
+            {
                 ComPort.Close();
+                state = State.notConnected;
+            }
 
             this.portname = portname;
             try
             {
                 ComPort = new SerialPort(this.portname, this.baudrate);
                 ComPort.Open();
+                state = State.connected;
                 ComPort.WriteLine(RESET);
+                state = State.reset;
                 ComPort.DataReceived += new SerialDataReceivedEventHandler(ComPort_DataReceived);
             }
             catch (Exception)
             {
                 OnIncomingDebugLineEvent("ERROR: Exception throwed");
                 try { ComPort.Close(); } catch (Exception) { } // probeer om de ComPort wel te sluiten.
+                state = State.notConnected;
             }
 
 
@@ -133,24 +140,31 @@ namespace FietsClientV2
             OnIncomingDataEvent(bufferIn);
         }
 
-        private bool checkBikeState()
+        public bool checkBikeState(bool commandMode)
         {
+            if (ComPort == null)
+            {
+                return false;
+            }
             switch (state)
             {
                 case State.reset:
-                    setCommandMode();
+                    if (commandMode) setCommandMode();
                     if (returnData != ReturnData.ERROR)
                         return true;
                     return false;
                 case State.connected:
-                    setCommandMode();
+                    if (commandMode) setCommandMode();
                     return true;
                 case State.command:
                     return true;
                 case State.notConnected:
+                    MessageBox.Show("ERROR: not connected to bike.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     Console.WriteLine("ERROR: not connected to bike.");
                     return false;
                 default:
+                    MessageBox.Show("ERROR: unknown error.", "ËRROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                    Console.WriteLine("ERROR: unknown error.");
                     return false;
             }
         }
@@ -159,33 +173,5 @@ namespace FietsClientV2
         {
             sendData(COMMAND);
         }
-
-        public void setTime()
-        {
-            if (!checkBikeState())
-                return;
-            sendData(CMD_TIME);
-        }
-
-        public void setDistance()
-        {
-            if (!checkBikeState())
-                return;
-            sendData(CMD_DISTANCE);
-        }
-
-        public void setPower()
-        {
-            if (!checkBikeState())
-                return;
-            sendData(CMD_POWER);
-        }
-
-        public void setEnergy()
-        {
-            if (!checkBikeState())
-                return;
-            sendData(CMD_ENERGY);
-        }
     }
 }

+ 4 - 0
Proftaak Remote Healthcare/FietsClientV2/PatientModel.cs

@@ -74,24 +74,28 @@ namespace FietsClientV2
         //change bike values
         public void setTimeMode(string time)
         {
+            if (!dataHandler.checkBikeState(false)) return;
             dataHandler.sendData("CM");
             dataHandler.sendData("PT " + time);
         }
 
         public void setPower(string power)
         {
+            if (!dataHandler.checkBikeState(false)) return;
             dataHandler.sendData("CM");
             dataHandler.sendData("PW " + power);
         }
 
         public void setDistanceMode(string distance)
         {
+            if (!dataHandler.checkBikeState(false)) return;
             dataHandler.sendData("CM");
             dataHandler.sendData("PD " + distance);
         }
 
         public void reset()
         {
+            if (!dataHandler.checkBikeState(false)) return;
             dataHandler.sendData("RS");
         }
     }