Complete version 1

This commit is contained in:
2015-09-07 13:30:06 +02:00
parent 8eb2a376e9
commit beda8c50e2
5 changed files with 294 additions and 26 deletions
@@ -33,7 +33,7 @@ namespace ErgometerSimulator
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.Time.currentvalue/60) + ":" + (dg.Time.currentvalue%60) + "\t"; //Time
response += dg.ActualPower.currentvalue; //ActualPower
break;
default:
@@ -19,6 +19,8 @@ namespace ErgometerSimulator
public ValueSetting ActualPower { get; set; }
public ValueSetting Time { get; set; }
private double lastTime;
public DataGenerator()
{
rand = new Random();
@@ -30,6 +32,8 @@ namespace ErgometerSimulator
Energy = new ValueSetting(false, 0, 0);
ActualPower = new ValueSetting(false, 0, 0);
Time = new ValueSetting(false, 0, 0);
lastTime = (DateTime.Now - DateTime.Parse("1/1/1870 0:0:0")).TotalMilliseconds;
}
@@ -100,13 +104,24 @@ namespace ErgometerSimulator
ActualPower.currentvalue = ActualPower.value1;
}
//Time
if (Time.random) // false = up; true = down;
if ((DateTime.Now - DateTime.Parse("1/1/1870 0:0:0")).TotalMilliseconds - lastTime > 1000)
{
Time.currentvalue = Time.value1 - 1;
}
else
{
Time.currentvalue = Time.value1 + 1;
if (Time.random) // false = up; true = down;
{
if (Time.value1 - 1 <= 0)
Time.value1 = 0;
else
Time.value1 = Time.value1 - 1;
Time.currentvalue = Time.value1;
}
else
{
Time.value1 = Time.value1 + 1;
Time.currentvalue = Time.value1;
}
lastTime = (DateTime.Now - DateTime.Parse("1/1/1870 0:0:0")).TotalMilliseconds;
}
}
}
@@ -96,7 +96,9 @@ namespace ErgometerSimulator
// ComPortBox
//
this.ComPortBox.FormattingEnabled = true;
this.ComPortBox.Items.AddRange(SerialPort.GetPortNames());
this.ComPortBox.Items.AddRange(new object[] {
"COM8",
"COM9"});
this.ComPortBox.Location = new System.Drawing.Point(15, 308);
this.ComPortBox.Name = "ComPortBox";
this.ComPortBox.Size = new System.Drawing.Size(121, 24);
@@ -114,14 +116,17 @@ namespace ErgometerSimulator
// randomHeartBeat
//
this.randomHeartBeat.AutoSize = true;
this.randomHeartBeat.Enabled = false;
this.randomHeartBeat.Location = new System.Drawing.Point(114, 28);
this.randomHeartBeat.Name = "randomHeartBeat";
this.randomHeartBeat.Size = new System.Drawing.Size(18, 17);
this.randomHeartBeat.TabIndex = 3;
this.randomHeartBeat.UseVisualStyleBackColor = true;
this.randomHeartBeat.CheckedChanged += new System.EventHandler(this.randomHeartBeat_CheckedChanged);
//
// text1HeartBeat
//
this.text1HeartBeat.Enabled = false;
this.text1HeartBeat.Location = new System.Drawing.Point(151, 24);
this.text1HeartBeat.Name = "text1HeartBeat";
this.text1HeartBeat.Size = new System.Drawing.Size(100, 22);
@@ -129,6 +134,7 @@ namespace ErgometerSimulator
//
// text2HeartBeat
//
this.text2HeartBeat.Enabled = false;
this.text2HeartBeat.Location = new System.Drawing.Point(257, 24);
this.text2HeartBeat.Name = "text2HeartBeat";
this.text2HeartBeat.Size = new System.Drawing.Size(100, 22);
@@ -136,6 +142,7 @@ namespace ErgometerSimulator
//
// setHeartBeat
//
this.setHeartBeat.Enabled = false;
this.setHeartBeat.Location = new System.Drawing.Point(363, 24);
this.setHeartBeat.Name = "setHeartBeat";
this.setHeartBeat.Size = new System.Drawing.Size(75, 23);
@@ -146,6 +153,7 @@ namespace ErgometerSimulator
//
// setRPM
//
this.setRPM.Enabled = false;
this.setRPM.Location = new System.Drawing.Point(363, 50);
this.setRPM.Name = "setRPM";
this.setRPM.Size = new System.Drawing.Size(75, 23);
@@ -156,6 +164,7 @@ namespace ErgometerSimulator
//
// text2RPM
//
this.text2RPM.Enabled = false;
this.text2RPM.Location = new System.Drawing.Point(257, 50);
this.text2RPM.Name = "text2RPM";
this.text2RPM.Size = new System.Drawing.Size(100, 22);
@@ -163,6 +172,7 @@ namespace ErgometerSimulator
//
// text1RPM
//
this.text1RPM.Enabled = false;
this.text1RPM.Location = new System.Drawing.Point(151, 50);
this.text1RPM.Name = "text1RPM";
this.text1RPM.Size = new System.Drawing.Size(100, 22);
@@ -171,11 +181,13 @@ namespace ErgometerSimulator
// randomRPM
//
this.randomRPM.AutoSize = true;
this.randomRPM.Enabled = false;
this.randomRPM.Location = new System.Drawing.Point(114, 54);
this.randomRPM.Name = "randomRPM";
this.randomRPM.Size = new System.Drawing.Size(18, 17);
this.randomRPM.TabIndex = 8;
this.randomRPM.UseVisualStyleBackColor = true;
this.randomRPM.CheckedChanged += new System.EventHandler(this.randomRPM_CheckedChanged);
//
// labelRPM
//
@@ -188,6 +200,7 @@ namespace ErgometerSimulator
//
// setSpeed
//
this.setSpeed.Enabled = false;
this.setSpeed.Location = new System.Drawing.Point(363, 78);
this.setSpeed.Name = "setSpeed";
this.setSpeed.Size = new System.Drawing.Size(75, 23);
@@ -198,6 +211,7 @@ namespace ErgometerSimulator
//
// text2Speed
//
this.text2Speed.Enabled = false;
this.text2Speed.Location = new System.Drawing.Point(257, 78);
this.text2Speed.Name = "text2Speed";
this.text2Speed.Size = new System.Drawing.Size(100, 22);
@@ -205,6 +219,7 @@ namespace ErgometerSimulator
//
// text1Speed
//
this.text1Speed.Enabled = false;
this.text1Speed.Location = new System.Drawing.Point(151, 78);
this.text1Speed.Name = "text1Speed";
this.text1Speed.Size = new System.Drawing.Size(100, 22);
@@ -213,11 +228,13 @@ namespace ErgometerSimulator
// randomSpeed
//
this.randomSpeed.AutoSize = true;
this.randomSpeed.Enabled = false;
this.randomSpeed.Location = new System.Drawing.Point(114, 82);
this.randomSpeed.Name = "randomSpeed";
this.randomSpeed.Size = new System.Drawing.Size(18, 17);
this.randomSpeed.TabIndex = 13;
this.randomSpeed.UseVisualStyleBackColor = true;
this.randomSpeed.CheckedChanged += new System.EventHandler(this.randomSpeed_CheckedChanged);
//
// labelSpeed
//
@@ -230,6 +247,7 @@ namespace ErgometerSimulator
//
// setDistance
//
this.setDistance.Enabled = false;
this.setDistance.Location = new System.Drawing.Point(363, 108);
this.setDistance.Name = "setDistance";
this.setDistance.Size = new System.Drawing.Size(75, 23);
@@ -240,6 +258,7 @@ namespace ErgometerSimulator
//
// text2Distance
//
this.text2Distance.Enabled = false;
this.text2Distance.Location = new System.Drawing.Point(257, 108);
this.text2Distance.Name = "text2Distance";
this.text2Distance.Size = new System.Drawing.Size(100, 22);
@@ -247,6 +266,7 @@ namespace ErgometerSimulator
//
// text1Distance
//
this.text1Distance.Enabled = false;
this.text1Distance.Location = new System.Drawing.Point(151, 108);
this.text1Distance.Name = "text1Distance";
this.text1Distance.Size = new System.Drawing.Size(100, 22);
@@ -255,11 +275,13 @@ namespace ErgometerSimulator
// randomDistance
//
this.randomDistance.AutoSize = true;
this.randomDistance.Enabled = false;
this.randomDistance.Location = new System.Drawing.Point(114, 112);
this.randomDistance.Name = "randomDistance";
this.randomDistance.Size = new System.Drawing.Size(18, 17);
this.randomDistance.TabIndex = 18;
this.randomDistance.UseVisualStyleBackColor = true;
this.randomDistance.CheckedChanged += new System.EventHandler(this.randomDistance_CheckedChanged);
//
// labelDistance
//
@@ -272,6 +294,7 @@ namespace ErgometerSimulator
//
// setPower
//
this.setPower.Enabled = false;
this.setPower.Location = new System.Drawing.Point(363, 137);
this.setPower.Name = "setPower";
this.setPower.Size = new System.Drawing.Size(75, 23);
@@ -282,6 +305,7 @@ namespace ErgometerSimulator
//
// text2Power
//
this.text2Power.Enabled = false;
this.text2Power.Location = new System.Drawing.Point(257, 137);
this.text2Power.Name = "text2Power";
this.text2Power.Size = new System.Drawing.Size(100, 22);
@@ -289,6 +313,7 @@ namespace ErgometerSimulator
//
// text1Power
//
this.text1Power.Enabled = false;
this.text1Power.Location = new System.Drawing.Point(151, 137);
this.text1Power.Name = "text1Power";
this.text1Power.Size = new System.Drawing.Size(100, 22);
@@ -297,11 +322,13 @@ namespace ErgometerSimulator
// randomPower
//
this.randomPower.AutoSize = true;
this.randomPower.Enabled = false;
this.randomPower.Location = new System.Drawing.Point(114, 141);
this.randomPower.Name = "randomPower";
this.randomPower.Size = new System.Drawing.Size(18, 17);
this.randomPower.TabIndex = 23;
this.randomPower.UseVisualStyleBackColor = true;
this.randomPower.CheckedChanged += new System.EventHandler(this.randomPower_CheckedChanged);
//
// labelPower
//
@@ -314,6 +341,7 @@ namespace ErgometerSimulator
//
// setEnergy
//
this.setEnergy.Enabled = false;
this.setEnergy.Location = new System.Drawing.Point(363, 166);
this.setEnergy.Name = "setEnergy";
this.setEnergy.Size = new System.Drawing.Size(75, 23);
@@ -324,6 +352,7 @@ namespace ErgometerSimulator
//
// text2Energy
//
this.text2Energy.Enabled = false;
this.text2Energy.Location = new System.Drawing.Point(257, 166);
this.text2Energy.Name = "text2Energy";
this.text2Energy.Size = new System.Drawing.Size(100, 22);
@@ -331,6 +360,7 @@ namespace ErgometerSimulator
//
// text1Energy
//
this.text1Energy.Enabled = false;
this.text1Energy.Location = new System.Drawing.Point(151, 166);
this.text1Energy.Name = "text1Energy";
this.text1Energy.Size = new System.Drawing.Size(100, 22);
@@ -339,11 +369,13 @@ namespace ErgometerSimulator
// randomEnergy
//
this.randomEnergy.AutoSize = true;
this.randomEnergy.Enabled = false;
this.randomEnergy.Location = new System.Drawing.Point(114, 170);
this.randomEnergy.Name = "randomEnergy";
this.randomEnergy.Size = new System.Drawing.Size(18, 17);
this.randomEnergy.TabIndex = 28;
this.randomEnergy.UseVisualStyleBackColor = true;
this.randomEnergy.CheckedChanged += new System.EventHandler(this.randomEnergy_CheckedChanged);
//
// labelEnergy
//
@@ -356,6 +388,7 @@ namespace ErgometerSimulator
//
// setActualPower
//
this.setActualPower.Enabled = false;
this.setActualPower.Location = new System.Drawing.Point(363, 196);
this.setActualPower.Name = "setActualPower";
this.setActualPower.Size = new System.Drawing.Size(75, 23);
@@ -366,6 +399,7 @@ namespace ErgometerSimulator
//
// text2ActualPower
//
this.text2ActualPower.Enabled = false;
this.text2ActualPower.Location = new System.Drawing.Point(257, 196);
this.text2ActualPower.Name = "text2ActualPower";
this.text2ActualPower.Size = new System.Drawing.Size(100, 22);
@@ -373,6 +407,7 @@ namespace ErgometerSimulator
//
// text1ActualPower
//
this.text1ActualPower.Enabled = false;
this.text1ActualPower.Location = new System.Drawing.Point(151, 196);
this.text1ActualPower.Name = "text1ActualPower";
this.text1ActualPower.Size = new System.Drawing.Size(100, 22);
@@ -381,11 +416,13 @@ namespace ErgometerSimulator
// randomActualPower
//
this.randomActualPower.AutoSize = true;
this.randomActualPower.Enabled = false;
this.randomActualPower.Location = new System.Drawing.Point(114, 200);
this.randomActualPower.Name = "randomActualPower";
this.randomActualPower.Size = new System.Drawing.Size(18, 17);
this.randomActualPower.TabIndex = 33;
this.randomActualPower.UseVisualStyleBackColor = true;
this.randomActualPower.CheckedChanged += new System.EventHandler(this.randomActualPower_CheckedChanged);
//
// labelActualPower
//
@@ -398,15 +435,18 @@ namespace ErgometerSimulator
//
// setTime
//
this.setTime.Enabled = false;
this.setTime.Location = new System.Drawing.Point(363, 262);
this.setTime.Name = "setTime";
this.setTime.Size = new System.Drawing.Size(75, 23);
this.setTime.TabIndex = 41;
this.setTime.Text = "Set";
this.setTime.UseVisualStyleBackColor = true;
this.setTime.Click += new System.EventHandler(this.setTime_Click);
//
// text1Time
//
this.text1Time.Enabled = false;
this.text1Time.Location = new System.Drawing.Point(151, 262);
this.text1Time.Name = "text1Time";
this.text1Time.Size = new System.Drawing.Size(101, 22);
@@ -415,6 +455,7 @@ namespace ErgometerSimulator
// countTime
//
this.countTime.AutoSize = true;
this.countTime.Enabled = false;
this.countTime.Location = new System.Drawing.Point(77, 263);
this.countTime.Name = "countTime";
this.countTime.Size = new System.Drawing.Size(65, 21);
@@ -33,7 +33,8 @@ namespace ErgometerSimulator
if (comPort.Connect(ComPortBox.Text))
{
connectButton.Text = "Disconnect";
ComPortBox.Enabled = false;
ToggleAllComponents(true);
updateTimer.Start();
}
}
else
@@ -41,8 +42,8 @@ namespace ErgometerSimulator
if (comPort.Disconnect())
{
connectButton.Text = "Connect";
ComPortBox.Enabled = true;
ToggleAllComponents(false);
updateTimer.Stop();
}
}
}
@@ -57,62 +58,263 @@ namespace ErgometerSimulator
private void updateTimer_Tick(object sender, EventArgs e)
{
labelCurrentTime.Text = dg.Time.currentvalue / 60 + ":" + dg.Time.currentvalue % 60;
dg.Update();
}
private void setHeartBeat_Click(object sender, EventArgs e)
{
if(text1HeartBeat.Text != "" && text2HeartBeat.Text != "")
if(text1HeartBeat.Text != "" && (text2HeartBeat.Text != "" || !randomHeartBeat.Checked))
{
dg.HeartBeat = new ValueSetting(randomHeartBeat.Checked, int.Parse(text1HeartBeat.Text), int.Parse(text2HeartBeat.Text));
dg.HeartBeat = new ValueSetting(randomHeartBeat.Checked, int.Parse(text1HeartBeat.Text), (text2HeartBeat.Enabled ? int.Parse(text2HeartBeat.Text) : 0));
text1HeartBeat.Text = "";
text2HeartBeat.Text = "";
}
}
private void setRPM_Click(object sender, EventArgs e)
{
if (text1RPM.Text != "" && text2RPM.Text != "")
if (text1RPM.Text != "" && (text2RPM.Text != "" || !randomRPM.Checked))
{
dg.RPM = new ValueSetting(randomRPM.Checked, int.Parse(text1RPM.Text), int.Parse(text2RPM.Text));
dg.RPM = new ValueSetting(randomRPM.Checked, int.Parse(text1RPM.Text), (text2RPM.Enabled ? int.Parse(text2RPM.Text) : 0));
text1RPM.Text = "";
text2RPM.Text = "";
}
}
private void setSpeed_Click(object sender, EventArgs e)
{
if (text1Speed.Text != "" && text2Speed.Text != "")
if (text1Speed.Text != "" && (text2Speed.Text != "" || !randomSpeed.Checked))
{
dg.Speed = new ValueSetting(randomSpeed.Checked, int.Parse(text1Speed.Text), int.Parse(text2Speed.Text));
dg.Speed = new ValueSetting(randomSpeed.Checked, int.Parse(text1Speed.Text), (text2Speed.Enabled ? int.Parse(text2Speed.Text) : 0));
text1Speed.Text = "";
text2Speed.Text = "";
}
}
private void setDistance_Click(object sender, EventArgs e)
{
if (text1Distance.Text != "" && text2Distance.Text != "")
if (text1Distance.Text != "" && (text2Distance.Text != "" || !randomDistance.Checked))
{
dg.Distance = new ValueSetting(randomDistance.Checked, int.Parse(text1Distance.Text), int.Parse(text2Distance.Text));
dg.Distance = new ValueSetting(randomDistance.Checked, int.Parse(text1Distance.Text), (text2Distance.Enabled ? int.Parse(text2Distance.Text) : 0));
text1Distance.Text = "";
text2Distance.Text = "";
}
}
private void setPower_Click(object sender, EventArgs e)
{
if (text1Power.Text != "" && text2Power.Text != "")
if (text1Power.Text != "" && (text2Power.Text != "" || !randomPower.Checked))
{
dg.Power = new ValueSetting(randomPower.Checked, int.Parse(text1Power.Text), int.Parse(text2Power.Text));
dg.Power = new ValueSetting(randomPower.Checked, int.Parse(text1Power.Text), (text2Power.Enabled ? int.Parse(text2Power.Text) : 0));
text1Power.Text = "";
text2Power.Text = "";
}
}
private void setEnergy_Click(object sender, EventArgs e)
{
if (text1Energy.Text != "" && text2Energy.Text != "")
if (text1Energy.Text != "" && (text2Energy.Text != "" || !randomEnergy.Checked))
{
dg.Energy = new ValueSetting(randomEnergy.Checked, int.Parse(text1Energy.Text), int.Parse(text2Energy.Text));
dg.Energy = new ValueSetting(randomEnergy.Checked, int.Parse(text1Energy.Text), (text2Energy.Enabled ? int.Parse(text2Energy.Text) : 0));
text1Energy.Text = "";
text2Energy.Text = "";
}
}
private void setActualPower_Click(object sender, EventArgs e)
{
if (text1ActualPower.Text != "" && text2ActualPower.Text != "")
if (text1ActualPower.Text != "" && (text2ActualPower.Text != "" || !randomActualPower.Checked))
{
dg.ActualPower = new ValueSetting(randomActualPower.Checked, int.Parse(text1ActualPower.Text), int.Parse(text2ActualPower.Text));
dg.ActualPower = new ValueSetting(randomActualPower.Checked, int.Parse(text1ActualPower.Text), (text2ActualPower.Enabled ? int.Parse(text2ActualPower.Text) : 0));
text1ActualPower.Text = "";
text2ActualPower.Text = "";
}
}
private void setTime_Click(object sender, EventArgs e)
{
if(text1Time.Text != "")
{
string[] temp = text1Time.Text.Split(':');
if(temp.Length == 2)
{
int minutes = int.Parse(temp[0]);
int seconds = int.Parse(temp[1]) + (minutes * 60);
dg.Time = new ValueSetting(countTime.Checked, seconds, 0);
text1Time.Text = "";
}
}
}
private void ToggleAllComponents(bool enabled)
{
//Random checkboxes
randomActualPower.Enabled = enabled;
randomActualPower.Checked = false;
randomDistance.Enabled = enabled;
randomDistance.Checked = false;
randomEnergy.Enabled = enabled;
randomEnergy.Checked = false;
randomHeartBeat.Enabled = enabled;
randomHeartBeat.Checked = false;
randomRPM.Enabled = enabled;
randomRPM.Checked = false;
randomSpeed.Enabled = enabled;
randomSpeed.Checked = false;
randomPower.Enabled = enabled;
randomPower.Checked = false;
countTime.Enabled = enabled;
countTime.Checked = false;
//First text boxes
text1ActualPower.Enabled = enabled;
text1ActualPower.Text = "";
text1Distance.Enabled = enabled;
text1Distance.Text = "";
text1Energy.Enabled = enabled;
text1Energy.Text = "";
text1HeartBeat.Enabled = enabled;
text1HeartBeat.Text = "";
text1Power.Enabled = enabled;
text1Power.Text = "";
text1RPM.Enabled = enabled;
text1RPM.Text = "";
text1Speed.Enabled = enabled;
text1Speed.Text = "";
text1Time.Enabled = enabled;
text1Time.Text = "";
//Second text boxes
text2ActualPower.Enabled = false;
text2ActualPower.Text = "";
text2Distance.Enabled = false;
text2Distance.Text = "";
text2Energy.Enabled = false;
text2Energy.Text = "";
text2HeartBeat.Enabled = false;
text2HeartBeat.Text = "";
text2Power.Enabled = false;
text2Power.Text = "";
text2RPM.Enabled = false;
text2RPM.Text = "";
text2Speed.Enabled = false;
text2Speed.Text = "";
labelCurrentTime.Text = "00:00";
//Buttons
setHeartBeat.Enabled = enabled;
setDistance.Enabled = enabled;
setPower.Enabled = enabled;
setActualPower.Enabled = enabled;
setTime.Enabled = enabled;
setRPM.Enabled = enabled;
setEnergy.Enabled = enabled;
setSpeed.Enabled = enabled;
//ComPort Box
ComPortBox.Enabled = !enabled;
}
private void randomHeartBeat_CheckedChanged(object sender, EventArgs e)
{
if(randomHeartBeat.Checked)
text2HeartBeat.Enabled = true;
else
{
text2HeartBeat.Enabled = false;
text2HeartBeat.Text = "";
}
}
private void randomRPM_CheckedChanged(object sender, EventArgs e)
{
if (randomRPM.Checked)
text2RPM.Enabled = true;
else
{
text2RPM.Enabled = false;
text2RPM.Text = "";
}
}
private void randomSpeed_CheckedChanged(object sender, EventArgs e)
{
if (randomSpeed.Checked)
text2Speed.Enabled = true;
else
{
text2Speed.Enabled = false;
text2Speed.Text = "";
}
}
private void randomDistance_CheckedChanged(object sender, EventArgs e)
{
if (randomDistance.Checked)
text2Distance.Enabled = true;
else
{
text2Distance.Enabled = false;
text2Distance.Text = "";
}
}
private void randomPower_CheckedChanged(object sender, EventArgs e)
{
if (randomPower.Checked)
text2Power.Enabled = true;
else
{
text2Power.Enabled = false;
text2Power.Text = "";
}
}
private void randomEnergy_CheckedChanged(object sender, EventArgs e)
{
if (randomEnergy.Checked)
text2Energy.Enabled = true;
else
{
text2Energy.Enabled = false;
text2Energy.Text = "";
}
}
private void randomActualPower_CheckedChanged(object sender, EventArgs e)
{
if (randomActualPower.Checked)
text2ActualPower.Enabled = true;
else
{
text2ActualPower.Enabled = false;
text2ActualPower.Text = "";
}
}
}
@@ -9,7 +9,7 @@ namespace ErgometerSimulator
class ValueSetting
{
public bool random { get; }
public int value1 { get; }
public int value1 { get; set; }
public int value2 { get; }
public int currentvalue { get; set; }
@@ -21,5 +21,15 @@ namespace ErgometerSimulator
this.currentvalue = 0;
}
public override string ToString()
{
string str = "";
str += random + "|";
str += value1 + "|";
str += value2 + "|";
str += currentvalue;
return str;
}
}
}