Fixed comport interaction with ergometer

This commit is contained in:
2015-10-20 17:06:27 +02:00
parent 592be09b12
commit 87ef3a7b39
4 changed files with 45 additions and 20 deletions
@@ -36,23 +36,26 @@ namespace ErgometerApplication
{
MainClient.ComPort.Write("ST");
string response = MainClient.ComPort.Read();
Meting m = MainClient.SaveMeting(response);
heartBeat.updateValue(m.HeartBeat);
RPM.updateValue(m.RPM);
speed.updateValue(m.Speed);
distance.updateValue(m.Distance);
power.updateValue(m.Power);
energy.updateValue(m.Energy);
actualpower.updateValue(m.ActualPower);
if(count >= 10)
if (response != "err")
{
count = 0;
panelGraphView.updateAllCharts(MainClient.Metingen);
}
Meting m = MainClient.SaveMeting(response);
count++;
heartBeat.updateValue(m.HeartBeat);
RPM.updateValue(m.RPM);
speed.updateValue(m.Speed);
distance.updateValue(m.Distance);
power.updateValue(m.Power);
energy.updateValue(m.Energy);
actualpower.updateValue(m.ActualPower);
if (count >= 10)
{
count = 0;
panelGraphView.updateAllCharts(MainClient.Metingen);
}
count++;
}
}
}
@@ -69,7 +72,7 @@ namespace ErgometerApplication
if (password.Length > 0)
{
string error = "";
bool connect = MainClient.Connect(SerialPort.GetPortNames()[0], username, password, out error);
bool connect = MainClient.Connect("COM3", username, password, out error);
if (connect)
{
@@ -153,7 +153,17 @@ namespace ErgometerApplication
public static Meting SaveMeting(string meting)
{
Meting m = Meting.Parse(meting);
Meting m = null;
try
{
m = Meting.Parse(meting);
}
catch(Exception e)
{
return new Meting(0, 0, 0, 0, 0, 0, 0, 0, 0);
}
Metingen.Add(m);
if (Doctor.Connected)
{
@@ -215,25 +225,37 @@ namespace ErgometerApplication
case NetCommand.ValueType.DISTANCE:
ComPort.Write("RS");
ComPort.Read();
Thread.Sleep(500);
Thread.Sleep(200);
ComPort.Write("CM");
ComPort.Read();
Thread.Sleep(700);
ComPort.Write("PD " + command.SetValue.ToString());
ComPort.Read();
break;
case NetCommand.ValueType.ENERGY:
ComPort.Write("RS");
ComPort.Read();
Thread.Sleep(500);
Thread.Sleep(200);
ComPort.Write("CM");
ComPort.Read();
Thread.Sleep(700);
ComPort.Write("PE " + command.SetValue.ToString());
ComPort.Read();
break;
case NetCommand.ValueType.POWER:
ComPort.Write("CM");
ComPort.Read();
Thread.Sleep(200);
ComPort.Write("PW " + command.SetValue.ToString());
ComPort.Read();
break;
case NetCommand.ValueType.TIME:
ComPort.Write("RS");
ComPort.Read();
Thread.Sleep(500);
Thread.Sleep(200);
ComPort.Write("CM");
ComPort.Read();
Thread.Sleep(700);
string temp = (command.SetValue / 60) + "";
if(temp.Length < 2)
{