From 1605c00a64a2321221d7d0878f4932e8941dc932 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Sun, 6 Sep 2015 18:53:50 +0200 Subject: [PATCH 1/4] Fixed static comports --- .../ErgometerSimulator/ErgometerSimulator.Designer.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs index 9d50884..0c52a1a 100644 --- a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs +++ b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs @@ -47,9 +47,7 @@ namespace ErgometerSimulator // ComPortBox // this.ComPortBox.FormattingEnabled = true; - this.ComPortBox.Items.AddRange(new object[] { - "COM5", - "COM4"}); + this.ComPortBox.Items.AddRange(SerialPort.GetPortNames()); this.ComPortBox.Location = new System.Drawing.Point(12, 12); this.ComPortBox.Name = "ComPortBox"; this.ComPortBox.Size = new System.Drawing.Size(121, 24); From 5d10c1872581109fcbbfbf5a8c561915eab163a2 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 7 Sep 2015 11:27:12 +0200 Subject: [PATCH 2/4] Changed to new design --- .../ErgometerSimulator/DataGenerator.cs | 46 ++ .../ErgometerSimulator.Designer.cs | 561 +++++++++++++++++- .../ErgometerSimulator/ErgometerSimulator.cs | 7 + .../ErgometerSimulator.csproj | 2 + .../ErgometerSimulator.resx | 3 + .../ErgometerSimulator/ValueSetting.cs | 25 + 6 files changed, 640 insertions(+), 4 deletions(-) create mode 100644 ErgometerSimulator/ErgometerSimulator/DataGenerator.cs create mode 100644 ErgometerSimulator/ErgometerSimulator/ValueSetting.cs diff --git a/ErgometerSimulator/ErgometerSimulator/DataGenerator.cs b/ErgometerSimulator/ErgometerSimulator/DataGenerator.cs new file mode 100644 index 0000000..7d8cc17 --- /dev/null +++ b/ErgometerSimulator/ErgometerSimulator/DataGenerator.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ErgometerSimulator +{ + class DataGenerator + { + Random rand; + + public ValueSetting HeartBeat { get; set; } + public ValueSetting RPM { get; set; } + public ValueSetting Speed { get; set; } + public ValueSetting Distance { get; set; } + public ValueSetting Power { get; set; } + public ValueSetting Energy { get; set; } + public ValueSetting ActualPower { get; set; } + public ValueSetting Time { get; set; } + + public DataGenerator() + { + rand = new Random(); + HeartBeat = new ValueSetting(false, 0, 0); + RPM = new ValueSetting(false, 0, 0); + Speed = new ValueSetting(false, 0, 0); + Distance = new ValueSetting(false, 0, 0); + Power = new ValueSetting(false, 0, 0); + Energy = new ValueSetting(false, 0, 0); + ActualPower = new ValueSetting(false, 0, 0); + Time = new ValueSetting(false, 0, 0); + } + + + + public void Update() + { + //Hearbeat + if(HeartBeat.random) + { + + } + } + } +} diff --git a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs index 0c52a1a..7b6af19 100644 --- a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs +++ b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs @@ -30,13 +30,62 @@ namespace ErgometerSimulator /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); this.connectButton = new System.Windows.Forms.Button(); this.ComPortBox = new System.Windows.Forms.ComboBox(); + this.labelHeartBeat = new System.Windows.Forms.Label(); + this.randomHeartBeat = new System.Windows.Forms.CheckBox(); + this.text1HeartBeat = new System.Windows.Forms.TextBox(); + this.text2HeartBeat = new System.Windows.Forms.TextBox(); + this.setHeartBeat = new System.Windows.Forms.Button(); + this.setRPM = new System.Windows.Forms.Button(); + this.text2RPM = new System.Windows.Forms.TextBox(); + this.text1RPM = new System.Windows.Forms.TextBox(); + this.randomRPM = new System.Windows.Forms.CheckBox(); + this.labelRPM = new System.Windows.Forms.Label(); + this.setSpeed = new System.Windows.Forms.Button(); + this.text2Speed = new System.Windows.Forms.TextBox(); + this.text1Speed = new System.Windows.Forms.TextBox(); + this.randomSpeed = new System.Windows.Forms.CheckBox(); + this.labelSpeed = new System.Windows.Forms.Label(); + this.setDistance = new System.Windows.Forms.Button(); + this.text2Distance = new System.Windows.Forms.TextBox(); + this.text1Distance = new System.Windows.Forms.TextBox(); + this.randomDistance = new System.Windows.Forms.CheckBox(); + this.labelDistance = new System.Windows.Forms.Label(); + this.setPower = new System.Windows.Forms.Button(); + this.text2Power = new System.Windows.Forms.TextBox(); + this.text1Power = new System.Windows.Forms.TextBox(); + this.randomPower = new System.Windows.Forms.CheckBox(); + this.labelPower = new System.Windows.Forms.Label(); + this.setEnergy = new System.Windows.Forms.Button(); + this.text2Energy = new System.Windows.Forms.TextBox(); + this.text1Energy = new System.Windows.Forms.TextBox(); + this.randomEnergy = new System.Windows.Forms.CheckBox(); + this.labelEnergy = new System.Windows.Forms.Label(); + this.setActualPower = new System.Windows.Forms.Button(); + this.text2ActualPower = new System.Windows.Forms.TextBox(); + this.text1ActualPower = new System.Windows.Forms.TextBox(); + this.randomActualPower = new System.Windows.Forms.CheckBox(); + this.labelActualPower = new System.Windows.Forms.Label(); + this.setTime = new System.Windows.Forms.Button(); + this.text1Time = new System.Windows.Forms.TextBox(); + this.countTime = new System.Windows.Forms.CheckBox(); + this.labelTime = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.labelCurrentTime = new System.Windows.Forms.Label(); + this.updateTimer = new System.Windows.Forms.Timer(this.components); this.SuspendLayout(); // // connectButton // - this.connectButton.Location = new System.Drawing.Point(139, 12); + this.connectButton.Location = new System.Drawing.Point(151, 305); this.connectButton.Name = "connectButton"; this.connectButton.Size = new System.Drawing.Size(101, 27); this.connectButton.TabIndex = 0; @@ -47,22 +96,478 @@ namespace ErgometerSimulator // ComPortBox // this.ComPortBox.FormattingEnabled = true; - this.ComPortBox.Items.AddRange(SerialPort.GetPortNames()); - this.ComPortBox.Location = new System.Drawing.Point(12, 12); + 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); this.ComPortBox.TabIndex = 1; // + // labelHeartBeat + // + this.labelHeartBeat.AutoSize = true; + this.labelHeartBeat.Location = new System.Drawing.Point(12, 27); + this.labelHeartBeat.Name = "labelHeartBeat"; + this.labelHeartBeat.Size = new System.Drawing.Size(71, 17); + this.labelHeartBeat.TabIndex = 2; + this.labelHeartBeat.Text = "Heartbeat"; + // + // randomHeartBeat + // + this.randomHeartBeat.AutoSize = true; + 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; + // + // text1HeartBeat + // + this.text1HeartBeat.Location = new System.Drawing.Point(151, 24); + this.text1HeartBeat.Name = "text1HeartBeat"; + this.text1HeartBeat.Size = new System.Drawing.Size(100, 22); + this.text1HeartBeat.TabIndex = 4; + // + // text2HeartBeat + // + this.text2HeartBeat.Location = new System.Drawing.Point(257, 24); + this.text2HeartBeat.Name = "text2HeartBeat"; + this.text2HeartBeat.Size = new System.Drawing.Size(100, 22); + this.text2HeartBeat.TabIndex = 5; + // + // setHeartBeat + // + this.setHeartBeat.Location = new System.Drawing.Point(363, 24); + this.setHeartBeat.Name = "setHeartBeat"; + this.setHeartBeat.Size = new System.Drawing.Size(75, 23); + this.setHeartBeat.TabIndex = 6; + this.setHeartBeat.Text = "Set"; + this.setHeartBeat.UseVisualStyleBackColor = true; + // + // setRPM + // + this.setRPM.Location = new System.Drawing.Point(363, 50); + this.setRPM.Name = "setRPM"; + this.setRPM.Size = new System.Drawing.Size(75, 23); + this.setRPM.TabIndex = 11; + this.setRPM.Text = "Set"; + this.setRPM.UseVisualStyleBackColor = true; + // + // text2RPM + // + this.text2RPM.Location = new System.Drawing.Point(257, 50); + this.text2RPM.Name = "text2RPM"; + this.text2RPM.Size = new System.Drawing.Size(100, 22); + this.text2RPM.TabIndex = 10; + // + // text1RPM + // + this.text1RPM.Location = new System.Drawing.Point(151, 50); + this.text1RPM.Name = "text1RPM"; + this.text1RPM.Size = new System.Drawing.Size(100, 22); + this.text1RPM.TabIndex = 9; + // + // randomRPM + // + this.randomRPM.AutoSize = true; + 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; + // + // labelRPM + // + this.labelRPM.AutoSize = true; + this.labelRPM.Location = new System.Drawing.Point(12, 53); + this.labelRPM.Name = "labelRPM"; + this.labelRPM.Size = new System.Drawing.Size(38, 17); + this.labelRPM.TabIndex = 7; + this.labelRPM.Text = "RPM"; + // + // setSpeed + // + this.setSpeed.Location = new System.Drawing.Point(363, 78); + this.setSpeed.Name = "setSpeed"; + this.setSpeed.Size = new System.Drawing.Size(75, 23); + this.setSpeed.TabIndex = 16; + this.setSpeed.Text = "Set"; + this.setSpeed.UseVisualStyleBackColor = true; + // + // text2Speed + // + this.text2Speed.Location = new System.Drawing.Point(257, 78); + this.text2Speed.Name = "text2Speed"; + this.text2Speed.Size = new System.Drawing.Size(100, 22); + this.text2Speed.TabIndex = 15; + // + // text1Speed + // + this.text1Speed.Location = new System.Drawing.Point(151, 78); + this.text1Speed.Name = "text1Speed"; + this.text1Speed.Size = new System.Drawing.Size(100, 22); + this.text1Speed.TabIndex = 14; + // + // randomSpeed + // + this.randomSpeed.AutoSize = true; + 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; + // + // labelSpeed + // + this.labelSpeed.AutoSize = true; + this.labelSpeed.Location = new System.Drawing.Point(12, 81); + this.labelSpeed.Name = "labelSpeed"; + this.labelSpeed.Size = new System.Drawing.Size(49, 17); + this.labelSpeed.TabIndex = 12; + this.labelSpeed.Text = "Speed"; + // + // setDistance + // + this.setDistance.Location = new System.Drawing.Point(363, 108); + this.setDistance.Name = "setDistance"; + this.setDistance.Size = new System.Drawing.Size(75, 23); + this.setDistance.TabIndex = 21; + this.setDistance.Text = "Set"; + this.setDistance.UseVisualStyleBackColor = true; + // + // text2Distance + // + this.text2Distance.Location = new System.Drawing.Point(257, 108); + this.text2Distance.Name = "text2Distance"; + this.text2Distance.Size = new System.Drawing.Size(100, 22); + this.text2Distance.TabIndex = 20; + // + // text1Distance + // + this.text1Distance.Location = new System.Drawing.Point(151, 108); + this.text1Distance.Name = "text1Distance"; + this.text1Distance.Size = new System.Drawing.Size(100, 22); + this.text1Distance.TabIndex = 19; + // + // randomDistance + // + this.randomDistance.AutoSize = true; + 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; + // + // labelDistance + // + this.labelDistance.AutoSize = true; + this.labelDistance.Location = new System.Drawing.Point(12, 111); + this.labelDistance.Name = "labelDistance"; + this.labelDistance.Size = new System.Drawing.Size(63, 17); + this.labelDistance.TabIndex = 17; + this.labelDistance.Text = "Distance"; + // + // setPower + // + this.setPower.Location = new System.Drawing.Point(363, 137); + this.setPower.Name = "setPower"; + this.setPower.Size = new System.Drawing.Size(75, 23); + this.setPower.TabIndex = 26; + this.setPower.Text = "Set"; + this.setPower.UseVisualStyleBackColor = true; + // + // text2Power + // + this.text2Power.Location = new System.Drawing.Point(257, 137); + this.text2Power.Name = "text2Power"; + this.text2Power.Size = new System.Drawing.Size(100, 22); + this.text2Power.TabIndex = 25; + // + // text1Power + // + this.text1Power.Location = new System.Drawing.Point(151, 137); + this.text1Power.Name = "text1Power"; + this.text1Power.Size = new System.Drawing.Size(100, 22); + this.text1Power.TabIndex = 24; + // + // randomPower + // + this.randomPower.AutoSize = true; + 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; + // + // labelPower + // + this.labelPower.AutoSize = true; + this.labelPower.Location = new System.Drawing.Point(12, 140); + this.labelPower.Name = "labelPower"; + this.labelPower.Size = new System.Drawing.Size(47, 17); + this.labelPower.TabIndex = 22; + this.labelPower.Text = "Power"; + // + // setEnergy + // + this.setEnergy.Location = new System.Drawing.Point(363, 166); + this.setEnergy.Name = "setEnergy"; + this.setEnergy.Size = new System.Drawing.Size(75, 23); + this.setEnergy.TabIndex = 31; + this.setEnergy.Text = "Set"; + this.setEnergy.UseVisualStyleBackColor = true; + // + // text2Energy + // + this.text2Energy.Location = new System.Drawing.Point(257, 166); + this.text2Energy.Name = "text2Energy"; + this.text2Energy.Size = new System.Drawing.Size(100, 22); + this.text2Energy.TabIndex = 30; + // + // text1Energy + // + this.text1Energy.Location = new System.Drawing.Point(151, 166); + this.text1Energy.Name = "text1Energy"; + this.text1Energy.Size = new System.Drawing.Size(100, 22); + this.text1Energy.TabIndex = 29; + // + // randomEnergy + // + this.randomEnergy.AutoSize = true; + 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; + // + // labelEnergy + // + this.labelEnergy.AutoSize = true; + this.labelEnergy.Location = new System.Drawing.Point(12, 169); + this.labelEnergy.Name = "labelEnergy"; + this.labelEnergy.Size = new System.Drawing.Size(53, 17); + this.labelEnergy.TabIndex = 27; + this.labelEnergy.Text = "Energy"; + // + // setActualPower + // + this.setActualPower.Location = new System.Drawing.Point(363, 196); + this.setActualPower.Name = "setActualPower"; + this.setActualPower.Size = new System.Drawing.Size(75, 23); + this.setActualPower.TabIndex = 36; + this.setActualPower.Text = "Set"; + this.setActualPower.UseVisualStyleBackColor = true; + // + // text2ActualPower + // + this.text2ActualPower.Location = new System.Drawing.Point(257, 196); + this.text2ActualPower.Name = "text2ActualPower"; + this.text2ActualPower.Size = new System.Drawing.Size(100, 22); + this.text2ActualPower.TabIndex = 35; + // + // text1ActualPower + // + this.text1ActualPower.Location = new System.Drawing.Point(151, 196); + this.text1ActualPower.Name = "text1ActualPower"; + this.text1ActualPower.Size = new System.Drawing.Size(100, 22); + this.text1ActualPower.TabIndex = 34; + // + // randomActualPower + // + this.randomActualPower.AutoSize = true; + 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; + // + // labelActualPower + // + this.labelActualPower.AutoSize = true; + this.labelActualPower.Location = new System.Drawing.Point(12, 199); + this.labelActualPower.Name = "labelActualPower"; + this.labelActualPower.Size = new System.Drawing.Size(90, 17); + this.labelActualPower.TabIndex = 32; + this.labelActualPower.Text = "Actual Power"; + // + // setTime + // + 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; + // + // text1Time + // + this.text1Time.Location = new System.Drawing.Point(151, 262); + this.text1Time.Name = "text1Time"; + this.text1Time.Size = new System.Drawing.Size(101, 22); + this.text1Time.TabIndex = 39; + // + // countTime + // + this.countTime.AutoSize = true; + this.countTime.Location = new System.Drawing.Point(77, 263); + this.countTime.Name = "countTime"; + this.countTime.Size = new System.Drawing.Size(65, 21); + this.countTime.TabIndex = 38; + this.countTime.Text = "Down"; + this.countTime.UseVisualStyleBackColor = true; + // + // labelTime + // + this.labelTime.AutoSize = true; + this.labelTime.Location = new System.Drawing.Point(12, 265); + this.labelTime.Name = "labelTime"; + this.labelTime.Size = new System.Drawing.Size(39, 17); + this.labelTime.TabIndex = 37; + this.labelTime.Text = "Time"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label9.Location = new System.Drawing.Point(12, 4); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(49, 17); + this.label9.TabIndex = 42; + this.label9.Text = "Name"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label10.Location = new System.Drawing.Point(75, 4); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(67, 17); + this.label10.TabIndex = 43; + this.label10.Text = "Random"; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label11.Location = new System.Drawing.Point(148, 4); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(33, 17); + this.label11.TabIndex = 44; + this.label11.Text = "Min"; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label12.Location = new System.Drawing.Point(254, 4); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(36, 17); + this.label12.TabIndex = 45; + this.label12.Text = "Max"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(148, 239); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(49, 17); + this.label2.TabIndex = 48; + this.label2.Text = "Value"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(75, 239); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(50, 17); + this.label3.TabIndex = 47; + this.label3.Text = "Count"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.Location = new System.Drawing.Point(12, 239); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(49, 17); + this.label4.TabIndex = 46; + this.label4.Text = "Name"; + // + // labelCurrentTime + // + this.labelCurrentTime.AutoSize = true; + this.labelCurrentTime.Location = new System.Drawing.Point(258, 264); + this.labelCurrentTime.Name = "labelCurrentTime"; + this.labelCurrentTime.Size = new System.Drawing.Size(44, 17); + this.labelCurrentTime.TabIndex = 49; + this.labelCurrentTime.Text = "00:00"; + // + // updateTimer + // + this.updateTimer.Interval = 200; + this.updateTimer.Tick += new System.EventHandler(this.updateTimer_Tick); + // // ErgometerSimulator // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(351, 87); + this.ClientSize = new System.Drawing.Size(452, 344); + this.Controls.Add(this.labelCurrentTime); + this.Controls.Add(this.label2); + this.Controls.Add(this.label3); + this.Controls.Add(this.label4); + this.Controls.Add(this.label12); + this.Controls.Add(this.label11); + this.Controls.Add(this.label10); + this.Controls.Add(this.label9); + this.Controls.Add(this.setTime); + this.Controls.Add(this.text1Time); + this.Controls.Add(this.countTime); + this.Controls.Add(this.labelTime); + this.Controls.Add(this.setActualPower); + this.Controls.Add(this.text2ActualPower); + this.Controls.Add(this.text1ActualPower); + this.Controls.Add(this.randomActualPower); + this.Controls.Add(this.labelActualPower); + this.Controls.Add(this.setEnergy); + this.Controls.Add(this.text2Energy); + this.Controls.Add(this.text1Energy); + this.Controls.Add(this.randomEnergy); + this.Controls.Add(this.labelEnergy); + this.Controls.Add(this.setPower); + this.Controls.Add(this.text2Power); + this.Controls.Add(this.text1Power); + this.Controls.Add(this.randomPower); + this.Controls.Add(this.labelPower); + this.Controls.Add(this.setDistance); + this.Controls.Add(this.text2Distance); + this.Controls.Add(this.text1Distance); + this.Controls.Add(this.randomDistance); + this.Controls.Add(this.labelDistance); + this.Controls.Add(this.setSpeed); + this.Controls.Add(this.text2Speed); + this.Controls.Add(this.text1Speed); + this.Controls.Add(this.randomSpeed); + this.Controls.Add(this.labelSpeed); + this.Controls.Add(this.setRPM); + this.Controls.Add(this.text2RPM); + this.Controls.Add(this.text1RPM); + this.Controls.Add(this.randomRPM); + this.Controls.Add(this.labelRPM); + this.Controls.Add(this.setHeartBeat); + this.Controls.Add(this.text2HeartBeat); + this.Controls.Add(this.text1HeartBeat); + this.Controls.Add(this.randomHeartBeat); + this.Controls.Add(this.labelHeartBeat); this.Controls.Add(this.ComPortBox); this.Controls.Add(this.connectButton); this.Name = "ErgometerSimulator"; this.Text = "Ergometer Simulator"; this.ResumeLayout(false); + this.PerformLayout(); } @@ -70,6 +575,54 @@ namespace ErgometerSimulator private System.Windows.Forms.Button connectButton; private System.Windows.Forms.ComboBox ComPortBox; + private System.Windows.Forms.Label labelHeartBeat; + private System.Windows.Forms.CheckBox randomHeartBeat; + private System.Windows.Forms.TextBox text1HeartBeat; + private System.Windows.Forms.TextBox text2HeartBeat; + private System.Windows.Forms.Button setHeartBeat; + private System.Windows.Forms.Button setRPM; + private System.Windows.Forms.TextBox text2RPM; + private System.Windows.Forms.TextBox text1RPM; + private System.Windows.Forms.CheckBox randomRPM; + private System.Windows.Forms.Label labelRPM; + private System.Windows.Forms.Button setSpeed; + private System.Windows.Forms.TextBox text2Speed; + private System.Windows.Forms.TextBox text1Speed; + private System.Windows.Forms.CheckBox randomSpeed; + private System.Windows.Forms.Label labelSpeed; + private System.Windows.Forms.Button setDistance; + private System.Windows.Forms.TextBox text2Distance; + private System.Windows.Forms.TextBox text1Distance; + private System.Windows.Forms.CheckBox randomDistance; + private System.Windows.Forms.Label labelDistance; + private System.Windows.Forms.Button setPower; + private System.Windows.Forms.TextBox text2Power; + private System.Windows.Forms.TextBox text1Power; + private System.Windows.Forms.CheckBox randomPower; + private System.Windows.Forms.Label labelPower; + private System.Windows.Forms.Button setEnergy; + private System.Windows.Forms.TextBox text2Energy; + private System.Windows.Forms.TextBox text1Energy; + private System.Windows.Forms.CheckBox randomEnergy; + private System.Windows.Forms.Label labelEnergy; + private System.Windows.Forms.Button setActualPower; + private System.Windows.Forms.TextBox text2ActualPower; + private System.Windows.Forms.TextBox text1ActualPower; + private System.Windows.Forms.CheckBox randomActualPower; + private System.Windows.Forms.Label labelActualPower; + private System.Windows.Forms.Button setTime; + private System.Windows.Forms.TextBox text1Time; + private System.Windows.Forms.CheckBox countTime; + private System.Windows.Forms.Label labelTime; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label labelCurrentTime; + private System.Windows.Forms.Timer updateTimer; } } diff --git a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.cs b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.cs index 375c94b..f82f0e2 100644 --- a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.cs +++ b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.cs @@ -15,11 +15,13 @@ namespace ErgometerSimulator public partial class ErgometerSimulator : Form { ComPort comPort; + DataGenerator dg; public ErgometerSimulator() { InitializeComponent(); comPort = new ComPort(this); + dg = new DataGenerator(); } private void connectButton_Click(object sender, EventArgs e) @@ -50,5 +52,10 @@ namespace ErgometerSimulator Console.WriteLine(display); comPort.Write(response); } + + private void updateTimer_Tick(object sender, EventArgs e) + { + dg.Update(); + } } } diff --git a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.csproj b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.csproj index 5e97215..3e595e1 100644 --- a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.csproj +++ b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.csproj @@ -48,6 +48,7 @@ + Form @@ -56,6 +57,7 @@ + ErgometerSimulator.cs diff --git a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.resx b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.resx index 1af7de1..711e1bf 100644 --- a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.resx +++ b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.resx @@ -117,4 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + \ No newline at end of file diff --git a/ErgometerSimulator/ErgometerSimulator/ValueSetting.cs b/ErgometerSimulator/ErgometerSimulator/ValueSetting.cs new file mode 100644 index 0000000..e6757b1 --- /dev/null +++ b/ErgometerSimulator/ErgometerSimulator/ValueSetting.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ErgometerSimulator +{ + class ValueSetting + { + public bool random { get; } + public int value1 { get; } + public int value2 { get; } + public int currentvalue { get; set; } + + public ValueSetting(bool random, int value1, int value2) + { + this.random = random; + this.value1 = value1; + this.value2 = value2; + this.currentvalue = 0; + } + + } +} From 8eb2a376e943f191ce77322ed66e7ce051bda144 Mon Sep 17 00:00:00 2001 From: Aareschluchtje Date: Mon, 7 Sep 2015 12:41:11 +0200 Subject: [PATCH 3/4] Implemented GUI (which doesn't work) --- .../ErgometerSimulator/CommandParser.cs | 26 ++++--- .../ErgometerSimulator/DataGenerator.cs | 69 ++++++++++++++++++- .../ErgometerSimulator.Designer.cs | 11 ++- .../ErgometerSimulator/ErgometerSimulator.cs | 60 +++++++++++++++- 4 files changed, 151 insertions(+), 15 deletions(-) diff --git a/ErgometerSimulator/ErgometerSimulator/CommandParser.cs b/ErgometerSimulator/ErgometerSimulator/CommandParser.cs index 7b4b1f7..6718b15 100644 --- a/ErgometerSimulator/ErgometerSimulator/CommandParser.cs +++ b/ErgometerSimulator/ErgometerSimulator/CommandParser.cs @@ -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; diff --git a/ErgometerSimulator/ErgometerSimulator/DataGenerator.cs b/ErgometerSimulator/ErgometerSimulator/DataGenerator.cs index 7d8cc17..513b4c8 100644 --- a/ErgometerSimulator/ErgometerSimulator/DataGenerator.cs +++ b/ErgometerSimulator/ErgometerSimulator/DataGenerator.cs @@ -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; } } } diff --git a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs index 7b6af19..e9ed167 100644 --- a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs +++ b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs @@ -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 // diff --git a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.cs b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.cs index f82f0e2..1c105c1 100644 --- a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.cs +++ b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.cs @@ -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)); + } + } } } From beda8c50e292ce9b6e859f1045091a27d6ea2ba3 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 7 Sep 2015 13:30:06 +0200 Subject: [PATCH 4/4] Complete version 1 --- .../ErgometerSimulator/CommandParser.cs | 2 +- .../ErgometerSimulator/DataGenerator.cs | 27 +- .../ErgometerSimulator.Designer.cs | 43 +++- .../ErgometerSimulator/ErgometerSimulator.cs | 236 ++++++++++++++++-- .../ErgometerSimulator/ValueSetting.cs | 12 +- 5 files changed, 294 insertions(+), 26 deletions(-) diff --git a/ErgometerSimulator/ErgometerSimulator/CommandParser.cs b/ErgometerSimulator/ErgometerSimulator/CommandParser.cs index 6718b15..0180f51 100644 --- a/ErgometerSimulator/ErgometerSimulator/CommandParser.cs +++ b/ErgometerSimulator/ErgometerSimulator/CommandParser.cs @@ -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: diff --git a/ErgometerSimulator/ErgometerSimulator/DataGenerator.cs b/ErgometerSimulator/ErgometerSimulator/DataGenerator.cs index 513b4c8..e919849 100644 --- a/ErgometerSimulator/ErgometerSimulator/DataGenerator.cs +++ b/ErgometerSimulator/ErgometerSimulator/DataGenerator.cs @@ -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; } } } diff --git a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs index e9ed167..847bc62 100644 --- a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs +++ b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.Designer.cs @@ -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); diff --git a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.cs b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.cs index 1c105c1..4fb89f7 100644 --- a/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.cs +++ b/ErgometerSimulator/ErgometerSimulator/ErgometerSimulator.cs @@ -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 = ""; } } } diff --git a/ErgometerSimulator/ErgometerSimulator/ValueSetting.cs b/ErgometerSimulator/ErgometerSimulator/ValueSetting.cs index e6757b1..541a6a4 100644 --- a/ErgometerSimulator/ErgometerSimulator/ValueSetting.cs +++ b/ErgometerSimulator/ErgometerSimulator/ValueSetting.cs @@ -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; + } + } }