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"); MainClient.ComPort.Write("ST");
string response = MainClient.ComPort.Read(); string response = MainClient.ComPort.Read();
Meting m = MainClient.SaveMeting(response); if (response != "err")
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; Meting m = MainClient.SaveMeting(response);
panelGraphView.updateAllCharts(MainClient.Metingen);
}
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) if (password.Length > 0)
{ {
string error = ""; string error = "";
bool connect = MainClient.Connect(SerialPort.GetPortNames()[0], username, password, out error); bool connect = MainClient.Connect("COM3", username, password, out error);
if (connect) if (connect)
{ {
@@ -153,7 +153,17 @@ namespace ErgometerApplication
public static Meting SaveMeting(string meting) 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); Metingen.Add(m);
if (Doctor.Connected) if (Doctor.Connected)
{ {
@@ -215,25 +225,37 @@ namespace ErgometerApplication
case NetCommand.ValueType.DISTANCE: case NetCommand.ValueType.DISTANCE:
ComPort.Write("RS"); ComPort.Write("RS");
ComPort.Read(); ComPort.Read();
Thread.Sleep(500); Thread.Sleep(200);
ComPort.Write("CM");
ComPort.Read();
Thread.Sleep(700);
ComPort.Write("PD " + command.SetValue.ToString()); ComPort.Write("PD " + command.SetValue.ToString());
ComPort.Read(); ComPort.Read();
break; break;
case NetCommand.ValueType.ENERGY: case NetCommand.ValueType.ENERGY:
ComPort.Write("RS"); ComPort.Write("RS");
ComPort.Read(); ComPort.Read();
Thread.Sleep(500); Thread.Sleep(200);
ComPort.Write("CM");
ComPort.Read();
Thread.Sleep(700);
ComPort.Write("PE " + command.SetValue.ToString()); ComPort.Write("PE " + command.SetValue.ToString());
ComPort.Read(); ComPort.Read();
break; break;
case NetCommand.ValueType.POWER: case NetCommand.ValueType.POWER:
ComPort.Write("CM");
ComPort.Read();
Thread.Sleep(200);
ComPort.Write("PW " + command.SetValue.ToString()); ComPort.Write("PW " + command.SetValue.ToString());
ComPort.Read(); ComPort.Read();
break; break;
case NetCommand.ValueType.TIME: case NetCommand.ValueType.TIME:
ComPort.Write("RS"); ComPort.Write("RS");
ComPort.Read(); ComPort.Read();
Thread.Sleep(500); Thread.Sleep(200);
ComPort.Write("CM");
ComPort.Read();
Thread.Sleep(700);
string temp = (command.SetValue / 60) + ""; string temp = (command.SetValue / 60) + "";
if(temp.Length < 2) if(temp.Length < 2)
{ {