This commit is contained in:
2015-11-03 22:56:14 +01:00
parent 7a959b13d9
commit aca222c817
@@ -19,6 +19,8 @@ namespace ErgometerApplication
private int workloadHearthbeat;
private List<Workload> workloads;
private int currentPower;
private int deviation;
private bool failed;
@@ -42,15 +44,17 @@ namespace ErgometerApplication
workloads = new List<Workload>();
MainClient.ComPort.Write("PW 25");
MainClient.ComPort.Read();
currentPower = 25;
MainClient.Client.heartBeat.max = (int)CalculateMaximumHeartRate();
}
public void timerTick()
{
if(MainClient.Metingen.Count > 2 && MainClient.GetLastMeting().Power != MainClient.Metingen[MainClient.Metingen.Count - 2].Power)
if (MainClient.GetLastMeting().Seconds > 5 && currentPower != MainClient.GetLastMeting().Power)
{
MainClient.ComPort.Write("PW " + MainClient.Metingen[MainClient.Metingen.Count - 2].Power);
MainClient.ComPort.Write("PW " + currentPower);
MainClient.ComPort.Read();
MainClient.QuickBeepAudio();
}
if (MainClient.GetLastMeting().RPM < 45 || MainClient.GetLastMeting().RPM > 55)
@@ -67,6 +71,7 @@ namespace ErgometerApplication
failed = true;
MainClient.ComPort.Write("PW 25");
MainClient.ComPort.Read();
currentPower = 25;
}
switch(currentstate)
@@ -105,11 +110,11 @@ namespace ErgometerApplication
case state.WORKLOAD:
if (MainClient.GetLastMeting().Seconds - workloadStarted > 180)
{
int pw = GetWorkloadPower(GetCurrentWorkload());
currentPower = GetWorkloadPower(GetCurrentWorkload());
workloads.Add(new Workload(MainClient.GetLastMeting().Power, workloadHearthbeat));
MainClient.ComPort.Write("PW " + pw);
MainClient.ComPort.Write("PW " + currentPower);
MainClient.ComPort.Read();
client.updateStepsText("U heeft de workload afgerond, u begint nu aan de " + NumToText(GetCurrentWorkload()) + " workload. Uw nieuwe weerstand is " + pw + " Watt.");
client.updateStepsText("U heeft de workload afgerond, u begint nu aan de " + NumToText(GetCurrentWorkload()) + " workload. Uw nieuwe weerstand is " + currentPower + " Watt.");
MainClient.SwitchWorkloadAudio();
workloadStarted = MainClient.GetLastMeting().Seconds;
@@ -125,12 +130,13 @@ namespace ErgometerApplication
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<ErgometerLibrary.Meting> last200 = MainClient.Metingen.GetRange(MainClient.Metingen.Count - 200, 200);
workloadHearthbeat = FindAverageValue(last200, x => x.HeartBeat);
List<ErgometerLibrary.Meting> last150 = MainClient.Metingen.GetRange(MainClient.Metingen.Count - 150, 150);
workloadHearthbeat = FindAverageValue(last150, 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.");
}
@@ -156,6 +162,7 @@ namespace ErgometerApplication
MainClient.Client.beeptimer.Stop();
MainClient.ComPort.Write("RS");
MainClient.ComPort.Read();
currentPower = 0;
if(failed)
{
MainClient.Client.updateStepsText("De test is mislukt omdat u te vaak heeft afgeweken van 50rpm. Onze excuses voor het ongemak.");