فهرست منبع

bug fixing + implementing in GUI

Bart Reedijk 10 سال پیش
والد
کامیت
0afb993ce1

+ 66 - 0
Proftaak Remote Healthcare/FietsClientV2/Forms/DoctorSessionUC.cs

@@ -7,6 +7,8 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
+using System.Windows.Forms.DataVisualization.Charting;
+using FietsLibrary.JSONObjecten;
 
 namespace FietsClient.Forms
 {
@@ -50,5 +52,69 @@ namespace FietsClient.Forms
         {
             DoctorModel.doctorModel.tcpConnection.SendStartStopSession(false, patientID);
         }
+
+        public void ClearOldSession()
+        {
+            if (InvokeRequired)
+                Invoke(new Action(() => ClearOldSession()));
+            else
+            {
+                speedPoints.Clear();
+                bpmPoints.Clear();
+                rpmPoints.Clear();
+                pulseBox.Clear();
+                rpmInfoBox.Clear();
+                speedInfoBox.Clear();
+                distanceInfoBox.Clear();
+                requestedBox.Clear();
+                energyInfoBox.Clear();
+                timeBox.Clear();
+                actualBox.Clear();
+            }
+            
+        }
+
+        private List<DataPoint> speedPoints = new List<DataPoint>();
+        private List<DataPoint> bpmPoints = new List<DataPoint>();
+        private List<DataPoint> rpmPoints = new List<DataPoint>();
+
+        public void HandleSessionBikeData(Measurement data)
+        {
+
+            if (InvokeRequired)
+            {
+                Invoke((new Action(() => HandleSessionBikeData(data))));
+            }
+            else
+            {
+                //fill fields
+                pulseBox.Text = data.pulse.ToString();
+                rpmInfoBox.Text = data.rpm.ToString();
+                speedInfoBox.Text = data.speed.ToString();
+                distanceInfoBox.Text = data.distance.ToString();
+                requestedBox.Text = data.requestedPower.ToString();
+                energyInfoBox.Text = data.energy.ToString();
+                timeBox.Text = data.time.ToString();
+                actualBox.Text = data.actualPower.ToString();
+
+                //fill graph speed
+                this.speedChart.Series[0].Points.Clear();
+                for (int i = 0; i < speedPoints.Count; i++)
+                    this.speedChart.Series[0].Points.Add(speedPoints[i]);
+                this.speedChart.Update();
+
+                //fill graph pulse
+                this.bpmChart.Series[0].Points.Clear();
+                for (int i = 0; i < bpmPoints.Count; i++)
+                    this.bpmChart.Series[0].Points.Add(bpmPoints[i]);
+                this.bpmChart.Update();
+
+                //fill graph rpm
+                this.rpmChart.Series[0].Points.Clear();
+                for (int i = 0; i < rpmPoints.Count; i++)
+                    this.rpmChart.Series[0].Points.Add(rpmPoints[i]);
+                this.rpmChart.Update();
+            }
+        }
     }
 }

+ 1 - 1
Proftaak Remote Healthcare/FietsClientV2/Forms/PatientForm.cs

@@ -250,7 +250,7 @@ namespace FietsClient
 
         private void button1_Click(object sender, EventArgs e)
         {
-            _connection.StartNewSession();
+            _connection.StartNewSession(false, _connection.currentData.GetUserID());
         }
 
         private void button2_Click(object sender, EventArgs e)

+ 34 - 10
Proftaak Remote Healthcare/FietsClientV2/TcpConnection.cs

@@ -201,11 +201,16 @@ namespace FietsClient
 
                             break;
                         case "2":
-                            dynamic DynMeasurement = JsonConvert.DeserializeObject<dynamic>(response_parts[1]);
+                            dynamic DynMeasurement = JsonConvert.DeserializeObject<dynamic>(response_parts[2].TrimEnd('\0'));
                             Measurement outputMeasurement = new Measurement((int)DynMeasurement.pulse, (int)DynMeasurement.rpm, (int)DynMeasurement.speed, (int)DynMeasurement.distance, (int)DynMeasurement.requestedPower, (int)DynMeasurement.energy, (int)DynMeasurement.actualPower, (int)DynMeasurement.time);
                             currentData.GetSessions().Last().AddMeasurement(outputMeasurement);
-                            
-                            break;
+                            Forms.DoctorSessionUC sessionUC = null;
+                            bool b = DoctorModel.doctorModel.doctorSessions.TryGetValue(response_parts[1], out sessionUC);
+                            if (b)
+                            {
+                                sessionUC.HandleSessionBikeData(outputMeasurement);
+                            }
+                                break;
                         case "3":
                             
                             
