From b58fae1cf81e2d33a279f6792b444f07b4fa63bd Mon Sep 17 00:00:00 2001 From: Janco Kock Date: Tue, 3 Nov 2015 21:53:20 +0100 Subject: [PATCH] Fixed average hearthbeat --- .../ErgometerApplication/ErgometerTest.cs | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/ErgometerIPR/ErgometerApplication/ErgometerTest.cs b/ErgometerIPR/ErgometerApplication/ErgometerTest.cs index 2e9a0a4..39f33c9 100644 --- a/ErgometerIPR/ErgometerApplication/ErgometerTest.cs +++ b/ErgometerIPR/ErgometerApplication/ErgometerTest.cs @@ -15,7 +15,6 @@ namespace ErgometerApplication private enum state {WARMUP, WORKLOAD, COOLINGDOWN, STOP}; private state currentstate; - private int currentPower; private int workloadStarted; private int workloadHearthbeat; private List workloads; @@ -36,21 +35,17 @@ namespace ErgometerApplication client.updateStepsText("U begint nu aan een warmup, probeer een tempo van 50 rpm aan te houden. De test gaat automatisch verder."); workloads = new List(); MainClient.ComPort.Write("PW 25"); - MainClient.ComPort.Read(); - currentPower = 25; + MainClient.Client.heartBeat.max = (int)CalculateMaximumHeartRate(); } public void timerTick() { - if (MainClient.GetLastMeting().Seconds > 5 && currentPower != MainClient.GetLastMeting().Power) + if(MainClient.Metingen.Count > 2 && MainClient.GetLastMeting().Power != MainClient.Metingen[MainClient.Metingen.Count - 2].Power) { - MainClient.ComPort.Write("PW " + currentPower); - MainClient.ComPort.Read(); - MainClient.QuickBeepAudio(); + MainClient.ComPort.Write("PW" + MainClient.Metingen[MainClient.Metingen.Count - 2].Power); } - switch(currentstate) { case state.WARMUP: @@ -87,12 +82,11 @@ namespace ErgometerApplication case state.WORKLOAD: if (MainClient.GetLastMeting().Seconds - workloadStarted > 180) { - currentPower = GetWorkloadPower(GetCurrentWorkload()); + int pw = GetWorkloadPower(GetCurrentWorkload()); workloads.Add(new Workload(MainClient.GetLastMeting().Power, workloadHearthbeat)); - MainClient.ComPort.Write("PW " + currentPower); - MainClient.ComPort.Read(); + MainClient.ComPort.Write("PW " + pw); - client.updateStepsText("U heeft de workload afgerond, u begint nu aan de " + NumToText(GetCurrentWorkload()) + " workload. Uw nieuwe weerstand is " + currentPower + " Watt."); + client.updateStepsText("U heeft de workload afgerond, u begint nu aan de " + NumToText(GetCurrentWorkload()) + " workload. Uw nieuwe weerstand is " + pw + " Watt."); MainClient.SwitchWorkloadAudio(); workloadStarted = MainClient.GetLastMeting().Seconds; @@ -106,16 +100,13 @@ namespace ErgometerApplication currentstate = state.COOLINGDOWN; MainClient.SwitchTestModeAudio(); client.updateStepsText("Uw hartslag heeft het kritieke punt bereikt, we beginnen nu aan de cooldown."); - MainClient.ComPort.Write("PW 25"); - MainClient.ComPort.Read(); - currentPower = 25; } } else if (MainClient.GetLastMeting().Seconds - workloadStarted > 160 && workloadHearthbeat == 0) { List last80 = MainClient.Metingen.GetRange(MainClient.Metingen.Count - 300, 300); - workloadHearthbeat = FindAverageValue(MainClient.Metingen, x => x.HeartBeat); + workloadHearthbeat = FindAverageValue(last80, x => x.HeartBeat); Console.WriteLine("2:40 gefiets, gemiddelde harstslag berekenen:" + workloadHearthbeat); client.updateStepsText("U bent nu met de " + NumToText(GetCurrentWorkload()) + " workload bezig. Uw gemiddelde hartslag is berekend als " + workloadHearthbeat + "bpm."); }