diff --git a/ErgometerIPR/ErgometerApplication/ErgometerTest.cs b/ErgometerIPR/ErgometerApplication/ErgometerTest.cs index 7a55eb0..019d5a7 100644 --- a/ErgometerIPR/ErgometerApplication/ErgometerTest.cs +++ b/ErgometerIPR/ErgometerApplication/ErgometerTest.cs @@ -26,6 +26,7 @@ namespace ErgometerApplication this.age = age; this.gender = gender; currentstate = state.WARMUP; + workloadnumber = 1; MainClient.ComPort.Write("SET PW 25"); } @@ -39,7 +40,7 @@ namespace ErgometerApplication List last10 = MainClient.Metingen.GetRange(MainClient.Metingen.Count - 10, 10); int max = FindMaxValue(MainClient.Metingen, x => x.HeartBeat); int min = FindMaxValue(MainClient.Metingen, x => x.HeartBeat); - if(max - min > 20) //Hartslag niet stabiel + if(max - min > 10) //Hartslag niet stabiel { return; } @@ -55,21 +56,13 @@ namespace ErgometerApplication if (MainClient.GetLastMeting().Seconds - workloadStarted > 180) { //Checken of de heartrate niet groter is dan 75%, anders stoppen - if(workloadnumber == 0) + if (workloadHearthbeat > CalculateMaximumHeartRate()) { - if(workloadHearthbeat < 80) - MainClient.ComPort.Write("SET PW 125"); - else if (workloadHearthbeat < 89) - MainClient.ComPort.Write("SET PW 100"); - else if (workloadHearthbeat < 100) - MainClient.ComPort.Write("SET PW 75"); - else if (workloadHearthbeat > 100) - MainClient.ComPort.Write("SET PW 50"); - } - else - { - MainClient.ComPort.Write((MainClient.GetLastMeting().Power + 25).ToString()); + currentstate = state.COOLINGDOWN; } + + MainClient.ComPort.Write("PW " + GetWorkloadPower(workloadnumber)); + workloadStarted = MainClient.GetLastMeting().Seconds; workloadHearthbeat = 0; workloadnumber++; @@ -87,6 +80,79 @@ namespace ErgometerApplication } } + // WORKLOAD // + + + private int GetWorkloadPower(int workload) + { + if (gender == 'V') + { + if (workloadnumber == 1) + { + if (workloadHearthbeat < 80) + return 125; + else if (workloadHearthbeat < 89) + return 100; + else if (workloadHearthbeat < 100) + return 75; + else + return 50; + } + else + { + return MainClient.GetLastMeting().Power + 25; + } + } + else if(gender == 'M') + { + if(workloadnumber == 1) + { + if (workloadHearthbeat < 90) + return 150; + else if (workloadHearthbeat < 105) + return 125; + else + return 100; + } + else if(workloadnumber == 2) + { + if(workloadHearthbeat < 120) + { + if (MainClient.GetLastMeting().Power == 150) + return 225; + else if (MainClient.GetLastMeting().Power == 125) + return 200; + else + return 175; + } + else if(workloadHearthbeat < 135) + { + if (MainClient.GetLastMeting().Power == 150) + return 200; + else if (MainClient.GetLastMeting().Power == 125) + return 175; + else + return 150; + } + else + { + if (MainClient.GetLastMeting().Power == 150) + return 175; + else if (MainClient.GetLastMeting().Power == 125) + return 150; + else + return 125; + } + } + else + { + return MainClient.GetLastMeting().Power + 25; + } + } + + return 25; + } + // HELPER FUNCTIONS //