@@ -253,18 +258,25 @@ namespace FietsClient
                             }
                             break;
                         case "10":
-                            response_parts[1] = response_parts[1].TrimEnd('\0');
                             if (!currentData.isDoctor)
                             {
+                                PatientModel.patientModel.CurrentDoctorID = response_parts[3].TrimEnd('\0');
                                 if (response_parts[1] == "1")
                                 {
-                                    StartNewSession();
+                                    StartNewSession(false, currentData.GetUserID());
                                 }
                                 else if (response_parts[1] == "0")
                                 {
                                     StopSessoin();
                                 }
                             }
+                            else
+                            {
+                                if (response_parts[1] == "1") 
+                                {
+                                    StartNewSession(true, response_parts[2]);
+                                }
+                            }
                             break;
 
                     }
@@ -272,12 +284,24 @@ namespace FietsClient
             }
         }
 
-        public void StartNewSession()
+        public void StartNewSession(bool isDoctor, string PatientID)
         {
             Session session = new Session(currentData.sessions.Count + 1);
             currentData.sessions.Add(session);
-            SendNewSession();
-            PatientModel.patientModel.startAskingData();
+            if (!isDoctor)
+            {
+                SendNewSession();
+                PatientModel.patientModel.startAskingData();
+            }
+            else if(isDoctor)
+            {
+                Forms.DoctorSessionUC sessionUC = null;
+                bool b = DoctorModel.doctorModel.doctorSessions.TryGetValue(PatientID, out sessionUC);
+                if (b)
+                {
+                    sessionUC.ClearOldSession();
+                }
+            }
         }
 
         public void StopSessoin()
@@ -343,9 +367,9 @@ namespace FietsClient
 	public void SendStartStopSession(bool startstop, string PatientUsername)
         {
             if (startstop)
-                SendString("10|1|" + PatientUsername + "|");
+                SendString("10|1|" + PatientUsername + "|" + currentData.GetUserID() + "|");
             else
-                SendString("10|0|" + PatientUsername + "|");
+                SendString("10|0|" + PatientUsername + "|" + currentData.GetUserID() + "|");
             
         }
         public void SendDistance(int distance)

+ 11 - 5
Proftaak Remote Healthcare/ServerV2/AppGlobal.cs

@@ -210,7 +210,10 @@ namespace ServerV2
                         users.Add(new User(response[1], response[2], Int32.Parse(response[3]), Boolean.Parse(response[4]), Int32.Parse(response[5])));
                         break;
                     case "5":   //data pushen naar meetsessie (opslaan)
-
+                        // uitleg response[]:
+                        // response[1] = idPatient
+                        // response[2] = idCurrentDoctor
+                        // response[3] = measurement
                         // opslaan van measurement
                         currentUser = users.FirstOrDefault(item => item.id == response[1]);
                         Measurement outputMeasurement = null;
@@ -226,7 +229,7 @@ namespace ServerV2
                         if (outputMeasurement != null && response[2] != "")
                         {
                             Client Case5Client = clients.FirstOrDefault(item => item.username == response[2]);
-                            string Case5String = "2|" + JsonConvert.SerializeObject(outputMeasurement);
+                            string Case5String = "2|" + response[1] + "|" + JsonConvert.SerializeObject(outputMeasurement) + "|";
                             Communication.Send(Case5String, Case5Client.sslStream);
                         }
 
@@ -286,11 +289,14 @@ namespace ServerV2
                         if (response[1] == "1" || response[1] == "0") //start of stop sesie (met check)
                         {
                             Client Case10Client = clients.FirstOrDefault(item => item.username == response[2].TrimEnd('\0'));
-                            string Case10String = "10|" + response[1] + "|";
+                            string Case10String = "10|" + response[1] + "|" + response[2] + "|" + response[3].TrimEnd('\0') + "|";
                             Communication.Send(Case10String, Case10Client.sslStream);
+                            if (response[1] == "1")
+                            {
+                                Communication.Send("10|" + "1" + "|" + response[2] + "|" + response[3].TrimEnd('\0') + "|", sslStream);
+                            }
                         }
-                        currentUser = users.FirstOrDefault(item => item.id == response[1]);
-                        Communication.Send("10|" + "1" + currentUser.id + "|", sslStream);
+                        
                         break;
                     default:
                         break;