Implemented GUI (which doesn't work)

This commit is contained in:
Aareschluchtje
2015-09-07 12:41:11 +02:00
parent 5d10c18725
commit 8eb2a376e9
4 changed files with 151 additions and 15 deletions
@@ -8,9 +8,15 @@ namespace ErgometerSimulator
{
class CommandParser
{
private static Random rand = new Random();
private Random rand = new Random();
private DataGenerator dg;
public static string Parse(string input)
public CommandParser(DataGenerator dg)
{
this.dg = dg;
}
public string Parse(string input)
{
string response = "";
@@ -21,14 +27,14 @@ namespace ErgometerSimulator
response = "ACK";
break;
case "ST":
response += rand.Next(90, 140) + "\t"; //Heartbeat
response += rand.Next(20, 40) + "\t"; //RPM
response += rand.Next(50, 350) + "\t"; //Speed
response += rand.Next(10, 999) + "\t"; //Distance
response += rand.Next(25, 400) + "\t"; //Power
response += rand.Next(5, 55) + "\t"; //Energy
response += rand.Next(0, 24) + ":" + rand.Next(0, 60) + "\t"; //Time
response += rand.Next(25, 400); //ActualPower
response += dg.HeartBeat.currentvalue + "\t"; //Heartbeat
response += dg.RPM.currentvalue + "\t"; //RPM
response += dg.Speed.currentvalue + "\t"; //Speed
response += dg.Distance.currentvalue + "\t"; //Distance
response += dg.Power.currentvalue + "\t"; //Power
response += dg.Energy.currentvalue + "\t"; //Energy
response += dg.Time.currentvalue /60 + ":" + dg.Time.currentvalue % 60 + "\t"; //Time
response += dg.ActualPower.currentvalue; //ActualPower
break;
default:
break;
@@ -39,7 +39,74 @@ namespace ErgometerSimulator
//Hearbeat
if(HeartBeat.random)
{
HeartBeat.currentvalue = rand.Next(HeartBeat.value1, HeartBeat.value2);
}
else
{
HeartBeat.currentvalue = HeartBeat.value1;
}
//RPM
if (RPM.random)
{
RPM.currentvalue = rand.Next(RPM.value1, RPM.value2);
}
else
{
RPM.currentvalue = RPM.value1;
}
//Speed
if (Speed.random)
{
Speed.currentvalue = rand.Next(Speed.value1, Speed.value2);
}
else
{
Speed.currentvalue = Speed.value1;
}
//Distance
if (Distance.random)
{
Distance.currentvalue = rand.Next(Distance.value1, Distance.value2);
}
else
{
Distance.currentvalue = Distance.value1;
}
//Power
if (Power.random)
{
Power.currentvalue = rand.Next(Power.value1, Power.value2);
}
else
{
Power.currentvalue = Power.value1;
}
//Energy
if (Energy.random)
{
Energy.currentvalue = rand.Next(Energy.value1, Energy.value2);
}
else
{
Energy.currentvalue = Energy.value1;
}
//ActualPower
if (ActualPower.random)
{
ActualPower.currentvalue = rand.Next(ActualPower.value1, ActualPower.value2);
}
else
{
ActualPower.currentvalue = ActualPower.value1;
}
//Time
if (Time.random) // false = up; true = down;
{
Time.currentvalue = Time.value1 - 1;
}
else
{
Time.currentvalue = Time.value1 + 1;
}
}
}
@@ -96,9 +96,7 @@ namespace ErgometerSimulator
// ComPortBox
//
this.ComPortBox.FormattingEnabled = true;
this.ComPortBox.Items.AddRange(new object[] {
"COM8",
"COM9"});
this.ComPortBox.Items.AddRange(SerialPort.GetPortNames());
this.ComPortBox.Location = new System.Drawing.Point(15, 308);
this.ComPortBox.Name = "ComPortBox";
this.ComPortBox.Size = new System.Drawing.Size(121, 24);
@@ -144,6 +142,7 @@ namespace ErgometerSimulator
this.setHeartBeat.TabIndex = 6;
this.setHeartBeat.Text = "Set";
this.setHeartBeat.UseVisualStyleBackColor = true;
this.setHeartBeat.Click += new System.EventHandler(this.setHeartBeat_Click);
//
// setRPM
//
@@ -153,6 +152,7 @@ namespace ErgometerSimulator
this.setRPM.TabIndex = 11;
this.setRPM.Text = "Set";
this.setRPM.UseVisualStyleBackColor = true;
this.setRPM.Click += new System.EventHandler(this.setRPM_Click);
//
// text2RPM
//
@@ -194,6 +194,7 @@ namespace ErgometerSimulator
this.setSpeed.TabIndex = 16;
this.setSpeed.Text = "Set";
this.setSpeed.UseVisualStyleBackColor = true;
this.setSpeed.Click += new System.EventHandler(this.setSpeed_Click);
//
// text2Speed
//
@@ -235,6 +236,7 @@ namespace ErgometerSimulator
this.setDistance.TabIndex = 21;
this.setDistance.Text = "Set";
this.setDistance.UseVisualStyleBackColor = true;
this.setDistance.Click += new System.EventHandler(this.setDistance_Click);
//
// text2Distance
//
@@ -276,6 +278,7 @@ namespace ErgometerSimulator
this.setPower.TabIndex = 26;
this.setPower.Text = "Set";
this.setPower.UseVisualStyleBackColor = true;
this.setPower.Click += new System.EventHandler(this.setPower_Click);
//
// text2Power
//
@@ -317,6 +320,7 @@ namespace ErgometerSimulator
this.setEnergy.TabIndex = 31;
this.setEnergy.Text = "Set";
this.setEnergy.UseVisualStyleBackColor = true;
this.setEnergy.Click += new System.EventHandler(this.setEnergy_Click);
//
// text2Energy
//
@@ -358,6 +362,7 @@ namespace ErgometerSimulator
this.setActualPower.TabIndex = 36;
this.setActualPower.Text = "Set";
this.setActualPower.UseVisualStyleBackColor = true;
this.setActualPower.Click += new System.EventHandler(this.setActualPower_Click);
//
// text2ActualPower
//
@@ -16,12 +16,14 @@ namespace ErgometerSimulator
{
ComPort comPort;
DataGenerator dg;
CommandParser parser;
public ErgometerSimulator()
{
InitializeComponent();
comPort = new ComPort(this);
dg = new DataGenerator();
parser = new CommandParser(dg);
}
private void connectButton_Click(object sender, EventArgs e)
@@ -47,7 +49,7 @@ namespace ErgometerSimulator
public void ReceivedCommand(string command)
{
string response = CommandParser.Parse(command);
string response = parser.Parse(command);
string display = command + " :_: " + response;
Console.WriteLine(display);
comPort.Write(response);
@@ -57,5 +59,61 @@ namespace ErgometerSimulator
{
dg.Update();
}
private void setHeartBeat_Click(object sender, EventArgs e)
{
if(text1HeartBeat.Text != "" && text2HeartBeat.Text != "")
{
dg.HeartBeat = new ValueSetting(randomHeartBeat.Checked, int.Parse(text1HeartBeat.Text), int.Parse(text2HeartBeat.Text));
}
}
private void setRPM_Click(object sender, EventArgs e)
{
if (text1RPM.Text != "" && text2RPM.Text != "")
{
dg.RPM = new ValueSetting(randomRPM.Checked, int.Parse(text1RPM.Text), int.Parse(text2RPM.Text));
}
}
private void setSpeed_Click(object sender, EventArgs e)
{
if (text1Speed.Text != "" && text2Speed.Text != "")
{
dg.Speed = new ValueSetting(randomSpeed.Checked, int.Parse(text1Speed.Text), int.Parse(text2Speed.Text));
}
}
private void setDistance_Click(object sender, EventArgs e)
{
if (text1Distance.Text != "" && text2Distance.Text != "")
{
dg.Distance = new ValueSetting(randomDistance.Checked, int.Parse(text1Distance.Text), int.Parse(text2Distance.Text));
}
}
private void setPower_Click(object sender, EventArgs e)
{
if (text1Power.Text != "" && text2Power.Text != "")
{
dg.Power = new ValueSetting(randomPower.Checked, int.Parse(text1Power.Text), int.Parse(text2Power.Text));
}
}
private void setEnergy_Click(object sender, EventArgs e)
{
if (text1Energy.Text != "" && text2Energy.Text != "")
{
dg.Energy = new ValueSetting(randomEnergy.Checked, int.Parse(text1Energy.Text), int.Parse(text2Energy.Text));
}
}
private void setActualPower_Click(object sender, EventArgs e)
{
if (text1ActualPower.Text != "" && text2ActualPower.Text != "")
{
dg.ActualPower = new ValueSetting(randomActualPower.Checked, int.Parse(text1ActualPower.Text), int.Parse(text2ActualPower.Text));
}
}
}
}