diff --git a/ErgometerIPR/ErgometerApplication/ClientApplicatie.Designer.cs b/ErgometerIPR/ErgometerApplication/ClientApplicatie.Designer.cs index 39264a1..2ab74b6 100644 --- a/ErgometerIPR/ErgometerApplication/ClientApplicatie.Designer.cs +++ b/ErgometerIPR/ErgometerApplication/ClientApplicatie.Designer.cs @@ -155,8 +155,8 @@ namespace ErgometerApplication // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(700, 500); - this.MinimumSize = new System.Drawing.Size(550, 550); + this.ClientSize = new System.Drawing.Size(700, 550); + this.MinimumSize = new System.Drawing.Size(700, 550); this.Controls.Add(this.panelTopBar); this.Controls.Add(this.panelLogin); this.Controls.Add(this.panelGatherInfo); diff --git a/ErgometerIPR/ErgometerApplication/ClientApplicatie.cs b/ErgometerIPR/ErgometerApplication/ClientApplicatie.cs index b824e7f..ab5f1b5 100644 --- a/ErgometerIPR/ErgometerApplication/ClientApplicatie.cs +++ b/ErgometerIPR/ErgometerApplication/ClientApplicatie.cs @@ -102,12 +102,12 @@ namespace ErgometerApplication steps.setText(text); } - internal void CreateNewTest(char geslacht, int leeftijd, int gewicht, int lengte) + public void CreateNewTest(char geslacht, int leeftijd, int gewicht, int lengte) { panelTopBar.Visible = true; panelClientContainer.BringToFront(); chat = panelClientChat; - ergotest = new ErgometerTest(gewicht, lengte, leeftijd, geslacht); + ergotest = new ErgometerTest(gewicht, lengte, leeftijd, geslacht, this); MainClient.ComPort.Write("RS"); MainClient.ComPort.Read(); Thread.Sleep(200); diff --git a/ErgometerIPR/ErgometerApplication/ErgometerTest.cs b/ErgometerIPR/ErgometerApplication/ErgometerTest.cs index 019d5a7..22b2ccc 100644 --- a/ErgometerIPR/ErgometerApplication/ErgometerTest.cs +++ b/ErgometerIPR/ErgometerApplication/ErgometerTest.cs @@ -19,7 +19,9 @@ namespace ErgometerApplication private int workloadHearthbeat; private int workloadnumber; - public ErgometerTest(int weight, int length , int age, char gender) + private ClientApplicatie client; + + public ErgometerTest(int weight, int length , int age, char gender, ClientApplicatie client) { this.weight = weight; this.length = length; @@ -27,7 +29,9 @@ namespace ErgometerApplication this.gender = gender; currentstate = state.WARMUP; workloadnumber = 1; - MainClient.ComPort.Write("SET PW 25"); + this.client = client; + client.updateStepsText("U begint nu aan een warmup, probeer een tempo van 50 rpm aan te houden. De test gaat automatisch verder."); + MainClient.ComPort.Write("PW 25"); } public void timerTick() @@ -42,13 +46,14 @@ namespace ErgometerApplication int min = FindMaxValue(MainClient.Metingen, x => x.HeartBeat); if(max - min > 10) //Hartslag niet stabiel { + client.updateStepsText("Uw hartslag is not niet stabiel, probeer een tempo van 50 rpm aan te houden. De test gaat automatisch verder."); return; } else { currentstate = state.WORKLOAD; workloadStarted = MainClient.GetLastMeting().Seconds; - Console.WriteLine("Warmup is goed, hartslag stabiel, ga naar workload test"); + client.updateStepsText("De warmup is voltooid. U begint nu aan de " + NumToText(workloadnumber) + " workload."); } } break; @@ -59,9 +64,13 @@ namespace ErgometerApplication if (workloadHearthbeat > CalculateMaximumHeartRate()) { currentstate = state.COOLINGDOWN; + client.updateStepsText("Uw hartslag heeft het kritieke punt bereikt, we beginnen nu aan de cooldown."); } - MainClient.ComPort.Write("PW " + GetWorkloadPower(workloadnumber)); + int pw = GetWorkloadPower(workloadnumber); + MainClient.ComPort.Write("PW " + pw); + + client.updateStepsText("U heeft de workload afgerond, u begint nu aan de " + NumToText(workloadnumber) + " workload. Uw nieuwe weerstand is " + pw + " Watt."); workloadStarted = MainClient.GetLastMeting().Seconds; workloadHearthbeat = 0; @@ -73,6 +82,11 @@ namespace ErgometerApplication List last80 = MainClient.Metingen.GetRange(MainClient.Metingen.Count - 80, 80); workloadHearthbeat = FindAvergeValue(MainClient.Metingen, x => x.HeartBeat); Console.WriteLine("2:40 gefiets, gemiddelde harstslag berekenen:" + workloadHearthbeat); + client.updateStepsText("U bent nu met de " + NumToText(workloadnumber) + " workload bezig. Uw gemiddelde hartslag is berekend als " + workloadHearthbeat + "bpm."); + } + else if(MainClient.GetLastMeting().Seconds - workloadStarted > 8 && MainClient.GetLastMeting().Seconds - workloadStarted < 10) + { + client.updateStepsText("U bent nu met de " + NumToText(workloadnumber) + " workload bezig. De fiets staat nu ingesteld op " + MainClient.GetLastMeting().Power + " Watt"); } break; case state.COOLINGDOWN: @@ -210,5 +224,32 @@ namespace ErgometerApplication } return totalvalue / list.Count; } + + public string NumToText(int num) + { + switch(num) + { + case 1: + return "eerste"; + case 2: + return "tweede"; + case 3: + return "derde"; + case 4: + return "vierde"; + case 5: + return "vijfde"; + case 6: + return "zesde"; + case 7: + return "zevende"; + case 8: + return "achste"; + case 9: + return "negende"; + default: + return "volgende"; + } + } } } diff --git a/ErgometerIPR/ErgometerApplication/MainClient.cs b/ErgometerIPR/ErgometerApplication/MainClient.cs index 06795c5..a2c6f44 100644 --- a/ErgometerIPR/ErgometerApplication/MainClient.cs +++ b/ErgometerIPR/ErgometerApplication/MainClient.cs @@ -176,7 +176,10 @@ namespace ErgometerApplication public static Meting GetLastMeting() { - return Metingen.Last(); + if (Metingen.Count > 1) + return Metingen.Last(); + else + return new Meting(0, 0, 0, 0, 0, 0, 0, 0, 0); } public static void run() diff --git a/ErgometerIPR/ErgometerDoctorApplication/Client/SessionWindow.Designer.cs b/ErgometerIPR/ErgometerDoctorApplication/Client/SessionWindow.Designer.cs index ea6d16c..7477f25 100644 --- a/ErgometerIPR/ErgometerDoctorApplication/Client/SessionWindow.Designer.cs +++ b/ErgometerIPR/ErgometerDoctorApplication/Client/SessionWindow.Designer.cs @@ -133,6 +133,7 @@ namespace ErgometerDoctorApplication this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(800, 600); + this.MinimumSize = new System.Drawing.Size(700, 550); this.Controls.Add(this.panelTopBar); this.Controls.Add(this.panelClientContainer); this.Name = "SessionWindow";