finish??
This commit is contained in:
BIN
HCI_Coursework_EVCHARGE/Assets/contactless.png
Normal file
BIN
HCI_Coursework_EVCHARGE/Assets/contactless.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.6 KiB |
336
HCI_Coursework_EVCHARGE/BaySelection.Designer.cs
generated
Normal file
336
HCI_Coursework_EVCHARGE/BaySelection.Designer.cs
generated
Normal file
@@ -0,0 +1,336 @@
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
partial class BaySelection
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.button6 = new System.Windows.Forms.Button();
|
||||
this.button8 = new System.Windows.Forms.Button();
|
||||
this.button7 = new System.Windows.Forms.Button();
|
||||
this.button10 = new System.Windows.Forms.Button();
|
||||
this.button9 = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.panel3 = new System.Windows.Forms.Panel();
|
||||
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.button5 = new System.Windows.Forms.Button();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.button4 = new System.Windows.Forms.Button();
|
||||
this.button3 = new System.Windows.Forms.Button();
|
||||
this.userLabel = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.panel3.SuspendLayout();
|
||||
this.tableLayoutPanel3.SuspendLayout();
|
||||
this.tableLayoutPanel2.SuspendLayout();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// button6
|
||||
//
|
||||
this.button6.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.button6.Location = new System.Drawing.Point(25, 769);
|
||||
this.button6.Margin = new System.Windows.Forms.Padding(25);
|
||||
this.button6.Name = "button6";
|
||||
this.button6.Size = new System.Drawing.Size(911, 136);
|
||||
this.button6.TabIndex = 9;
|
||||
this.button6.Text = "Bay 10";
|
||||
this.button6.UseVisualStyleBackColor = true;
|
||||
this.button6.Click += new System.EventHandler(this.bayButton_Click);
|
||||
//
|
||||
// button8
|
||||
//
|
||||
this.button8.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.button8.Location = new System.Drawing.Point(25, 397);
|
||||
this.button8.Margin = new System.Windows.Forms.Padding(25);
|
||||
this.button8.Name = "button8";
|
||||
this.button8.Size = new System.Drawing.Size(911, 136);
|
||||
this.button8.TabIndex = 7;
|
||||
this.button8.Text = "Bay 8";
|
||||
this.button8.UseVisualStyleBackColor = true;
|
||||
this.button8.Click += new System.EventHandler(this.bayButton_Click);
|
||||
//
|
||||
// button7
|
||||
//
|
||||
this.button7.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.button7.Location = new System.Drawing.Point(25, 583);
|
||||
this.button7.Margin = new System.Windows.Forms.Padding(25);
|
||||
this.button7.Name = "button7";
|
||||
this.button7.Size = new System.Drawing.Size(911, 136);
|
||||
this.button7.TabIndex = 8;
|
||||
this.button7.Text = "Bay 9";
|
||||
this.button7.UseVisualStyleBackColor = true;
|
||||
this.button7.Click += new System.EventHandler(this.bayButton_Click);
|
||||
//
|
||||
// button10
|
||||
//
|
||||
this.button10.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.button10.Location = new System.Drawing.Point(25, 25);
|
||||
this.button10.Margin = new System.Windows.Forms.Padding(25);
|
||||
this.button10.Name = "button10";
|
||||
this.button10.Size = new System.Drawing.Size(911, 136);
|
||||
this.button10.TabIndex = 5;
|
||||
this.button10.Text = "Bay 6";
|
||||
this.button10.UseVisualStyleBackColor = true;
|
||||
this.button10.Click += new System.EventHandler(this.bayButton_Click);
|
||||
//
|
||||
// button9
|
||||
//
|
||||
this.button9.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.button9.Location = new System.Drawing.Point(25, 211);
|
||||
this.button9.Margin = new System.Windows.Forms.Padding(25);
|
||||
this.button9.Name = "button9";
|
||||
this.button9.Size = new System.Drawing.Size(911, 136);
|
||||
this.button9.TabIndex = 6;
|
||||
this.button9.Text = "Bay 7";
|
||||
this.button9.UseVisualStyleBackColor = true;
|
||||
this.button9.Click += new System.EventHandler(this.bayButton_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 20F);
|
||||
this.label1.Location = new System.Drawing.Point(296, 16);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(261, 31);
|
||||
this.label1.TabIndex = 5;
|
||||
this.label1.Text = "Select Charging Bay";
|
||||
//
|
||||
// panel3
|
||||
//
|
||||
this.panel3.AutoSize = true;
|
||||
this.panel3.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel3.Controls.Add(this.tableLayoutPanel3);
|
||||
this.panel3.Controls.Add(this.userLabel);
|
||||
this.panel3.Controls.Add(this.label2);
|
||||
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel3.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
this.panel3.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel3.Name = "panel3";
|
||||
this.panel3.Size = new System.Drawing.Size(1920, 1080);
|
||||
this.panel3.TabIndex = 2;
|
||||
//
|
||||
// tableLayoutPanel3
|
||||
//
|
||||
this.tableLayoutPanel3.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||
this.tableLayoutPanel3.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
|
||||
this.tableLayoutPanel3.ColumnCount = 2;
|
||||
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel3.Controls.Add(this.tableLayoutPanel2, 1, 0);
|
||||
this.tableLayoutPanel3.Controls.Add(this.tableLayoutPanel1, 0, 0);
|
||||
this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.tableLayoutPanel3.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
|
||||
this.tableLayoutPanel3.Location = new System.Drawing.Point(0, 160);
|
||||
this.tableLayoutPanel3.MaximumSize = new System.Drawing.Size(1918, 918);
|
||||
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
|
||||
this.tableLayoutPanel3.RowCount = 1;
|
||||
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel3.Size = new System.Drawing.Size(1918, 918);
|
||||
this.tableLayoutPanel3.TabIndex = 4;
|
||||
//
|
||||
// tableLayoutPanel2
|
||||
//
|
||||
this.tableLayoutPanel2.AutoSize = true;
|
||||
this.tableLayoutPanel2.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.tableLayoutPanel2.ColumnCount = 1;
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel2.Controls.Add(this.button10, 0, 0);
|
||||
this.tableLayoutPanel2.Controls.Add(this.button8, 0, 2);
|
||||
this.tableLayoutPanel2.Controls.Add(this.button9, 0, 1);
|
||||
this.tableLayoutPanel2.Controls.Add(this.button7, 0, 3);
|
||||
this.tableLayoutPanel2.Controls.Add(this.button6, 0, 4);
|
||||
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.tableLayoutPanel2.Location = new System.Drawing.Point(959, 0);
|
||||
this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
||||
this.tableLayoutPanel2.RowCount = 5;
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel2.Size = new System.Drawing.Size(959, 930);
|
||||
this.tableLayoutPanel2.TabIndex = 3;
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.AutoSize = true;
|
||||
this.tableLayoutPanel1.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.tableLayoutPanel1.ColumnCount = 1;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.Controls.Add(this.button1, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.button5, 0, 4);
|
||||
this.tableLayoutPanel1.Controls.Add(this.button2, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.button4, 0, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.button3, 0, 2);
|
||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 5;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(959, 930);
|
||||
this.tableLayoutPanel1.TabIndex = 2;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.button1.Location = new System.Drawing.Point(25, 25);
|
||||
this.button1.Margin = new System.Windows.Forms.Padding(25);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(911, 136);
|
||||
this.button1.TabIndex = 0;
|
||||
this.button1.Text = "Bay 1";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.bayButton_Click);
|
||||
//
|
||||
// button5
|
||||
//
|
||||
this.button5.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.button5.Location = new System.Drawing.Point(25, 769);
|
||||
this.button5.Margin = new System.Windows.Forms.Padding(25);
|
||||
this.button5.Name = "button5";
|
||||
this.button5.Size = new System.Drawing.Size(911, 136);
|
||||
this.button5.TabIndex = 4;
|
||||
this.button5.Text = "Bay 5";
|
||||
this.button5.UseVisualStyleBackColor = true;
|
||||
this.button5.Click += new System.EventHandler(this.bayButton_Click);
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.button2.Location = new System.Drawing.Point(25, 211);
|
||||
this.button2.Margin = new System.Windows.Forms.Padding(25);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(911, 136);
|
||||
this.button2.TabIndex = 1;
|
||||
this.button2.Text = "Bay 2";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.bayButton_Click);
|
||||
//
|
||||
// button4
|
||||
//
|
||||
this.button4.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.button4.Location = new System.Drawing.Point(25, 583);
|
||||
this.button4.Margin = new System.Windows.Forms.Padding(25);
|
||||
this.button4.Name = "button4";
|
||||
this.button4.Size = new System.Drawing.Size(911, 136);
|
||||
this.button4.TabIndex = 3;
|
||||
this.button4.Text = "Bay 4";
|
||||
this.button4.UseVisualStyleBackColor = true;
|
||||
this.button4.Click += new System.EventHandler(this.bayButton_Click);
|
||||
//
|
||||
// button3
|
||||
//
|
||||
this.button3.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.button3.Location = new System.Drawing.Point(25, 397);
|
||||
this.button3.Margin = new System.Windows.Forms.Padding(25);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.Size = new System.Drawing.Size(911, 136);
|
||||
this.button3.TabIndex = 2;
|
||||
this.button3.Text = "Bay 3";
|
||||
this.button3.UseVisualStyleBackColor = true;
|
||||
this.button3.Click += new System.EventHandler(this.bayButton_Click);
|
||||
//
|
||||
// userLabel
|
||||
//
|
||||
this.userLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.userLabel.AutoSize = true;
|
||||
this.userLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 20F);
|
||||
this.userLabel.Location = new System.Drawing.Point(24, 64);
|
||||
this.userLabel.Name = "userLabel";
|
||||
this.userLabel.Size = new System.Drawing.Size(176, 31);
|
||||
this.userLabel.TabIndex = 1;
|
||||
this.userLabel.Text = "Logged in as:";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 40F);
|
||||
this.label2.Location = new System.Drawing.Point(664, 40);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(519, 63);
|
||||
this.label2.TabIndex = 0;
|
||||
this.label2.Text = "Select Charging Bay";
|
||||
//
|
||||
// BaySelection
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.AutoSize = true;
|
||||
this.ClientSize = new System.Drawing.Size(1920, 1080);
|
||||
this.Controls.Add(this.panel3);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Name = "BaySelection";
|
||||
this.Text = "BaySelection";
|
||||
this.TopMost = true;
|
||||
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||||
this.panel3.ResumeLayout(false);
|
||||
this.panel3.PerformLayout();
|
||||
this.tableLayoutPanel3.ResumeLayout(false);
|
||||
this.tableLayoutPanel3.PerformLayout();
|
||||
this.tableLayoutPanel2.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.Button button6;
|
||||
private System.Windows.Forms.Button button8;
|
||||
private System.Windows.Forms.Button button7;
|
||||
private System.Windows.Forms.Button button10;
|
||||
private System.Windows.Forms.Button button9;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Panel panel3;
|
||||
private System.Windows.Forms.Label userLabel;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Button button5;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.Button button4;
|
||||
private System.Windows.Forms.Button button3;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
|
||||
}
|
||||
}
|
39
HCI_Coursework_EVCHARGE/BaySelection.cs
Normal file
39
HCI_Coursework_EVCHARGE/BaySelection.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
public partial class BaySelection : Form
|
||||
{
|
||||
public BaySelection( String accountNo )
|
||||
{
|
||||
InitializeComponent();
|
||||
userLabel.Text += " " + accountNo;
|
||||
tableLayoutPanel3.Height = this.ClientSize.Height;
|
||||
}
|
||||
|
||||
private void bayButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if( sender is Button button)
|
||||
{
|
||||
|
||||
int bayNo = Convert.ToInt32(button.Text.Substring(button.Text.Length - 1));
|
||||
button.BackColor = SystemColors.ControlDark;
|
||||
ChargingDetails chargingDetails = new ChargingDetails(bayNo);
|
||||
chargingDetails.Show();
|
||||
chargingDetails.FormClosed += delegate
|
||||
{
|
||||
chargingDetails = null;
|
||||
button.BackColor = SystemColors.Control;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
166
HCI_Coursework_EVCHARGE/Charging.Designer.cs
generated
Normal file
166
HCI_Coursework_EVCHARGE/Charging.Designer.cs
generated
Normal file
@@ -0,0 +1,166 @@
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
partial class Charging
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.timeRemainingLabel = new System.Windows.Forms.Label();
|
||||
this.chargeRateLabel = new System.Windows.Forms.Label();
|
||||
this.progressBar1 = new System.Windows.Forms.ProgressBar();
|
||||
this.chargeCapacityLabel = new System.Windows.Forms.Label();
|
||||
this.timer1 = new System.Windows.Forms.Timer(this.components);
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 20F);
|
||||
this.button1.Location = new System.Drawing.Point(1544, 840);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(300, 150);
|
||||
this.button1.TabIndex = 0;
|
||||
this.button1.Text = "Cancel Charging";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.cancel_Button);
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 2;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.timeRemainingLabel, 0, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chargeRateLabel, 1, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.progressBar1, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.chargeCapacityLabel, 0, 2);
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(56, 104);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 4;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 35F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 35F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 15F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 15F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(1144, 696);
|
||||
this.tableLayoutPanel1.TabIndex = 1;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 30F);
|
||||
this.label1.Location = new System.Drawing.Point(10, 10);
|
||||
this.label1.Margin = new System.Windows.Forms.Padding(10, 10, 10, 30);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(552, 203);
|
||||
this.label1.TabIndex = 4;
|
||||
this.label1.Text = "Charging...";
|
||||
this.label1.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
|
||||
//
|
||||
// timeRemainingLabel
|
||||
//
|
||||
this.timeRemainingLabel.AutoSize = true;
|
||||
this.timeRemainingLabel.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.timeRemainingLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.timeRemainingLabel.Location = new System.Drawing.Point(50, 600);
|
||||
this.timeRemainingLabel.Margin = new System.Windows.Forms.Padding(50, 10, 10, 10);
|
||||
this.timeRemainingLabel.Name = "timeRemainingLabel";
|
||||
this.timeRemainingLabel.Size = new System.Drawing.Size(512, 86);
|
||||
this.timeRemainingLabel.TabIndex = 3;
|
||||
this.timeRemainingLabel.Text = "timeRemaining";
|
||||
//
|
||||
// chargeRateLabel
|
||||
//
|
||||
this.chargeRateLabel.AutoSize = true;
|
||||
this.chargeRateLabel.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.chargeRateLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.chargeRateLabel.Location = new System.Drawing.Point(622, 496);
|
||||
this.chargeRateLabel.Margin = new System.Windows.Forms.Padding(50, 10, 10, 10);
|
||||
this.chargeRateLabel.Name = "chargeRateLabel";
|
||||
this.chargeRateLabel.Size = new System.Drawing.Size(512, 84);
|
||||
this.chargeRateLabel.TabIndex = 2;
|
||||
this.chargeRateLabel.Text = "chargeRate";
|
||||
//
|
||||
// progressBar1
|
||||
//
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.progressBar1, 2);
|
||||
this.progressBar1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.progressBar1.Location = new System.Drawing.Point(25, 268);
|
||||
this.progressBar1.Margin = new System.Windows.Forms.Padding(25);
|
||||
this.progressBar1.Name = "progressBar1";
|
||||
this.progressBar1.Size = new System.Drawing.Size(1094, 193);
|
||||
this.progressBar1.Step = 1;
|
||||
this.progressBar1.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
|
||||
this.progressBar1.TabIndex = 0;
|
||||
this.progressBar1.Value = 9;
|
||||
//
|
||||
// chargeCapacityLabel
|
||||
//
|
||||
this.chargeCapacityLabel.AutoSize = true;
|
||||
this.chargeCapacityLabel.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.chargeCapacityLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.chargeCapacityLabel.Location = new System.Drawing.Point(50, 496);
|
||||
this.chargeCapacityLabel.Margin = new System.Windows.Forms.Padding(50, 10, 10, 10);
|
||||
this.chargeCapacityLabel.Name = "chargeCapacityLabel";
|
||||
this.chargeCapacityLabel.Size = new System.Drawing.Size(512, 84);
|
||||
this.chargeCapacityLabel.TabIndex = 1;
|
||||
this.chargeCapacityLabel.Text = "chargeCapacity";
|
||||
//
|
||||
// Charging
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1904, 1041);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.Controls.Add(this.button1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Name = "Charging";
|
||||
this.Text = "Charging";
|
||||
this.TopMost = true;
|
||||
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||||
this.Load += new System.EventHandler(this.Charging_Load);
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
private System.Windows.Forms.ProgressBar progressBar1;
|
||||
private System.Windows.Forms.Timer timer1;
|
||||
private System.Windows.Forms.Label chargeCapacityLabel;
|
||||
private System.Windows.Forms.Label chargeRateLabel;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label timeRemainingLabel;
|
||||
}
|
||||
}
|
63
HCI_Coursework_EVCHARGE/Charging.cs
Normal file
63
HCI_Coursework_EVCHARGE/Charging.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Runtime.Remoting.Metadata.W3cXsd2001;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
public partial class Charging : Form
|
||||
{
|
||||
String bay;
|
||||
String vehicle;
|
||||
String duration;
|
||||
public Charging(String bayNo, String vehicle, String duration)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.bay = bayNo;
|
||||
this.vehicle = vehicle;
|
||||
this.duration = duration;
|
||||
var details = new ChargingDetails(Convert.ToInt16(bay)).getCarInfo(vehicle);
|
||||
label1.Text = $"{System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(vehicle)} Charging...";
|
||||
chargeRateLabel.Text = $"Charging Rate: {details[0]} kW";
|
||||
chargeCapacityLabel.Text = $" Total Charge: {Convert.ToString(decimal.Round( (Convert.ToDecimal(details[0]) / Convert.ToInt16(duration)), 2, MidpointRounding.ToEven))} kWh";
|
||||
}
|
||||
|
||||
private void Charging_Load(object sender, EventArgs e)
|
||||
{
|
||||
timer1.Enabled = true;
|
||||
timer1.Start();
|
||||
timer1.Interval = 1000;
|
||||
progressBar1.Maximum = (Convert.ToInt16(duration) * 3600);
|
||||
timer1.Tick += new EventHandler(timer1_Tick);
|
||||
}
|
||||
|
||||
private void timer1_Tick(object sender, EventArgs e)
|
||||
{
|
||||
TimeSpan timeRemaining = TimeSpan.FromSeconds(progressBar1.Maximum - progressBar1.Value);
|
||||
if (progressBar1.Value != progressBar1.Maximum)
|
||||
{
|
||||
Console.WriteLine( timeRemaining.ToString() );
|
||||
progressBar1.Value++;
|
||||
timeRemainingLabel.Text = string.Format("{0:D2}h:{1:D2}m:{2:D2}s" + " remaining.",
|
||||
timeRemaining.Hours,
|
||||
timeRemaining.Minutes,
|
||||
timeRemaining.Seconds);
|
||||
}
|
||||
else
|
||||
{
|
||||
timer1.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
private void cancel_Button(object sender, EventArgs e)
|
||||
{
|
||||
Application.Exit();
|
||||
}
|
||||
}
|
||||
}
|
351
HCI_Coursework_EVCHARGE/ChargingDetails.Designer.cs
generated
Normal file
351
HCI_Coursework_EVCHARGE/ChargingDetails.Designer.cs
generated
Normal file
@@ -0,0 +1,351 @@
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
partial class ChargingDetails
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.vehiclePanel = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.backButton = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.scooterButton = new System.Windows.Forms.Button();
|
||||
this.carButton = new System.Windows.Forms.Button();
|
||||
this.bikeButton = new System.Windows.Forms.Button();
|
||||
this.infoPanel = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.durationLabel = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.powerLabel = new System.Windows.Forms.Label();
|
||||
this.bayLabel = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.confirmPanel = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.confirmDetailsButton = new System.Windows.Forms.Button();
|
||||
this.panel1.SuspendLayout();
|
||||
this.vehiclePanel.SuspendLayout();
|
||||
this.infoPanel.SuspendLayout();
|
||||
this.confirmPanel.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Controls.Add(this.vehiclePanel);
|
||||
this.panel1.Controls.Add(this.infoPanel);
|
||||
this.panel1.Controls.Add(this.confirmPanel);
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Margin = new System.Windows.Forms.Padding(30, 30, 30, 0);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(1920, 1080);
|
||||
this.panel1.TabIndex = 0;
|
||||
//
|
||||
// vehiclePanel
|
||||
//
|
||||
this.vehiclePanel.ColumnCount = 1;
|
||||
this.vehiclePanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.vehiclePanel.Controls.Add(this.backButton, 0, 4);
|
||||
this.vehiclePanel.Controls.Add(this.label1, 0, 0);
|
||||
this.vehiclePanel.Controls.Add(this.scooterButton, 0, 3);
|
||||
this.vehiclePanel.Controls.Add(this.carButton, 0, 1);
|
||||
this.vehiclePanel.Controls.Add(this.bikeButton, 0, 2);
|
||||
this.vehiclePanel.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.vehiclePanel.Location = new System.Drawing.Point(0, 0);
|
||||
this.vehiclePanel.Name = "vehiclePanel";
|
||||
this.vehiclePanel.RowCount = 5;
|
||||
this.vehiclePanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
|
||||
this.vehiclePanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
|
||||
this.vehiclePanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
|
||||
this.vehiclePanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
|
||||
this.vehiclePanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 15F));
|
||||
this.vehiclePanel.Size = new System.Drawing.Size(646, 1080);
|
||||
this.vehiclePanel.TabIndex = 4;
|
||||
//
|
||||
// backButton
|
||||
//
|
||||
this.backButton.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.backButton.Location = new System.Drawing.Point(20, 938);
|
||||
this.backButton.Margin = new System.Windows.Forms.Padding(20);
|
||||
this.backButton.Name = "backButton";
|
||||
this.backButton.Size = new System.Drawing.Size(606, 122);
|
||||
this.backButton.TabIndex = 4;
|
||||
this.backButton.Text = "Cancel";
|
||||
this.backButton.UseVisualStyleBackColor = true;
|
||||
this.backButton.Click += new System.EventHandler(this.backButton_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.label1.Location = new System.Drawing.Point(30, 30);
|
||||
this.label1.Margin = new System.Windows.Forms.Padding(30);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(586, 48);
|
||||
this.label1.TabIndex = 3;
|
||||
this.label1.Text = "Select Vehicle Type";
|
||||
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// scooterButton
|
||||
//
|
||||
this.scooterButton.BackColor = System.Drawing.SystemColors.ActiveBorder;
|
||||
this.scooterButton.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.scooterButton.Location = new System.Drawing.Point(30, 678);
|
||||
this.scooterButton.Margin = new System.Windows.Forms.Padding(30);
|
||||
this.scooterButton.Name = "scooterButton";
|
||||
this.scooterButton.Size = new System.Drawing.Size(586, 210);
|
||||
this.scooterButton.TabIndex = 2;
|
||||
this.scooterButton.Text = "E-Scooter";
|
||||
this.scooterButton.UseVisualStyleBackColor = false;
|
||||
this.scooterButton.Click += new System.EventHandler(this.vehicleButton_Click);
|
||||
//
|
||||
// carButton
|
||||
//
|
||||
this.carButton.BackColor = System.Drawing.SystemColors.ActiveBorder;
|
||||
this.carButton.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.carButton.Location = new System.Drawing.Point(30, 138);
|
||||
this.carButton.Margin = new System.Windows.Forms.Padding(30);
|
||||
this.carButton.Name = "carButton";
|
||||
this.carButton.Size = new System.Drawing.Size(586, 210);
|
||||
this.carButton.TabIndex = 0;
|
||||
this.carButton.Text = "Car";
|
||||
this.carButton.UseVisualStyleBackColor = false;
|
||||
this.carButton.Click += new System.EventHandler(this.vehicleButton_Click);
|
||||
//
|
||||
// bikeButton
|
||||
//
|
||||
this.bikeButton.BackColor = System.Drawing.SystemColors.ActiveBorder;
|
||||
this.bikeButton.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.bikeButton.Location = new System.Drawing.Point(30, 408);
|
||||
this.bikeButton.Margin = new System.Windows.Forms.Padding(30);
|
||||
this.bikeButton.Name = "bikeButton";
|
||||
this.bikeButton.Size = new System.Drawing.Size(586, 210);
|
||||
this.bikeButton.TabIndex = 1;
|
||||
this.bikeButton.Text = "E-Bike";
|
||||
this.bikeButton.UseVisualStyleBackColor = false;
|
||||
this.bikeButton.Click += new System.EventHandler(this.vehicleButton_Click);
|
||||
//
|
||||
// infoPanel
|
||||
//
|
||||
this.infoPanel.ColumnCount = 1;
|
||||
this.infoPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.infoPanel.Controls.Add(this.label6, 0, 7);
|
||||
this.infoPanel.Controls.Add(this.textBox1, 0, 8);
|
||||
this.infoPanel.Controls.Add(this.label2, 0, 0);
|
||||
this.infoPanel.Controls.Add(this.durationLabel, 0, 6);
|
||||
this.infoPanel.Controls.Add(this.label5, 0, 1);
|
||||
this.infoPanel.Controls.Add(this.label4, 0, 5);
|
||||
this.infoPanel.Controls.Add(this.powerLabel, 0, 4);
|
||||
this.infoPanel.Controls.Add(this.bayLabel, 0, 2);
|
||||
this.infoPanel.Controls.Add(this.label3, 0, 3);
|
||||
this.infoPanel.Location = new System.Drawing.Point(646, 0);
|
||||
this.infoPanel.Name = "infoPanel";
|
||||
this.infoPanel.RowCount = 9;
|
||||
this.infoPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
|
||||
this.infoPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
|
||||
this.infoPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
|
||||
this.infoPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
|
||||
this.infoPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
|
||||
this.infoPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
|
||||
this.infoPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
|
||||
this.infoPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
|
||||
this.infoPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
|
||||
this.infoPanel.Size = new System.Drawing.Size(1274, 904);
|
||||
this.infoPanel.TabIndex = 11;
|
||||
this.infoPanel.Visible = false;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 30F);
|
||||
this.label6.Location = new System.Drawing.Point(20, 720);
|
||||
this.label6.Margin = new System.Windows.Forms.Padding(20, 20, 20, 5);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(1234, 68);
|
||||
this.label6.TabIndex = 11;
|
||||
this.label6.Text = "Charging Duration ( Hours )";
|
||||
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 25F);
|
||||
this.textBox1.Location = new System.Drawing.Point(500, 830);
|
||||
this.textBox1.Margin = new System.Windows.Forms.Padding(500, 30, 500, 30);
|
||||
this.textBox1.MaxLength = 1;
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(274, 45);
|
||||
this.textBox1.TabIndex = 12;
|
||||
this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.textBox1.Enter += new System.EventHandler(this.accountPin_Focus);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 30F);
|
||||
this.label2.Location = new System.Drawing.Point(0, 0);
|
||||
this.label2.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(1264, 63);
|
||||
this.label2.TabIndex = 4;
|
||||
this.label2.Text = "Charging Information";
|
||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// durationLabel
|
||||
//
|
||||
this.durationLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 25F);
|
||||
this.durationLabel.Location = new System.Drawing.Point(30, 605);
|
||||
this.durationLabel.Margin = new System.Windows.Forms.Padding(30, 5, 30, 30);
|
||||
this.durationLabel.Name = "durationLabel";
|
||||
this.durationLabel.Size = new System.Drawing.Size(1214, 63);
|
||||
this.durationLabel.TabIndex = 10;
|
||||
this.durationLabel.Text = "maxDuration";
|
||||
this.durationLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 30F);
|
||||
this.label5.Location = new System.Drawing.Point(20, 120);
|
||||
this.label5.Margin = new System.Windows.Forms.Padding(20, 20, 20, 5);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(1234, 63);
|
||||
this.label5.TabIndex = 7;
|
||||
this.label5.Text = "Charging Bay";
|
||||
this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 30F);
|
||||
this.label4.Location = new System.Drawing.Point(20, 520);
|
||||
this.label4.Margin = new System.Windows.Forms.Padding(20, 20, 20, 5);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(1234, 63);
|
||||
this.label4.TabIndex = 6;
|
||||
this.label4.Text = "Maximum Duration";
|
||||
this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// powerLabel
|
||||
//
|
||||
this.powerLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 25F);
|
||||
this.powerLabel.Location = new System.Drawing.Point(30, 405);
|
||||
this.powerLabel.Margin = new System.Windows.Forms.Padding(30, 5, 30, 30);
|
||||
this.powerLabel.Name = "powerLabel";
|
||||
this.powerLabel.Size = new System.Drawing.Size(1214, 63);
|
||||
this.powerLabel.TabIndex = 9;
|
||||
this.powerLabel.Text = "maxPower";
|
||||
this.powerLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// bayLabel
|
||||
//
|
||||
this.bayLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 25F);
|
||||
this.bayLabel.Location = new System.Drawing.Point(30, 205);
|
||||
this.bayLabel.Margin = new System.Windows.Forms.Padding(30, 5, 30, 30);
|
||||
this.bayLabel.Name = "bayLabel";
|
||||
this.bayLabel.Size = new System.Drawing.Size(1214, 63);
|
||||
this.bayLabel.TabIndex = 8;
|
||||
this.bayLabel.Text = "chargingBay";
|
||||
this.bayLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 30F);
|
||||
this.label3.Location = new System.Drawing.Point(20, 320);
|
||||
this.label3.Margin = new System.Windows.Forms.Padding(20, 20, 20, 5);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(1234, 63);
|
||||
this.label3.TabIndex = 5;
|
||||
this.label3.Text = "Maximum Power";
|
||||
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// confirmPanel
|
||||
//
|
||||
this.confirmPanel.ColumnCount = 1;
|
||||
this.confirmPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.confirmPanel.Controls.Add(this.confirmDetailsButton, 0, 0);
|
||||
this.confirmPanel.Location = new System.Drawing.Point(648, 904);
|
||||
this.confirmPanel.Name = "confirmPanel";
|
||||
this.confirmPanel.RowCount = 1;
|
||||
this.confirmPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.confirmPanel.Size = new System.Drawing.Size(1272, 176);
|
||||
this.confirmPanel.TabIndex = 3;
|
||||
this.confirmPanel.Visible = false;
|
||||
//
|
||||
// confirmDetailsButton
|
||||
//
|
||||
this.confirmDetailsButton.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.confirmDetailsButton.Location = new System.Drawing.Point(20, 20);
|
||||
this.confirmDetailsButton.Margin = new System.Windows.Forms.Padding(20);
|
||||
this.confirmDetailsButton.Name = "confirmDetailsButton";
|
||||
this.confirmDetailsButton.Size = new System.Drawing.Size(1232, 136);
|
||||
this.confirmDetailsButton.TabIndex = 3;
|
||||
this.confirmDetailsButton.Text = "Confirm";
|
||||
this.confirmDetailsButton.UseVisualStyleBackColor = true;
|
||||
this.confirmDetailsButton.Click += new System.EventHandler(this.confirmButton_Click);
|
||||
//
|
||||
// ChargingDetails
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1920, 1080);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Name = "ChargingDetails";
|
||||
this.Text = "ChargingDetails";
|
||||
this.TopMost = true;
|
||||
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.vehiclePanel.ResumeLayout(false);
|
||||
this.vehiclePanel.PerformLayout();
|
||||
this.infoPanel.ResumeLayout(false);
|
||||
this.infoPanel.PerformLayout();
|
||||
this.confirmPanel.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label durationLabel;
|
||||
private System.Windows.Forms.Label powerLabel;
|
||||
private System.Windows.Forms.Label bayLabel;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.Button confirmDetailsButton;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private System.Windows.Forms.TableLayoutPanel confirmPanel;
|
||||
private System.Windows.Forms.TableLayoutPanel infoPanel;
|
||||
private System.Windows.Forms.TableLayoutPanel vehiclePanel;
|
||||
private System.Windows.Forms.Button backButton;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Button scooterButton;
|
||||
private System.Windows.Forms.Button carButton;
|
||||
private System.Windows.Forms.Button bikeButton;
|
||||
}
|
||||
}
|
120
HCI_Coursework_EVCHARGE/ChargingDetails.cs
Normal file
120
HCI_Coursework_EVCHARGE/ChargingDetails.cs
Normal file
@@ -0,0 +1,120 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
public partial class ChargingDetails : Form
|
||||
{
|
||||
Pinpad pinpad;
|
||||
String vehicle;
|
||||
String duration;
|
||||
String bayNo;
|
||||
|
||||
public ChargingDetails( int bayNo )
|
||||
{
|
||||
this.bayNo = bayNo.ToString();
|
||||
InitializeComponent();
|
||||
bayLabel.Text = "Bay " + this.bayNo;
|
||||
}
|
||||
|
||||
public String[] getCarInfo( String vehicleType )
|
||||
{
|
||||
String[] max = {"",""};
|
||||
switch (vehicleType)
|
||||
{
|
||||
case "car":
|
||||
max[0] = ("7");
|
||||
max[1] = ("8");
|
||||
break;
|
||||
case "e-bike":
|
||||
max[0] = ("0.9");
|
||||
max[1] = ("2");
|
||||
break;
|
||||
case "e-scooter":
|
||||
max[0] = ("0.25");
|
||||
max[1] = ("1");
|
||||
break;
|
||||
}
|
||||
return max;
|
||||
}
|
||||
private void vehicleButton_Click( object sender, EventArgs e)
|
||||
{
|
||||
if ( sender is Button button)
|
||||
{
|
||||
carButton.BackColor = SystemColors.ActiveBorder;
|
||||
bikeButton.BackColor = SystemColors.ActiveBorder;
|
||||
scooterButton.BackColor = SystemColors.ActiveBorder;
|
||||
vehicle = button.Text.ToLower();
|
||||
|
||||
String[] maxArr = getCarInfo(vehicle);
|
||||
Console.WriteLine(maxArr[0], maxArr[1]);
|
||||
if ( maxArr.Length > 0 )
|
||||
{
|
||||
powerLabel.Text = $"{maxArr[0]} kW";
|
||||
durationLabel.Text = $"{maxArr[1]} hours";
|
||||
}
|
||||
button.BackColor = SystemColors.ControlDark;
|
||||
infoPanel.Visible = true;
|
||||
System.Threading.Thread.Sleep(100);
|
||||
}
|
||||
}
|
||||
|
||||
private void backButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
pinpad?.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
private void confirmButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
pinpad?.Close();
|
||||
String maxDuration = getCarInfo(vehicle)[1];
|
||||
if (Convert.ToInt16(textBox1.Text) > Convert.ToInt16(maxDuration))
|
||||
{
|
||||
MessageBox.Show($"Duration must be less than {maxDuration} hours.");
|
||||
}
|
||||
else
|
||||
{
|
||||
duration = textBox1.Text;
|
||||
DialogResult confirm = MessageBox.Show($"Are you sure these details are correct?\nVehicle: {vehicle}\nDuration: {duration} hours?", "Confirm:", MessageBoxButtons.YesNo);
|
||||
if (confirm == DialogResult.Yes)
|
||||
{
|
||||
Payment payment = new Payment(bayNo, vehicle, duration);
|
||||
payment.Show();
|
||||
payment.FormClosed += delegate
|
||||
{
|
||||
payment = null;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
private void accountPin_Focus(object sender, EventArgs e)
|
||||
{
|
||||
TextBox textBox = (TextBox)sender;
|
||||
|
||||
if (pinpad == null)
|
||||
{
|
||||
pinpad = new Pinpad();
|
||||
pinpad.FormClosed += delegate
|
||||
{
|
||||
if( textBox.Text != null )
|
||||
{
|
||||
confirmPanel.Visible = true;
|
||||
}
|
||||
pinpad = null;
|
||||
this.ActiveControl = label1;
|
||||
};
|
||||
}
|
||||
pinpad.setTextBox(textBox);
|
||||
pinpad.Show();
|
||||
pinpad.Top = this.Top + textBox.Top + textBox.Height - 250;
|
||||
}
|
||||
}
|
||||
}
|
120
HCI_Coursework_EVCHARGE/ChargingDetails.resx
Normal file
120
HCI_Coursework_EVCHARGE/ChargingDetails.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
@@ -33,6 +33,15 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="AForge, Version=2.2.5.0, Culture=neutral, PublicKeyToken=c1db6ff4eaa06aeb, processorArchitecture=MSIL">
|
||||
<HintPath>packages\AForge.2.2.5\lib\AForge.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AForge.Video, Version=2.2.5.0, Culture=neutral, PublicKeyToken=cbfb6e07d173c401, processorArchitecture=MSIL">
|
||||
<HintPath>packages\AForge.Video.2.2.5\lib\AForge.Video.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AForge.Video.DirectShow, Version=2.2.5.0, Culture=neutral, PublicKeyToken=61ea4348d43881b7, processorArchitecture=MSIL">
|
||||
<HintPath>packages\AForge.Video.DirectShow.2.2.5\lib\AForge.Video.DirectShow.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
@@ -44,36 +53,99 @@
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="zxing, Version=0.16.6.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL">
|
||||
<HintPath>packages\ZXing.Net.0.16.6\lib\net47\zxing.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="zxing.presentation, Version=0.16.6.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL">
|
||||
<HintPath>packages\ZXing.Net.0.16.6\lib\net47\zxing.presentation.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Form1.cs">
|
||||
<Compile Include="BaySelection.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form1.Designer.cs">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
<Compile Include="BaySelection.Designer.cs">
|
||||
<DependentUpon>BaySelection.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Form2.cs">
|
||||
<Compile Include="Charging.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form2.Designer.cs">
|
||||
<DependentUpon>Form2.cs</DependentUpon>
|
||||
<Compile Include="Charging.Designer.cs">
|
||||
<DependentUpon>Charging.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Form3.cs">
|
||||
<Compile Include="ChargingDetails.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form3.Designer.cs">
|
||||
<DependentUpon>Form3.cs</DependentUpon>
|
||||
<Compile Include="ChargingDetails.Designer.cs">
|
||||
<DependentUpon>ChargingDetails.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LandingForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LandingForm.Designer.cs">
|
||||
<DependentUpon>LandingForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LoginForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LoginForm.Designer.cs">
|
||||
<DependentUpon>LoginForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Keyboard.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Keyboard.Designer.cs">
|
||||
<DependentUpon>Keyboard.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Payment.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Payment.Designer.cs">
|
||||
<DependentUpon>Payment.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pinpad.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Pinpad.Designer.cs">
|
||||
<DependentUpon>Pinpad.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="Form1.resx">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
<Compile Include="QRReader.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="QRReader.Designer.cs">
|
||||
<DependentUpon>QRReader.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="TapCard.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="TapCard.Designer.cs">
|
||||
<DependentUpon>TapCard.cs</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="BaySelection.resx">
|
||||
<DependentUpon>BaySelection.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Form2.resx">
|
||||
<DependentUpon>Form2.cs</DependentUpon>
|
||||
<EmbeddedResource Include="Charging.resx">
|
||||
<DependentUpon>Charging.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Form3.resx">
|
||||
<DependentUpon>Form3.cs</DependentUpon>
|
||||
<EmbeddedResource Include="ChargingDetails.resx">
|
||||
<DependentUpon>ChargingDetails.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="LandingForm.resx">
|
||||
<DependentUpon>LandingForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="LoginForm.resx">
|
||||
<DependentUpon>LoginForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Keyboard.resx">
|
||||
<DependentUpon>Keyboard.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Payment.resx">
|
||||
<DependentUpon>Payment.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Pinpad.resx">
|
||||
<DependentUpon>Pinpad.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
@@ -83,7 +155,15 @@
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="QRReader.resx">
|
||||
<DependentUpon>QRReader.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="TapCard.resx">
|
||||
<DependentUpon>TapCard.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
@@ -97,5 +177,8 @@
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Assets\contactless.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
@@ -476,19 +476,22 @@
|
||||
this.buttonConfirm.TabIndex = 28;
|
||||
this.buttonConfirm.Text = "Confirm";
|
||||
this.buttonConfirm.UseVisualStyleBackColor = true;
|
||||
this.buttonConfirm.Click += new System.EventHandler(this.confirm_Click);
|
||||
//
|
||||
// buttonCaps
|
||||
//
|
||||
this.buttonCaps.BackColor = System.Drawing.SystemColors.ControlDark;
|
||||
this.buttonCaps.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.buttonCaps.FlatAppearance.BorderSize = 4;
|
||||
this.buttonCaps.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.buttonCaps.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F);
|
||||
this.buttonCaps.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
this.buttonCaps.Location = new System.Drawing.Point(18, 312);
|
||||
this.buttonCaps.Name = "buttonCaps";
|
||||
this.buttonCaps.Size = new System.Drawing.Size(128, 50);
|
||||
this.buttonCaps.TabIndex = 29;
|
||||
this.buttonCaps.Text = "Caps Lock";
|
||||
this.buttonCaps.UseVisualStyleBackColor = true;
|
||||
this.buttonCaps.UseVisualStyleBackColor = false;
|
||||
this.buttonCaps.Click += new System.EventHandler(this.caps_Click);
|
||||
//
|
||||
// panel1
|
||||
@@ -552,6 +555,7 @@
|
||||
this.button0.TabIndex = 39;
|
||||
this.button0.Text = "0";
|
||||
this.button0.UseVisualStyleBackColor = true;
|
||||
this.button0.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button9
|
||||
//
|
||||
@@ -565,6 +569,7 @@
|
||||
this.button9.TabIndex = 38;
|
||||
this.button9.Text = "9";
|
||||
this.button9.UseVisualStyleBackColor = true;
|
||||
this.button9.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button8
|
||||
//
|
||||
@@ -578,6 +583,7 @@
|
||||
this.button8.TabIndex = 37;
|
||||
this.button8.Text = "8";
|
||||
this.button8.UseVisualStyleBackColor = true;
|
||||
this.button8.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button7
|
||||
//
|
||||
@@ -591,6 +597,7 @@
|
||||
this.button7.TabIndex = 36;
|
||||
this.button7.Text = "7";
|
||||
this.button7.UseVisualStyleBackColor = true;
|
||||
this.button7.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button6
|
||||
//
|
||||
@@ -604,6 +611,7 @@
|
||||
this.button6.TabIndex = 35;
|
||||
this.button6.Text = "6";
|
||||
this.button6.UseVisualStyleBackColor = true;
|
||||
this.button6.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button5
|
||||
//
|
||||
@@ -617,6 +625,7 @@
|
||||
this.button5.TabIndex = 34;
|
||||
this.button5.Text = "5";
|
||||
this.button5.UseVisualStyleBackColor = true;
|
||||
this.button5.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button4
|
||||
//
|
||||
@@ -630,6 +639,7 @@
|
||||
this.button4.TabIndex = 33;
|
||||
this.button4.Text = "4";
|
||||
this.button4.UseVisualStyleBackColor = true;
|
||||
this.button4.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button3
|
||||
//
|
||||
@@ -643,6 +653,7 @@
|
||||
this.button3.TabIndex = 32;
|
||||
this.button3.Text = "3";
|
||||
this.button3.UseVisualStyleBackColor = true;
|
||||
this.button3.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button2
|
||||
//
|
||||
@@ -656,6 +667,7 @@
|
||||
this.button2.TabIndex = 31;
|
||||
this.button2.Text = "2";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button1
|
||||
//
|
||||
@@ -669,6 +681,7 @@
|
||||
this.button1.TabIndex = 30;
|
||||
this.button1.Text = "1";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// Keyboard
|
||||
//
|
@@ -31,14 +31,22 @@ namespace HCI_Coursework_EVCHARGE
|
||||
|
||||
private void button_Click(object sender, EventArgs e)
|
||||
{
|
||||
if( capsLock == true )
|
||||
if (entryBox.Text.Length < 10)
|
||||
{
|
||||
entryBox.Text += ((Button)sender).Text;
|
||||
if (capsLock == true)
|
||||
{
|
||||
entryBox.Text += ((Button)sender).Text;
|
||||
}
|
||||
else
|
||||
{
|
||||
entryBox.Text += ((Button)sender).Text.ToLower();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
entryBox.Text += ((Button)sender).Text.ToLower();
|
||||
MessageBox.Show("Account Number cannot be more than 10 characters!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void backspace_Click(object sender, EventArgs e)
|
||||
@@ -58,12 +66,19 @@ namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
if ( capsLock == true )
|
||||
{
|
||||
buttonCaps.BackColor = SystemColors.Control;
|
||||
capsLock = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
buttonCaps.BackColor = SystemColors.ControlDark;
|
||||
capsLock = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void confirm_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
@@ -37,11 +37,13 @@
|
||||
//
|
||||
// accountNoButton
|
||||
//
|
||||
this.accountNoButton.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
this.accountNoButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.accountNoButton.Location = new System.Drawing.Point(220, 232);
|
||||
this.accountNoButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.accountNoButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F);
|
||||
this.accountNoButton.Location = new System.Drawing.Point(544, 664);
|
||||
this.accountNoButton.Name = "accountNoButton";
|
||||
this.accountNoButton.Size = new System.Drawing.Size(144, 96);
|
||||
this.accountNoButton.Size = new System.Drawing.Size(318, 172);
|
||||
this.accountNoButton.TabIndex = 0;
|
||||
this.accountNoButton.Text = "Account Number";
|
||||
this.accountNoButton.UseVisualStyleBackColor = true;
|
||||
@@ -49,25 +51,30 @@
|
||||
//
|
||||
// qrCodeButton
|
||||
//
|
||||
this.qrCodeButton.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
this.qrCodeButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.qrCodeButton.Location = new System.Drawing.Point(504, 232);
|
||||
this.qrCodeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.qrCodeButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F);
|
||||
this.qrCodeButton.Location = new System.Drawing.Point(1096, 664);
|
||||
this.qrCodeButton.Name = "qrCodeButton";
|
||||
this.qrCodeButton.Size = new System.Drawing.Size(144, 96);
|
||||
this.qrCodeButton.Size = new System.Drawing.Size(318, 172);
|
||||
this.qrCodeButton.TabIndex = 1;
|
||||
this.qrCodeButton.Text = "Account Card";
|
||||
this.qrCodeButton.UseVisualStyleBackColor = true;
|
||||
this.qrCodeButton.Click += new System.EventHandler(this.qr_Click);
|
||||
//
|
||||
// loginLabel
|
||||
//
|
||||
this.loginLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
this.loginLabel.AutoSize = true;
|
||||
this.loginLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 34F);
|
||||
this.loginLabel.Location = new System.Drawing.Point(360, 144);
|
||||
this.loginLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 50F);
|
||||
this.loginLabel.Location = new System.Drawing.Point(19, 436);
|
||||
this.loginLabel.MinimumSize = new System.Drawing.Size(1920, 0);
|
||||
this.loginLabel.Name = "loginLabel";
|
||||
this.loginLabel.Size = new System.Drawing.Size(149, 53);
|
||||
this.loginLabel.Size = new System.Drawing.Size(1920, 76);
|
||||
this.loginLabel.TabIndex = 2;
|
||||
this.loginLabel.Text = "Log in";
|
||||
this.loginLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
this.loginLabel.Click += new System.EventHandler(this.loginLabel_Click);
|
||||
//
|
||||
// panel1
|
||||
@@ -77,18 +84,18 @@
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.panel1.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel1.Controls.Add(this.loginLabel);
|
||||
this.panel1.Controls.Add(this.qrCodeButton);
|
||||
this.panel1.Controls.Add(this.accountNoButton);
|
||||
this.panel1.Controls.Add(this.qrCodeButton);
|
||||
this.panel1.Controls.Add(this.loginLabel);
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(854, 480);
|
||||
this.panel1.Size = new System.Drawing.Size(1920, 1080);
|
||||
this.panel1.TabIndex = 3;
|
||||
//
|
||||
// LandingForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(854, 480);
|
||||
this.ClientSize = new System.Drawing.Size(1920, 1080);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Name = "LandingForm";
|
@@ -26,9 +26,29 @@ namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
var loginForm = new AccountDetailForm();
|
||||
loginForm.Show();
|
||||
loginForm.FormClosed += delegate
|
||||
{
|
||||
loginForm = null;
|
||||
};
|
||||
|
||||
//loginForm.Top = this.Top + ( loginForm.Height / 3 );
|
||||
//loginForm.Left = this.Left + ( ( this.Width * 3 ) / 7 );
|
||||
}
|
||||
|
||||
private void debugclose_click(object sender, EventArgs e)
|
||||
{
|
||||
Application.Exit();
|
||||
}
|
||||
|
||||
private void qr_Click(object sender, EventArgs e)
|
||||
{
|
||||
var loginForm = new QRReader();
|
||||
|
||||
loginForm.Show();
|
||||
loginForm.FormClosed += delegate
|
||||
{
|
||||
loginForm = null;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
@@ -29,13 +29,13 @@
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.accountNoTextBox = new System.Windows.Forms.TextBox();
|
||||
this.loginLabel = new System.Windows.Forms.Label();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.confirmLoginButton = new System.Windows.Forms.Button();
|
||||
this.cancelLoginButton = new System.Windows.Forms.Button();
|
||||
this.accountIDLabel = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.accountIDLabel = new System.Windows.Forms.Label();
|
||||
this.cancelLoginButton = new System.Windows.Forms.Button();
|
||||
this.confirmLoginButton = new System.Windows.Forms.Button();
|
||||
this.accountPinTextBox = new System.Windows.Forms.TextBox();
|
||||
this.loginLabel = new System.Windows.Forms.Label();
|
||||
this.accountNoTextBox = new System.Windows.Forms.TextBox();
|
||||
this.panel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@@ -47,7 +47,7 @@
|
||||
this.panel1.Controls.Add(this.accountIDLabel);
|
||||
this.panel1.Controls.Add(this.cancelLoginButton);
|
||||
this.panel1.Controls.Add(this.confirmLoginButton);
|
||||
this.panel1.Controls.Add(this.textBox1);
|
||||
this.panel1.Controls.Add(this.accountPinTextBox);
|
||||
this.panel1.Controls.Add(this.loginLabel);
|
||||
this.panel1.Controls.Add(this.accountNoTextBox);
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
@@ -55,6 +55,74 @@
|
||||
this.panel1.Size = new System.Drawing.Size(456, 544);
|
||||
this.panel1.TabIndex = 0;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F);
|
||||
this.label1.Location = new System.Drawing.Point(88, 256);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(49, 26);
|
||||
this.label1.TabIndex = 6;
|
||||
this.label1.Text = "PIN";
|
||||
//
|
||||
// accountIDLabel
|
||||
//
|
||||
this.accountIDLabel.AutoSize = true;
|
||||
this.accountIDLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F);
|
||||
this.accountIDLabel.Location = new System.Drawing.Point(88, 152);
|
||||
this.accountIDLabel.Name = "accountIDLabel";
|
||||
this.accountIDLabel.Size = new System.Drawing.Size(119, 26);
|
||||
this.accountIDLabel.TabIndex = 5;
|
||||
this.accountIDLabel.Text = "Account ID";
|
||||
//
|
||||
// cancelLoginButton
|
||||
//
|
||||
this.cancelLoginButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.cancelLoginButton.Location = new System.Drawing.Point(264, 392);
|
||||
this.cancelLoginButton.Name = "cancelLoginButton";
|
||||
this.cancelLoginButton.Size = new System.Drawing.Size(150, 75);
|
||||
this.cancelLoginButton.TabIndex = 4;
|
||||
this.cancelLoginButton.Text = "Cancel";
|
||||
this.cancelLoginButton.UseVisualStyleBackColor = true;
|
||||
this.cancelLoginButton.Click += new System.EventHandler(this.cancel_Click);
|
||||
//
|
||||
// confirmLoginButton
|
||||
//
|
||||
this.confirmLoginButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.confirmLoginButton.Location = new System.Drawing.Point(40, 392);
|
||||
this.confirmLoginButton.Name = "confirmLoginButton";
|
||||
this.confirmLoginButton.Size = new System.Drawing.Size(150, 75);
|
||||
this.confirmLoginButton.TabIndex = 3;
|
||||
this.confirmLoginButton.Text = "Login";
|
||||
this.confirmLoginButton.UseVisualStyleBackColor = true;
|
||||
this.confirmLoginButton.Click += new System.EventHandler(this.login_Click);
|
||||
//
|
||||
// accountPinTextBox
|
||||
//
|
||||
this.accountPinTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
this.accountPinTextBox.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.accountPinTextBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.accountPinTextBox.Cursor = System.Windows.Forms.Cursors.IBeam;
|
||||
this.accountPinTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.accountPinTextBox.Location = new System.Drawing.Point(80, 288);
|
||||
this.accountPinTextBox.MaxLength = 6;
|
||||
this.accountPinTextBox.Name = "accountPinTextBox";
|
||||
this.accountPinTextBox.PasswordChar = '*';
|
||||
this.accountPinTextBox.Size = new System.Drawing.Size(288, 35);
|
||||
this.accountPinTextBox.TabIndex = 2;
|
||||
this.accountPinTextBox.Enter += new System.EventHandler(this.accountPin_Focus);
|
||||
//
|
||||
// loginLabel
|
||||
//
|
||||
this.loginLabel.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.loginLabel.AutoSize = true;
|
||||
this.loginLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 22F);
|
||||
this.loginLabel.Location = new System.Drawing.Point(120, 72);
|
||||
this.loginLabel.Name = "loginLabel";
|
||||
this.loginLabel.Size = new System.Drawing.Size(208, 36);
|
||||
this.loginLabel.TabIndex = 1;
|
||||
this.loginLabel.Text = "Account Login";
|
||||
//
|
||||
// accountNoTextBox
|
||||
//
|
||||
this.accountNoTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
@@ -68,71 +136,7 @@
|
||||
this.accountNoTextBox.Size = new System.Drawing.Size(288, 35);
|
||||
this.accountNoTextBox.TabIndex = 0;
|
||||
this.accountNoTextBox.Enter += new System.EventHandler(this.accountNo_Focus);
|
||||
//
|
||||
// loginLabel
|
||||
//
|
||||
this.loginLabel.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.loginLabel.AutoSize = true;
|
||||
this.loginLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 22F);
|
||||
this.loginLabel.Location = new System.Drawing.Point(120, 72);
|
||||
this.loginLabel.Name = "loginLabel";
|
||||
this.loginLabel.Size = new System.Drawing.Size(208, 36);
|
||||
this.loginLabel.TabIndex = 1;
|
||||
this.loginLabel.Text = "Account Login";
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
this.textBox1.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.textBox1.Cursor = System.Windows.Forms.Cursors.IBeam;
|
||||
this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.textBox1.Location = new System.Drawing.Point(80, 288);
|
||||
this.textBox1.MaxLength = 6;
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.PasswordChar = '*';
|
||||
this.textBox1.Size = new System.Drawing.Size(288, 35);
|
||||
this.textBox1.TabIndex = 2;
|
||||
//
|
||||
// confirmLoginButton
|
||||
//
|
||||
this.confirmLoginButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.confirmLoginButton.Location = new System.Drawing.Point(40, 392);
|
||||
this.confirmLoginButton.Name = "confirmLoginButton";
|
||||
this.confirmLoginButton.Size = new System.Drawing.Size(150, 75);
|
||||
this.confirmLoginButton.TabIndex = 3;
|
||||
this.confirmLoginButton.Text = "Login";
|
||||
this.confirmLoginButton.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// cancelLoginButton
|
||||
//
|
||||
this.cancelLoginButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.cancelLoginButton.Location = new System.Drawing.Point(264, 392);
|
||||
this.cancelLoginButton.Name = "cancelLoginButton";
|
||||
this.cancelLoginButton.Size = new System.Drawing.Size(150, 75);
|
||||
this.cancelLoginButton.TabIndex = 4;
|
||||
this.cancelLoginButton.Text = "Cancel";
|
||||
this.cancelLoginButton.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// accountIDLabel
|
||||
//
|
||||
this.accountIDLabel.AutoSize = true;
|
||||
this.accountIDLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F);
|
||||
this.accountIDLabel.Location = new System.Drawing.Point(88, 152);
|
||||
this.accountIDLabel.Name = "accountIDLabel";
|
||||
this.accountIDLabel.Size = new System.Drawing.Size(119, 26);
|
||||
this.accountIDLabel.TabIndex = 5;
|
||||
this.accountIDLabel.Text = "Account ID";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F);
|
||||
this.label1.Location = new System.Drawing.Point(88, 256);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(49, 26);
|
||||
this.label1.TabIndex = 6;
|
||||
this.label1.Text = "PIN";
|
||||
this.accountNoTextBox.Leave += new System.EventHandler(this.accountNo_LoseFocus);
|
||||
//
|
||||
// AccountDetailForm
|
||||
//
|
||||
@@ -158,7 +162,7 @@
|
||||
private System.Windows.Forms.Label accountIDLabel;
|
||||
private System.Windows.Forms.Button cancelLoginButton;
|
||||
private System.Windows.Forms.Button confirmLoginButton;
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private System.Windows.Forms.TextBox accountPinTextBox;
|
||||
private System.Windows.Forms.Label label1;
|
||||
}
|
||||
}
|
@@ -15,6 +15,7 @@ namespace HCI_Coursework_EVCHARGE
|
||||
public partial class AccountDetailForm : Form
|
||||
{
|
||||
Keyboard keyboard;
|
||||
Pinpad pinpad;
|
||||
public AccountDetailForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -42,5 +43,64 @@ namespace HCI_Coursework_EVCHARGE
|
||||
|
||||
keyboard.Top = this.Top + textBox.Top + textBox.Height + 30;
|
||||
}
|
||||
|
||||
private void accountPin_Focus(object sender, EventArgs e) {
|
||||
TextBox textBox = (TextBox)sender;
|
||||
|
||||
if ( pinpad == null )
|
||||
{
|
||||
pinpad = new Pinpad();
|
||||
pinpad.FormClosed += delegate
|
||||
{
|
||||
pinpad = null;
|
||||
this.ActiveControl = loginLabel;
|
||||
};
|
||||
}
|
||||
pinpad.setTextBox(textBox);
|
||||
pinpad.Show();
|
||||
pinpad.Top = this.Top + textBox.Top + textBox.Height + 30;
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void cancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
keyboard?.Close();
|
||||
pinpad?.Close();
|
||||
Close();
|
||||
}
|
||||
|
||||
private void login_Click(object sender, EventArgs e)
|
||||
{
|
||||
if ( accountNoTextBox.Text == "" )
|
||||
{
|
||||
if ( accountPinTextBox.Text == "" )
|
||||
{
|
||||
BaySelection baySelection = new BaySelection( accountNoTextBox.Text );
|
||||
baySelection.Show();
|
||||
baySelection.FormClosed += delegate
|
||||
{
|
||||
baySelection = null;
|
||||
};
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void accountNo_LoseFocus(object sender, EventArgs e)
|
||||
{
|
||||
if (keyboard != null)
|
||||
{
|
||||
keyboard.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void accountPin_LoseFocus(Object sender, EventArgs e)
|
||||
{
|
||||
if (pinpad != null )
|
||||
{
|
||||
pinpad.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
120
HCI_Coursework_EVCHARGE/LoginForm.resx
Normal file
120
HCI_Coursework_EVCHARGE/LoginForm.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
116
HCI_Coursework_EVCHARGE/Payment.Designer.cs
generated
Normal file
116
HCI_Coursework_EVCHARGE/Payment.Designer.cs
generated
Normal file
@@ -0,0 +1,116 @@
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
partial class Payment
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.loginLabel = new System.Windows.Forms.Label();
|
||||
this.qrCodeButton = new System.Windows.Forms.Button();
|
||||
this.accountNoButton = new System.Windows.Forms.Button();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// loginLabel
|
||||
//
|
||||
this.loginLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
this.loginLabel.AutoSize = true;
|
||||
this.loginLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 34F);
|
||||
this.loginLabel.Location = new System.Drawing.Point(0, 456);
|
||||
this.loginLabel.MinimumSize = new System.Drawing.Size(1920, 0);
|
||||
this.loginLabel.Name = "loginLabel";
|
||||
this.loginLabel.Size = new System.Drawing.Size(1920, 53);
|
||||
this.loginLabel.TabIndex = 3;
|
||||
this.loginLabel.Text = "Choose a Payment Method";
|
||||
this.loginLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// qrCodeButton
|
||||
//
|
||||
this.qrCodeButton.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.qrCodeButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.qrCodeButton.Location = new System.Drawing.Point(1042, 3);
|
||||
this.qrCodeButton.Margin = new System.Windows.Forms.Padding(90, 3, 3, 3);
|
||||
this.qrCodeButton.Name = "qrCodeButton";
|
||||
this.qrCodeButton.Size = new System.Drawing.Size(144, 114);
|
||||
this.qrCodeButton.TabIndex = 5;
|
||||
this.qrCodeButton.Text = "Tap Payment Card";
|
||||
this.qrCodeButton.UseVisualStyleBackColor = true;
|
||||
this.qrCodeButton.Click += new System.EventHandler(this.tapButton_Click);
|
||||
//
|
||||
// accountNoButton
|
||||
//
|
||||
this.accountNoButton.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.accountNoButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.accountNoButton.Location = new System.Drawing.Point(718, 3);
|
||||
this.accountNoButton.Margin = new System.Windows.Forms.Padding(3, 3, 90, 3);
|
||||
this.accountNoButton.Name = "accountNoButton";
|
||||
this.accountNoButton.Size = new System.Drawing.Size(144, 114);
|
||||
this.accountNoButton.TabIndex = 4;
|
||||
this.accountNoButton.Text = "Account Credit";
|
||||
this.accountNoButton.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 2;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.qrCodeButton, 1, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.accountNoButton, 0, 0);
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 632);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 1;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(1904, 120);
|
||||
this.tableLayoutPanel1.TabIndex = 6;
|
||||
//
|
||||
// Payment
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1904, 1041);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.Controls.Add(this.loginLabel);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Name = "Payment";
|
||||
this.Text = "Payment";
|
||||
this.TopMost = true;
|
||||
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label loginLabel;
|
||||
private System.Windows.Forms.Button qrCodeButton;
|
||||
private System.Windows.Forms.Button accountNoButton;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
}
|
||||
}
|
37
HCI_Coursework_EVCHARGE/Payment.cs
Normal file
37
HCI_Coursework_EVCHARGE/Payment.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Runtime.Remoting.Metadata.W3cXsd2001;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
public partial class Payment : Form
|
||||
{
|
||||
String bay;
|
||||
String vehicle;
|
||||
String duration;
|
||||
public Payment( String bay, String vehicle, String duration)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.bay = bay;
|
||||
this.vehicle = vehicle;
|
||||
this.duration = duration;
|
||||
}
|
||||
|
||||
private void tapButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
TapCard tapCard = new TapCard( bay, vehicle, duration );
|
||||
tapCard.Show();
|
||||
tapCard.FormClosed += delegate
|
||||
{
|
||||
tapCard = null;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
120
HCI_Coursework_EVCHARGE/Payment.resx
Normal file
120
HCI_Coursework_EVCHARGE/Payment.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
264
HCI_Coursework_EVCHARGE/Pinpad.Designer.cs
generated
Normal file
264
HCI_Coursework_EVCHARGE/Pinpad.Designer.cs
generated
Normal file
@@ -0,0 +1,264 @@
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
partial class Pinpad
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.button3 = new System.Windows.Forms.Button();
|
||||
this.button4 = new System.Windows.Forms.Button();
|
||||
this.button5 = new System.Windows.Forms.Button();
|
||||
this.button6 = new System.Windows.Forms.Button();
|
||||
this.button7 = new System.Windows.Forms.Button();
|
||||
this.button8 = new System.Windows.Forms.Button();
|
||||
this.button9 = new System.Windows.Forms.Button();
|
||||
this.button0 = new System.Windows.Forms.Button();
|
||||
this.buttonConfirm = new System.Windows.Forms.Button();
|
||||
this.buttonBack = new System.Windows.Forms.Button();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.button1.FlatAppearance.BorderSize = 4;
|
||||
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.button1.Location = new System.Drawing.Point(16, 16);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(50, 50);
|
||||
this.button1.TabIndex = 31;
|
||||
this.button1.Text = "1";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.button2.FlatAppearance.BorderSize = 4;
|
||||
this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.button2.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.button2.Location = new System.Drawing.Point(88, 16);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(50, 50);
|
||||
this.button2.TabIndex = 32;
|
||||
this.button2.Text = "2";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button3
|
||||
//
|
||||
this.button3.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.button3.FlatAppearance.BorderSize = 4;
|
||||
this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.button3.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.button3.Location = new System.Drawing.Point(160, 16);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.Size = new System.Drawing.Size(50, 50);
|
||||
this.button3.TabIndex = 33;
|
||||
this.button3.Text = "3";
|
||||
this.button3.UseVisualStyleBackColor = true;
|
||||
this.button3.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button4
|
||||
//
|
||||
this.button4.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.button4.FlatAppearance.BorderSize = 4;
|
||||
this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.button4.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.button4.Location = new System.Drawing.Point(16, 88);
|
||||
this.button4.Name = "button4";
|
||||
this.button4.Size = new System.Drawing.Size(50, 50);
|
||||
this.button4.TabIndex = 34;
|
||||
this.button4.Text = "4";
|
||||
this.button4.UseVisualStyleBackColor = true;
|
||||
this.button4.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button5
|
||||
//
|
||||
this.button5.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.button5.FlatAppearance.BorderSize = 4;
|
||||
this.button5.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.button5.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.button5.Location = new System.Drawing.Point(88, 88);
|
||||
this.button5.Name = "button5";
|
||||
this.button5.Size = new System.Drawing.Size(50, 50);
|
||||
this.button5.TabIndex = 35;
|
||||
this.button5.Text = "5";
|
||||
this.button5.UseVisualStyleBackColor = true;
|
||||
this.button5.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button6
|
||||
//
|
||||
this.button6.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.button6.FlatAppearance.BorderSize = 4;
|
||||
this.button6.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.button6.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.button6.Location = new System.Drawing.Point(160, 88);
|
||||
this.button6.Name = "button6";
|
||||
this.button6.Size = new System.Drawing.Size(50, 50);
|
||||
this.button6.TabIndex = 36;
|
||||
this.button6.Text = "6";
|
||||
this.button6.UseVisualStyleBackColor = true;
|
||||
this.button6.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button7
|
||||
//
|
||||
this.button7.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.button7.FlatAppearance.BorderSize = 4;
|
||||
this.button7.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.button7.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.button7.Location = new System.Drawing.Point(16, 160);
|
||||
this.button7.Name = "button7";
|
||||
this.button7.Size = new System.Drawing.Size(50, 50);
|
||||
this.button7.TabIndex = 37;
|
||||
this.button7.Text = "7";
|
||||
this.button7.UseVisualStyleBackColor = true;
|
||||
this.button7.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button8
|
||||
//
|
||||
this.button8.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.button8.FlatAppearance.BorderSize = 4;
|
||||
this.button8.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.button8.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.button8.Location = new System.Drawing.Point(88, 160);
|
||||
this.button8.Name = "button8";
|
||||
this.button8.Size = new System.Drawing.Size(50, 50);
|
||||
this.button8.TabIndex = 38;
|
||||
this.button8.Text = "8";
|
||||
this.button8.UseVisualStyleBackColor = true;
|
||||
this.button8.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button9
|
||||
//
|
||||
this.button9.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.button9.FlatAppearance.BorderSize = 4;
|
||||
this.button9.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.button9.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.button9.Location = new System.Drawing.Point(160, 160);
|
||||
this.button9.Name = "button9";
|
||||
this.button9.Size = new System.Drawing.Size(50, 50);
|
||||
this.button9.TabIndex = 39;
|
||||
this.button9.Text = "9";
|
||||
this.button9.UseVisualStyleBackColor = true;
|
||||
this.button9.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// button0
|
||||
//
|
||||
this.button0.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.button0.FlatAppearance.BorderSize = 4;
|
||||
this.button0.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.button0.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F);
|
||||
this.button0.Location = new System.Drawing.Point(88, 232);
|
||||
this.button0.Name = "button0";
|
||||
this.button0.Size = new System.Drawing.Size(50, 50);
|
||||
this.button0.TabIndex = 40;
|
||||
this.button0.Text = "0";
|
||||
this.button0.UseVisualStyleBackColor = true;
|
||||
this.button0.Click += new System.EventHandler(this.button_Click);
|
||||
//
|
||||
// buttonConfirm
|
||||
//
|
||||
this.buttonConfirm.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.buttonConfirm.FlatAppearance.BorderSize = 4;
|
||||
this.buttonConfirm.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.buttonConfirm.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
|
||||
this.buttonConfirm.Location = new System.Drawing.Point(16, 304);
|
||||
this.buttonConfirm.Name = "buttonConfirm";
|
||||
this.buttonConfirm.Size = new System.Drawing.Size(192, 50);
|
||||
this.buttonConfirm.TabIndex = 41;
|
||||
this.buttonConfirm.Text = "Confirm";
|
||||
this.buttonConfirm.UseVisualStyleBackColor = true;
|
||||
this.buttonConfirm.Click += new System.EventHandler(this.confirm_Click);
|
||||
//
|
||||
// buttonBack
|
||||
//
|
||||
this.buttonBack.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
|
||||
this.buttonBack.FlatAppearance.BorderSize = 4;
|
||||
this.buttonBack.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.buttonBack.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
|
||||
this.buttonBack.Location = new System.Drawing.Point(160, 232);
|
||||
this.buttonBack.Name = "buttonBack";
|
||||
this.buttonBack.Size = new System.Drawing.Size(48, 50);
|
||||
this.buttonBack.TabIndex = 42;
|
||||
this.buttonBack.Text = "|<-";
|
||||
this.buttonBack.UseVisualStyleBackColor = true;
|
||||
this.buttonBack.Click += new System.EventHandler(this.backspace_Click);
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(225, 370);
|
||||
this.panel1.TabIndex = 43;
|
||||
//
|
||||
// Pinpad
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(225, 370);
|
||||
this.Controls.Add(this.buttonBack);
|
||||
this.Controls.Add(this.buttonConfirm);
|
||||
this.Controls.Add(this.button0);
|
||||
this.Controls.Add(this.button9);
|
||||
this.Controls.Add(this.button8);
|
||||
this.Controls.Add(this.button7);
|
||||
this.Controls.Add(this.button6);
|
||||
this.Controls.Add(this.button5);
|
||||
this.Controls.Add(this.button4);
|
||||
this.Controls.Add(this.button3);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Name = "Pinpad";
|
||||
this.Text = "Enter PIN";
|
||||
this.TopMost = true;
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.Button button3;
|
||||
private System.Windows.Forms.Button button4;
|
||||
private System.Windows.Forms.Button button5;
|
||||
private System.Windows.Forms.Button button6;
|
||||
private System.Windows.Forms.Button button7;
|
||||
private System.Windows.Forms.Button button8;
|
||||
private System.Windows.Forms.Button button9;
|
||||
private System.Windows.Forms.Button button0;
|
||||
private System.Windows.Forms.Button buttonConfirm;
|
||||
private System.Windows.Forms.Button buttonBack;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
}
|
||||
}
|
55
HCI_Coursework_EVCHARGE/Pinpad.cs
Normal file
55
HCI_Coursework_EVCHARGE/Pinpad.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
public partial class Pinpad : Form
|
||||
{
|
||||
TextBox entryBox;
|
||||
|
||||
public Pinpad()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.TopMost = true;
|
||||
StartPosition = FormStartPosition.CenterScreen;
|
||||
}
|
||||
|
||||
public void setTextBox(TextBox textBox)
|
||||
{
|
||||
entryBox = textBox;
|
||||
}
|
||||
|
||||
private void backspace_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (entryBox.Text.Length > 0)
|
||||
{
|
||||
entryBox.Text = entryBox.Text.Substring(0, entryBox.Text.Length - 1);
|
||||
}
|
||||
}
|
||||
|
||||
private void confirm_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
|
||||
private void button_Click(object sender, EventArgs e)
|
||||
{
|
||||
if ( entryBox.Text.Length < 6 )
|
||||
{
|
||||
entryBox.Text += ((Button)sender).Text;
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("PIN cannot be more than 6 numbers!");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
120
HCI_Coursework_EVCHARGE/Pinpad.resx
Normal file
120
HCI_Coursework_EVCHARGE/Pinpad.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
@@ -8,10 +8,10 @@
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace HCI_Coursework_EVCHARGE.Properties
|
||||
{
|
||||
|
||||
|
||||
namespace HCI_Coursework_EVCHARGE.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
@@ -19,53 +19,55 @@ namespace HCI_Coursework_EVCHARGE.Properties
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HCI_Coursework_EVCHARGE.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap contactless {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("contactless", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -46,7 +46,7 @@
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
@@ -60,6 +60,7 @@
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
@@ -68,9 +69,10 @@
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
@@ -85,9 +87,10 @@
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
@@ -109,9 +112,13 @@
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="contactless" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Assets\contactless.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
121
HCI_Coursework_EVCHARGE/QRReader.Designer.cs
generated
Normal file
121
HCI_Coursework_EVCHARGE/QRReader.Designer.cs
generated
Normal file
@@ -0,0 +1,121 @@
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
partial class QRReader
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.cboCamera = new System.Windows.Forms.ComboBox();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.timer1 = new System.Windows.Forms.Timer(this.components);
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.cancelButton = new System.Windows.Forms.Button();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.panel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// cboCamera
|
||||
//
|
||||
this.cboCamera.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.cboCamera.FormattingEnabled = true;
|
||||
this.cboCamera.Location = new System.Drawing.Point(346, 26);
|
||||
this.cboCamera.Name = "cboCamera";
|
||||
this.cboCamera.Size = new System.Drawing.Size(252, 32);
|
||||
this.cboCamera.TabIndex = 0;
|
||||
this.cboCamera.Visible = false;
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
|
||||
this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pictureBox1.Location = new System.Drawing.Point(0, 0);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(852, 478);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pictureBox1.TabIndex = 2;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// timer1
|
||||
//
|
||||
this.timer1.Interval = 1000;
|
||||
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel1.Controls.Add(this.cancelButton);
|
||||
this.panel1.Controls.Add(this.pictureBox1);
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(854, 480);
|
||||
this.panel1.TabIndex = 3;
|
||||
//
|
||||
// cancelButton
|
||||
//
|
||||
this.cancelButton.BackColor = System.Drawing.Color.LightGray;
|
||||
this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
|
||||
this.cancelButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 17F);
|
||||
this.cancelButton.ForeColor = System.Drawing.Color.Black;
|
||||
this.cancelButton.Location = new System.Drawing.Point(312, 424);
|
||||
this.cancelButton.Name = "cancelButton";
|
||||
this.cancelButton.Size = new System.Drawing.Size(232, 55);
|
||||
this.cancelButton.TabIndex = 3;
|
||||
this.cancelButton.Text = "Cancel";
|
||||
this.cancelButton.UseVisualStyleBackColor = false;
|
||||
this.cancelButton.Click += new System.EventHandler(this.cancel_Click);
|
||||
//
|
||||
// QRReader
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(854, 480);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.Controls.Add(this.cboCamera);
|
||||
this.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Name = "QRReader";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Form1";
|
||||
this.TopMost = true;
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
|
||||
this.Load += new System.EventHandler(this.Form1_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ComboBox cboCamera;
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private System.Windows.Forms.Timer timer1;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Button cancelButton;
|
||||
}
|
||||
}
|
84
HCI_Coursework_EVCHARGE/QRReader.cs
Normal file
84
HCI_Coursework_EVCHARGE/QRReader.cs
Normal file
@@ -0,0 +1,84 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
|
||||
// include the libraries
|
||||
using AForge.Video;
|
||||
using AForge.Video.DirectShow;
|
||||
using ZXing;
|
||||
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
public partial class QRReader : Form
|
||||
{
|
||||
// foxlearn.com/windows-forms/qr-code-scanner-using-camera-in-csharp-380.html
|
||||
|
||||
|
||||
FilterInfoCollection filterInfoCollection;
|
||||
VideoCaptureDevice videoCaptureDevice;
|
||||
|
||||
public QRReader()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void Form1_Load(object sender, EventArgs e)
|
||||
{
|
||||
// this will list the available cameras
|
||||
filterInfoCollection = new FilterInfoCollection(FilterCategory.VideoInputDevice);
|
||||
foreach (FilterInfo Device in filterInfoCollection)
|
||||
cboCamera.Items.Add(Device.Name);
|
||||
cboCamera.SelectedIndex = 0;
|
||||
|
||||
// start the camera device
|
||||
videoCaptureDevice = new VideoCaptureDevice(filterInfoCollection[cboCamera.SelectedIndex].MonikerString);
|
||||
videoCaptureDevice.NewFrame += FinalFrame_NewFrame;
|
||||
videoCaptureDevice.Start();
|
||||
timer1.Start();
|
||||
}
|
||||
|
||||
private void FinalFrame_NewFrame(object sender, NewFrameEventArgs eventArgs)
|
||||
{
|
||||
// show the video in the picturebox
|
||||
pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
|
||||
}
|
||||
|
||||
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
// close the camera device when the app is closed
|
||||
if (videoCaptureDevice.IsRunning == true)
|
||||
videoCaptureDevice.Stop();
|
||||
}
|
||||
|
||||
private void timer1_Tick(object sender, EventArgs e)
|
||||
{
|
||||
// try and detect a barcode/qrcode in the image frame
|
||||
BarcodeReader Reader = new BarcodeReader();
|
||||
Result result = Reader.Decode((Bitmap)pictureBox1.Image);
|
||||
if (result != null && result.Text == "AB87654321")
|
||||
{
|
||||
BaySelection baySelection = new BaySelection(result.Text);
|
||||
baySelection.Show();
|
||||
baySelection.FormClosed += delegate
|
||||
{
|
||||
baySelection = null;
|
||||
};
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void cancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
123
HCI_Coursework_EVCHARGE/QRReader.resx
Normal file
123
HCI_Coursework_EVCHARGE/QRReader.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
121
HCI_Coursework_EVCHARGE/TapCard.Designer.cs
generated
Normal file
121
HCI_Coursework_EVCHARGE/TapCard.Designer.cs
generated
Normal file
@@ -0,0 +1,121 @@
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
partial class TapCard
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TapCard));
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 22F);
|
||||
this.label1.Location = new System.Drawing.Point(3, 0);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(378, 92);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Present Payment Card";
|
||||
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 1;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.button1, 0, 4);
|
||||
this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 2);
|
||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 5;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(384, 461);
|
||||
this.tableLayoutPanel1.TabIndex = 1;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.button1.Location = new System.Drawing.Point(10, 378);
|
||||
this.button1.Margin = new System.Windows.Forms.Padding(10);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(364, 73);
|
||||
this.button1.TabIndex = 1;
|
||||
this.button1.Text = "Cancel";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.backButton_Click);
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
|
||||
this.pictureBox1.ImageLocation = "contactless.png";
|
||||
this.pictureBox1.Location = new System.Drawing.Point(3, 187);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(378, 86);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pictureBox1.TabIndex = 2;
|
||||
this.pictureBox1.TabStop = false;
|
||||
this.pictureBox1.Click += new System.EventHandler(this.pictureBox_Click);
|
||||
//
|
||||
// TapCard
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(384, 461);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Name = "TapCard";
|
||||
this.Text = "TapCard";
|
||||
this.TopMost = true;
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
}
|
||||
}
|
42
HCI_Coursework_EVCHARGE/TapCard.cs
Normal file
42
HCI_Coursework_EVCHARGE/TapCard.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace HCI_Coursework_EVCHARGE
|
||||
{
|
||||
public partial class TapCard : Form
|
||||
{
|
||||
String bay;
|
||||
String vehicle;
|
||||
String duration;
|
||||
|
||||
public TapCard(string bay, string vehicle, string duration)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.bay = bay;
|
||||
this.vehicle = vehicle;
|
||||
this.duration = duration;
|
||||
}
|
||||
|
||||
private void pictureBox_Click(object sender, EventArgs e)
|
||||
{
|
||||
Charging charging = new Charging(bay, vehicle, duration);
|
||||
charging.Show();
|
||||
charging.FormClosed += delegate
|
||||
{
|
||||
charging = null;
|
||||
};
|
||||
}
|
||||
|
||||
private void backButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
278
HCI_Coursework_EVCHARGE/TapCard.resx
Normal file
278
HCI_Coursework_EVCHARGE/TapCard.resx
Normal file
@@ -0,0 +1,278 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAANIAAAEACAYAAADGGCjSAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
||||
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5QUGFgQIFcpiyQAAI0JJREFU
|
||||
eF7tnQe0NWV1hjUVo5ImFhCxYDSKRk2CBRUUIoiFoliwEFs0iIIailgIgogRJaAYgwWxUVWKGmwxCkYx
|
||||
KiQCKlGQKNYkaGJLNe9DmH/dsv/LOffOfvfcme9d61ku17qcf58z88183643aGoq0A3FjcRviPuJF4g3
|
||||
ik9ex/vFCeIgsb24hfgV8XOiqalJYgHdXbxI/L342Qx8SxwpdhAsvragmiatTcUTxCXif0S0aFbiX8Wr
|
||||
xLbil0VT0+R0S7Gf+EcRLZJZ+W/B9o+308+LpqbJ6KbiOeIbIloc8/If4nTx26KpaRL6RbGLuFhEi2K1
|
||||
XCNeLnBENDWNXncUZwm2ZNGCWAtfF08Wm4imptEKD93TxA9FtBD64G/F3URT02i1uXiPiBZAX/ynOE78
|
||||
pmhqGp3wqD1EcKNHC6BPfir2FL8gmppGpRuLPxfRjZ8BzowtRFPTqPTr4kIR3fRZHC1abKlpVLq5+DcR
|
||||
3fBZ/EhsI5qaRiMO/5eL6IbP5E2C2FVT0yhEtvZRIrrZM/mmuK9oahqFyNDeTvyziG74LPASniJIS2pq
|
||||
GoVIVOWmjm74THgr7SWamkYhSh2eJIjzRDd8Fv8l3it+VTQ1jUL3FJ8R0Q2fyVfEHqKpaRTirXCYiG72
|
||||
TCi1oHwdp0dT0yj0cMG5JbrhM7lMPFLQI6Kpad2L1J0TRUYpxUrgwXu9oM9DU9Mo9HjRV4XsPFwqeCO2
|
||||
hilNo9BvCUoqVtP0ZC3gwaPMgpSlpqZ1L0oc/lhUnJW+KHYW7a3UtEz3EGxZaG+1v3i2eKx4oNhSDDEL
|
||||
+k7ioyK62TPhrfQa0d5KTddqK7GPIDHzUwKv1JXiu+LbgtjJReIj4rWCp/CQ9EviJYL+dNENn8kV4t6i
|
||||
acIib4wmH38tOLDPUnX6Y8HCOlncSwxFvJUqArSczQ4VLQdvoqILz0mC5M/VuI8JTH5JPE/QjKRabDkJ
|
||||
0H5fRPZmQnNKfs+mCYmDMW8SGsqzx49ujFn5X3G1oEnjEIKTxJVoWxzZmgm/w9MFW8ymCYhF9Pui7y3Q
|
||||
xwVOiiEspgMFFa2RnZn8g2hOh4loM4GXKboR1gLnJhqSDKF11c0EzpLIzmx2E00jF2XS1NLQkje6CdYK
|
||||
5yU+fwjbG5rqRzZmc4Fo5egj168J3NfRDdAX54ghNKCn09Bap1OslvuIphGL8mw8bdHF7wu6+xwihlD4
|
||||
9lwR2ZgNlbtNIxaxjujC9w1esweJ6gyI24hZJ/f1CVMAf0c0jVRvFdGF7xtiUm8X9FWoFOXo5OBFNmaC
|
||||
44Vxmk0j1cdEdOEzYItHxkSl4wFXPNkO7q6sxJQIL7RapZHK9UbqwAVd7Q4n46LirUR+Ig+SphGKad/R
|
||||
Rc+CJ/OrRXWQ9q7ib0RkYxZsb6mRav3CR6j7C3fx278LDv2V4qxEKYhjDMxCqFVi/EzTyETEn5GO0UXP
|
||||
hLdSdZCWh8jnRWRfFpwTaa3cZiuNTMwVopYouuiZkNT6AFEpzmrHCPdb6UPiDqJpRGK/vqNwJ3Ry875L
|
||||
VPeB2124sx2+Jp4omkYmSsXPE9FFz4SiwUeISt1aEN9ytu4ik+QE0ebQjky4g58hslOFlsK/925xK1El
|
||||
3sg4HXBNRzZmwXR00rOaRiRc0aSvnC+ii54Jjo6niErRuis7cXcp/yKeJZrTYWTaVLxURBc9E6pxzxRs
|
||||
sarEzfxy8QMR2ZgB8bS3CLbVTSMSb6UdREVCJ9sqns6VYpv1BRHZlwUdmKo9l00Juok4Qrh7ZsMZ4nai
|
||||
SjxI3iycs5V4K+0rWk+HGbTeKiO3FxXtqygzIA+tsjspAVpc05F9WbxDVGd5DFL0MSPYxoBe6m/oRsr/
|
||||
Al1JaTJyZ0FGwRBzrgjQvlKQ9h9d+Ez+QlSWWeC9JBvemTJ1leC+qM49HIwILDIt7gWC0urvCV7dC3+0
|
||||
nwh+OBovvkowMYES7KEtKN5KnxULbXfwVUFcqfL3oK/DD0VkXxa0LWsDyiRKqPcWZBPPkyFA3hWLjn7a
|
||||
Q9onc1HpKuS+oYCUHd7WVaKho7vx/jtFdcFjuSjU4omyllZPRPjpUU1brKHofsLtxQJK0tkWV56VcMdH
|
||||
tmXB9SeON9ntHYvocNHHAZW305AmGGwijhfutxJxJWqkiGtViakbkW2ZTLYjK9ufVwjOQtEPsxroLUdD
|
||||
xaEsJloYc26JbM2EWFZldjRhgD6v6yzwFqx8eJSJ7N2+G7PjnGAECfUqFJ5Vi4g/JRbO2ArwVmK7XPkb
|
||||
MMomsi0Lih1vLyYlmmdkziclrR+3+RDE4ZvJFJGdmRD1r2wUQsZBZFcmzxSTEYfgN4joh+gTkijZWg3h
|
||||
AHq0iGzMpjJ9hkVMA/zIriyYLjgZsXd3PKEpMah2BXfCNVsxX+g0USWCsy8WkV2ZTCae9BjhyhL+snik
|
||||
GEKaET0WIhszwWNY9SBhJ/B7wv0A4XpPQvRD42AY/QgZUI59W1EtsjYqzkqVWeEMKDtbRHZlwbFhEnIv
|
||||
JLx4JHMS16kUOYRvE5GNmTCsrCq+Qt4hIzwju7LA9Y/7ffR6lHAWgAG5edUZwuS/PVQ4HyLAg6RqJArb
|
||||
u51E1uyoCL7vJKahk7nt3uKQ7FrdMxttLuixENmYBTEszmdVoiMrb8XItgw4Fx4gRi+ChO4G7MC/yaCs
|
||||
SvHdWdDu4jcy0VnEFaLTD2UlkW0ZUFRJIvMkVOHBog9cdQN2tjp3ER8WkY1ZfFf8kagQcUP3w+NSMYle
|
||||
DnSdiX6AbJjHWh2g5QB+kIjsy4KUocqYEpWzZFpEtmVA1sxk3OBEoaMfIZuniWo9WNAMPrIvC7xZVU4H
|
||||
3ODO3Dtq2o4TQ8hqSdeThLtnNJC2Uj2LldZZNApZWgGcyXfE/qJCBMQPFM7rTZEog7JHL3KxnK/7Drw6
|
||||
xDaqy9N5M+KqjWzMgEM4Q9GqMsIpgWdrHdmWwcWCzIrRiwDpnwj279EPkQVvASpXOfRXalvhdAsD/97d
|
||||
RYUIe5wrIrsyGEIHWovYv9K4xD1fBwgI0xm0MgeP6DsNXIhxRTZmwCG86ozI9z1WuLZ37DzIul+z2Lrw
|
||||
1KXs9w8Fjc4ppvsDQY3MEBI5+XHpGuQ+K/FWovccZRaVerS4XEQ2ZsDvTAVxVQoN9UL034ts6xtagp0q
|
||||
Vn0e/l1BdSQfwoGLpiL/JDhs0hsB7w0eM5L7qkcI8lbiZv6UiH6MTGjC/kJRKbxZ7xORfVl8UFRt72jp
|
||||
/DkR2ZXB+YJk4blEbIYIMoayaKIPXggBMsoMeN1WBq94OuLRcY9E4Yn1V4Jq3SoRrCQ47RxSxsN0L1Eh
|
||||
siucDw6cG3uImUT+GDU+nxQkRM7rUmUvyVOK9lEV4q1EkuEFIrIvE97UbHsrxYX+iojsywDnziGiYmvP
|
||||
cYN4kqs3OrVQOLSuV7iQOWPwlFlLm1i+2N8JItAVQSyqKdlmuZuE8JsxGqSyHx7Vs2xBIvuy4DtXjYF5
|
||||
viBlKbKrb3ipEJhd0eXPInqZ6NPrQ3IjUfeK4U34/Okb7QxSAtvb3URlFJztNTuDyL4MKsehEE9yOlhw
|
||||
ueN6D8VrmS1BhgeE2h06dboXE1tUavzdtUrA2bKyJxqeVLaZkW0Z8Bs/TlR0Y6Va2elcwrkWOtV4crLC
|
||||
mKEZ/YdrBRcpw3VxXrif0ryVPiHcbyVKLHh4VIlUFmxwfm9aPFc9PN4rXOckGlWG52D2e9nlu1Q0Hinc
|
||||
ZwfetH8qnBWVwLaKEnjOalViL+88I75HVHVjJRhOi+nIrgwYSbrsnIQL0ZE5fLXAG+jOzaIZ+qeF+61E
|
||||
3K2ySQpl6M6OOzioqrLB2Va6ArPA3KhbiEXaWUR/nAHbLOIszi0eZzOcKO6z0pWCuUZVUxyo3nWek3CD
|
||||
c86uSN6l/JxuuJFdGbCVXBYvpPF89McZ8GOz5aAYzSm+tNOzA+zZDxZ0+6mSM6kTcO5UnJNIWCZFy7Xr
|
||||
ILSzLE7qLlPmvIJL3Cmekq8X7rjSeaJyzD7Bw8iuLOj5VzWgi3osVzYL20jc7ouU5a1bCeJLbjEr1lmv
|
||||
A8x9JcuiKqaENzayKwt6G2wtKkSRoSt2xm6DqY6LVLGQyADAU+i8wTirsLeN7MmE1Puq/tF8Z+c5ietK
|
||||
NkvFuXBH4fTO4oVe1EWqIicN8PJsNEKcJEpA3IV/DAarTBk6WUR2ZYHbv6JqlllGzv6Gp4hFXln3D93B
|
||||
eeUE4U52rJjDSvVqlZ4qIpuyIPhe5WBxvn1JP1tUFU2OlDtg2YGLeDvh1GEisiUT5tpWiYvtrJrlQVU1
|
||||
kMyZrEvp+SLPHU+PyrcSo9id3VnuIZz1OsA5tEp0Jl3LhPd54aFMgWGFCJRGNmWxq9hwzsc1zEHt2yL6
|
||||
42yonZm5WKoHUSqMWzqyJQseGFUDnYnrnCEiu7Jw7zI60f01sicL+lUsOg9yGD5RRH+cDTfZScJ1ICcr
|
||||
nB8gsiUT0qMqRLCSwrvIpizo51EhsrIje7IgTreoXwVpNBhRMXoeSE0nVckhXsXk3+E1jGzJgi1shdhx
|
||||
7CIim7J4o6gQwe/InixeJ5ZNMOwK+9y9DoDDMK2kXKlDvP242JEtWeBYqYonkYtG0nBkVwak61SIh4az
|
||||
oBEP5bLkVZ7UROFJLI3+o2xwJ7o6WbKvdW/vyKqo6mPBUDR+38iuDHgYV4msmcimDGiQuZVYJiLSHNjc
|
||||
qTSAt4c+Za6oOIV3zu0dT8p9RYXYfrg9WrwFK+TcadD3faM1WLcSJAC6myzCWcKV7UBOmHOwL7/nO0SF
|
||||
2FKSixbZlYU7MbnTESKyJwOqZenuu1FR80/rX3cxHC1wdxeOtxLxsxeJtXRLmheClRVDnPk9me8T2ZQF
|
||||
nsIKEUqJ7MlixYaRuIi5yegeGv3HmeDwcAVoWbQ8VSI7MsArWtXWmK6kznJs6s4qRHlDZE8WeERXLGbk
|
||||
gEphmHuLR/vjFV+XPaprjhLZkQEda6saSPLkdA4Y+JCoEN8zsicLnFbXO5SbJvnujAf6DDxMrLjKexL9
|
||||
KpyHUxwOx4gKUSXszOigIrlCuKMje7KYKdud2BJVj+63Ep1/HFPw+AEOFa7SCs5jOFQqROUqVcKRXRnQ
|
||||
/bSiWpYYobPpC60aZooPEvtwu8OJebC1dIgJ2bMMCegLMpQr6pPIuaONVGRTBpyvSRB2i4e/s1SGsMJM
|
||||
Y23Y/7n7OpCdTQ2Po4KWQzjNLCI7MmC6BylKbrFVdgaheSvQEswtqlad13PmhYTcuVpA8NJRaXk7caaI
|
||||
bMiAtlFVo+bp/+ZqAMMkE4L7bnFTEweNbMqAqS2LSs5XEnEId0IrZzNHpSWLFVetK2bGNvIAUSFnYjKO
|
||||
lf2EWywk51mQt9/MCwkxPiP6oCyuEK4aHm5sV8yMLQ/OlApRd8a0jMiuviHfjjeDWxz8aUwS2ZTB3BXB
|
||||
2wh3ZakriZXYjrPen5KKilE3jDFlfGlkU990wxPcqqg3W5YBvpLINmBES/RBWZAf5pB7Fuk5Yq4fvyfd
|
||||
TTCeM7Kpb3D14311i2Y6e4vIpizmupbkiDHNL/qgLJgE5xA3mOtJDUT9KyY34Fjh7BnZlAEFm25xnqeh
|
||||
T2RPFnMtJAzkye0s/HM1DeGw+G4R2ZAB34vOr25xwZ3lFHReregoxJT1yJ4smP01lyg9cIyA6SAQ7JJz
|
||||
qO9Gp74lCy+oc2gCrv5Fvd9Mci+kua8luWnOJze4ElipY3FlR+M521O4xa7iIBHZlAEdoiqCz+6FNHcX
|
||||
LNJMGHEYfVgWrlZdzunY3xTPEBVyTqhoC2kjwmW7l4g+LAua7TvE9yJ2FdnQN2TUkzVcIedColCzIotj
|
||||
8AsJUT3rrCo9SjhEkR9P0MiGvsFhw1ayQqQJ0W43sqtveGA8SbiFF9Y5LGFVPQuZE0prqegDM2AUi0Nk
|
||||
udPMIrIhA9qPVeixwhV8rlpIhBZw6EQ2ZbCqGjOyDZyeO4LADuHUcGYNVy2kRwnXg7AtpBVEjYmzdxgX
|
||||
wyHqn5xD16oW0k7iIhHZ1DdtIa2gO4r3iegDM3AtJHK0PiIiGzKoWkhsYUn9j2zqGwZ/PUe4tS4WEka+
|
||||
R0QfmIFrIaEPisiGDOgV4Rxn08m5kIjLuZxFC9UWUgDtsmha6ZBzIZ0qthRuORdSVbOXtpACqBNasQlf
|
||||
j2oLqV/aQlpB5E45G7KTb+eqS2oLqV/aQlpB3NRk9UYfmEFbSP2qLaT+WdV3pMrS2e7IuZBeI7j4kR19
|
||||
0xZSntbFQqKUgiaH0Qdm4OyP5myG2RZSntbFQmLuDQOWog/MgIxsJnM71LZ2/UJLrqOFW+vmjORMERpr
|
||||
HGkKC4ndBO0J3GoLKaAtpH7lXEgtRWgFuRcS4yldmsJC2lW4vK5tIa2g7cUPRPSBGbiyv5FzIZ0gKqac
|
||||
tzKK/lnVQqLRQ/RhWbjqkRgj42zJ1eqR8jT4hVQxVv/PhENktV8oIhsyaAspT2TfOEcRzb2Q6P/2ShF9
|
||||
WBYHCoemUtg3hYVEzwbnIPG5r+UWgna70YdlQUWnQzSwcPVsoOcF/eUqRJ9z6oQiu/qGStz7CrcG3/yE
|
||||
7c+XRPRhWbDfdYgF6xp5wpN6Cl2EWjuuQDQXvL/4iYg+LAMi4y7RZ+5qEdnRN/S1qxjCxdS+F4rIpgwY
|
||||
yExKmVuDXkg3Ei8W0QdlcYFwiaHMrgMqT+pVtXBao6jI5WAc2ZQBXZkcUxeXatALiYvwURF9UBaUY7v0
|
||||
avFjEdnRN7hmK3p/u5vo8z3dYuf0IBHZk8VcC4mO+06XIjxbOERg9DQR2ZDBp8S9hVvOsS44VD4h3GI+
|
||||
Ep7CyKYs5lpIB4voQzJxjT4hVecDIrIhA7oVzT0KpAc5B41RjsKidatiYh8VETPrYhF9SBZ4B10zZBlM
|
||||
5YwhnS1c322h8KAx5CyyqW+qZshylmdGb2RTFjMPGuNGcxW8dZwkHFPN0SPEZSKyI4N3CDxobj1YuBKO
|
||||
fyqOF27dWJDHGNmUxUwL6YbCeX7owB3Na9qhZ4lviciOvsGlX9HrDeHgcE3coDrWdcZdqJuIvxSRTRnQ
|
||||
u2+m3QUekGtE9CFZ8DRjP+8QbwZubNcbl2DsfsItHoj7iMimDKgQIB3JLdLYnNt0/i3+zRWFN+t04d7W
|
||||
Uc7gqtVhCqFzQDFByocJt9jykLcY2ZQB1bEVWQ2DXEgMiWJYVPQBmRAcdZ2P8Aw6yyc+L1zNXBZqM3Gs
|
||||
iGzKgF4bFYOY6e/B7NrIpgzo8bhi6+lbCmqB3G8jWhQzMYHAmkPEAFzJqkC2hqsF80LdVlCVG9mUAXmL
|
||||
FeLgH9mTxYpOMVyI+wvXAXwhTLogOdYhzkdMS3D1smNqOu2eK0SsgwBpZFcGZMFUyL2QyBTBwRGKNwJ7
|
||||
P+eIyw7y+VzbOnfuWVV7KkQ5g6sOCXBBV4jvGdmTBdtlzp/LdHvxNuHM8u7gQhPTwcPk0J2EcyAAWd8M
|
||||
fa7QjgJvaGRXBmSZV+gJIrIniwPEssRcppaT3u8ak7+UM4VrW4cYLO08mPJvzZVO0pO40BT0RTZl4SrI
|
||||
XKrDRWRPFqQjLYt30tcbL4SzTLeDbc9zBYvZIf4dfgTX9Gt+U5JVSap0iy0ssbLIriyoXavQO0VkTxbE
|
||||
yhZdU1yVLxcciKP/IBvabrma5SPiR84IeFXuGeK7OrewnK0rUqCQcw4wD8dFoQxczTsIpxt4IdQBHSFc
|
||||
KUHoXoLCs8ieDHjjPlVUiCpVZ1NPYmVVImUnsikDguuLjiK4DN8qoj92wA29s3CJpyVODadDhUh/xfkI
|
||||
xw1tiiObssBZVSG8vZE9WbCLYhr+teKmwqPjzqfr4GZe0RefIM4MdPGJ7MmCNwLxObdwNBATjGzKospj
|
||||
RxfgyJ4suG9vJq4VNzB79+gPHXCDEbdyiii/cy8Nx4kKcX1PFJFNWXBDV8jt+n6R2BDzpCulq3vOUjgb
|
||||
0ZfB2QMbb93DBWeWyKYsHioq5E7ixKmyYbtjFufsyKYsKGnfcK7H5Rz9kQMmTVA06BRPaGcDEKDXRUUC
|
||||
J9pKuFKggFiZazDcUr1dRDZlwIOYEqMNIrct+sNsOnewu10TF9lV3NbxYVElts2RTVmcIlwpXkv1WRHZ
|
||||
lAFJuYsa2DjdhQshHYgUHbfYR7tjZaSRVIkhBJFNWRwiNhFucTwgBSuyKQOayCy6f6M/ckCRmatUYqGc
|
||||
gckOV7VvJOdTGqhhqwjGUkRIiCGyKQMyKNg2b1D0R9lQSOdKBVoo+rq530aUE6xY+JUozmXODH7Kbpjq
|
||||
USF6qTsdSGQBLaqMdXUX7aCWfzvhFm+/I0VkUxbcxAwjrtjqIHei6rmCiSUVer1wZbeTGkRznkUvg/NE
|
||||
9McZUG3Lnr1i5CM9IPASRnZlwZ6dVCRXWchSOb1YgPuZyYdu4YImy8D19sULu6dYJF6JrgxoviwHtIob
|
||||
63nC6QYGPFiU7FcIz5nzwcGWGUeOM1+yE6N/viwiuzIgLkfa1SKRGew4kOIupHtORRkBaRyUMDjPC6Q+
|
||||
UaZRta17oHCmfdEkZ9nNZRLB7q+LyK4MzhDL6uZ4grDfyzyo8SM/X1xv26IkPV64+08wiYFtXZVeKpzn
|
||||
X44IFeEMhAfYOeCB8a+bikVim8VbKSsfizgV//DM/ZF7Fh17cHkTAI7sy+K1ouo7E+R2nhmAOaobEjjN
|
||||
onLBdX25n/cVYegGvz/93aiOjf7j1cJbjgWK27lKTxHO1z4Qz9hbVLj4EQWSzuwNbmJqrSq+L28Gpnu4
|
||||
qrqpQdpNbFRs8TjDXCSiD5gX+j5Q3kymdZXX6taCPhAuZ0rH+0VF7VEn5sQ6tzrk19H/okIEuz8nIrsy
|
||||
oKXZ9c62YjGRRLrWNxNNHukXR4Jo1SJCxFGcLaiApzM3ctXbiJon0lec27p3i4p5T4hMCmcDGyaJzNTg
|
||||
kxt/G0GVI2PkZ70g/N2PBJ1E2VpUpP8sFNtJvCuRrZmcL+4jqkTLgEtFZFsGXHfiR2Fvt2Rxr75EuLyT
|
||||
fFfO+3OJJxtBJwrg8Lp9XywtzebpyxaCMwivPM4FQxBvA85Gbk8dvwcNA53VvgvFjUV1qjPnjHsDr2iF
|
||||
OB+xdY/syoC6vaeLVYmyA0rRuUBvEHiDOnjNEehkO1hRRr0xEaCrmOl0idhVVAmv2Vkisi0LDvr3FBXC
|
||||
QfZJEdmVAb1FdhGTEAuaQChziKIfIwveRjxYqlzeiNqjvpxFs4ATBzf/spiKSeyArhSRbRmQgHxnMQmR
|
||||
fcwXjn6ITHA3P0ZUCUcRuwZnNsN3RMVUPkTIhlmxnMsj2/qGhwbxqoo8Ubt4Gz1TuH7cDt5GbCWrSqwR
|
||||
PdvxnkX2ZYHbGedGhXjz4xCL7MqAc2dVdyS7iFk598wdHEKXZQObxb9PPmNkXxYs3KpaK0pxnJ2gCMTS
|
||||
NGf06nIGnRMXgFc+A9mq+hQgchhxyzoDz3hxyeerEh18nOdgkp55UI9e3EzuXnXADVXtyWH4wcdFZF8W
|
||||
XxLO7rgLxRb+MOGqdubhzGS+qiC7VZQNuFOBgHSgitKQTlxc8tycI0oJTH5AVBTxIYLtzqkTJCaQqTMJ
|
||||
VTQ14ebdVlSKuhhKvCP7suDgXdkZiZExTjc/Htnq62wRLkl351Q4W1QKFzBFbc4EVeDgXTGZHXVZK87+
|
||||
DJyPJiGyCaIfIROy26t6XHfC3U5ANLIvi865UiWaq9DmOrItAxYsaV+TEB6r6EfIhEK2yuAceXX0cuPt
|
||||
ENmXBYVtVbl1iO/s7GVO16s9xCTEEzL6EbKgqQh5XpUZ7vSCoKtpZF8mxKo2ExViW8dN7WxiQ1Ju1fe1
|
||||
iwlx0Y+QAQ4G4idVHqtOtAdwlkt0vElUiYaXbLMiu7L4kJiMLhPRj5AB8Rq2F5UFi4jp806Xd4d7eshC
|
||||
kdX/BRHZlQUzkCYj15gW4gmVLbY6UURX8Tbi36z67p2HkrzGyLYsqkpESkTeVfQj9M1bBH0gqkUAtmL6
|
||||
PC3VqkSxJG2JI7uyYDh5ZbDdLg6hnxHRj9EXfD6Dpaq3dOT0Oaexd1BtXNXXG1G06G45Ta/4yYm9e1ZD
|
||||
RG4iWjsPQbwV3K2X4TWioi9DJ9euo4N42aS2dZ24yMeIviPexBHwFA3BBcrb6ELh6uHWQeyIFJnKtzEL
|
||||
ObItC3YgVZ2By8X55RyxtEnLauFzKB67uRiCaC9GVWpkaybvElXDABDnI/e27mBR7VQqEwFScsCYi7vW
|
||||
Klly904WtCYbgqgIJdPcneHONvLJwj3rd6EoWoxsy4I3MFvJ6pZypeKC8yPQiGS1yZxEs5nINgQPXSfc
|
||||
7tgV2ZsJ0xXvIqpEwaZ7YPhkiviuT8QcmIxAjf3FggU1i7uYkvFTBXN+Kitel4p+DLTZcr+NCPgy6aGq
|
||||
Tx9iooe7P+ErRFUJ/SBFGg+1K5SgU5hFpjSzoKjupKkl8P9PF3TspP0t0XMW4lBEHGN/UXE2ouanMpMB
|
||||
HS6c42nY1tGbYUj3wGBEaTJwzqDpOk85vFDA/+c1Tm+2Ie6JsY9qVLenDvCCVj6Z8Zp9Wji/O41PK7ey
|
||||
TQnibbSfcPaq66AxPZnWlS5vttjubR25dUPa1jf1oKq3Ef8eWd5kW1eJBUzDEWdXKIZns72vzl5p6lHE
|
||||
MJgM11dMbB44Q1YXszGP1p0KRUP+ZbNhm9aveCISv6povYxnkMaPla5/cidx/jh7UfDmO1Rwlm4aibiY
|
||||
1Bs5tzUdeDLJLq8U7bYY7hzZlwVhkqqpg00J4m20tWDeVHTBM+FtRIrVTBPpEkUX1atEZGMG9OmjT96W
|
||||
omkkIpLP28hdwAa0AN5HVIrkYBwdznorCjbJqmdL2TQSETthfGh0wTPhxmU7VTXiv9MjBM6OyMYsGLzA
|
||||
uNamESmzrmol6GH+EFEp+vQRBHb2ouC3fp1oToaRiS1GdMGzOUWwrawU6VzOUf9A4JnYUdPIVNHskpIR
|
||||
EmMrRV7ki4XzbYSTge1sZeC5KUnukgGyGKg+rY7mEzdzj6YhTkV2e8tkGKGc40qAFltbiUqRxcHI0si+
|
||||
LHiA0CPvNqJphKKgMLrwGVAy8GhR3XKKAKw7i4NgN+29mkYqRpZEF75vcHczpZvSkkqxiJkG784pZJoI
|
||||
+XxNIxU9JxxT2SlovLeorsGiscxHRGRjJjgZJtvcZAqikO5jIrr4fUFJPVXDlX3qOj1OVOQU7i6aRixi
|
||||
ObTdykoR4lzEbKfK9lqdCILSaCSyMxPexpV9KJpMIqaTcfgmKZVZu3cWQxCOjoqJGpMZrDx1cQCnsI4k
|
||||
0uhGWA04FziLMCBtCI09mHZ4vohszeSLorXampCI9NM/oI/zAxF8EmHpZT2UDOcnCvL7InszodVW5cjS
|
||||
pgKRiX2U4Fyz2r4NLESmzrGdG0oEH4cKC5sFHtmcBU6Wu4qmCapzPlDBOU+shfMQW0McC0PwznViW0la
|
||||
jrOMHHgQHSGqR5Y2FYtxmxS8XSK4Ca+87n8XLi48fQQaOQecK3YWQxMdcLNnWUXwNtpRTLqfd9P/iwAi
|
||||
QVTOTrtd978nCLrfwBvF8wQR+yEGG3F3HybcbyMcLfxO1SX0TU29iOEGzHeKbvZMvipaG+KmUYizCbVW
|
||||
7mmDvI0Y1r25aGpa99pJ0JQ/utkz+bJgvlI7GzWte5GOdLyoyKmjhH5Ic66amlYtvId4GaMbPRP+TdqL
|
||||
tbNR07oX9U7HCXfwlTga1caTHajcNB6RSbG9ILYV3eyZ0B2IEEFT07oXnjom7kU3eiYEppnE3nrVNY1C
|
||||
ZDGQiRHd7Jl8TTxUNDWte3HA52aObvRMqG/CU9fKyJtGIW5kpspHN3smjKV5kGhqGoUo5SajILrZMzlW
|
||||
VLdebmrqTRULiWRYeuQ1NY1GeMzITo9u+CwogmxqGpUoaaflVXTDZ3CZaG+jplGKxvjfE9GN3zd0a20T
|
||||
95pGKQrpThPRjd8XpB69WdCxtalplKKtGL3rMlswXy5IQ2plEk2jFs0uKYPPSFq9RhwgbiqamkYtYjq8
|
||||
la4Q0WJYLWQwkN29tWhqmoQopXiZYAx/tCjmhbcbnYioc2q1Rk2TEls8Ovn00V2Vc9GTReuY2jRJ3UEw
|
||||
ip+zTbRAZuEbgib4dGttapqs6J9wqCC5dJ42zPztVYJF1Kpem5okCv4eIE4V0aKJ4G/5b5qHrqlpgYj7
|
||||
bCroHEu7rI3xELGF4G8HGiu6wQ3+D+yBOeI0wqhFAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
BIN
HCI_Coursework_EVCHARGE/contactless.png
Normal file
BIN
HCI_Coursework_EVCHARGE/contactless.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.6 KiB |
BIN
QRreaderWindowsForms.zip
Normal file
BIN
QRreaderWindowsForms.zip
Normal file
Binary file not shown.
@@ -41,19 +41,18 @@ namespace QRreaderWindowsForms
|
||||
//
|
||||
// cboCamera
|
||||
//
|
||||
this.cboCamera.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.cboCamera.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.cboCamera.FormattingEnabled = true;
|
||||
this.cboCamera.Location = new System.Drawing.Point(0, 0);
|
||||
this.cboCamera.Location = new System.Drawing.Point(346, 26);
|
||||
this.cboCamera.Name = "cboCamera";
|
||||
this.cboCamera.Size = new System.Drawing.Size(534, 32);
|
||||
this.cboCamera.Size = new System.Drawing.Size(252, 32);
|
||||
this.cboCamera.TabIndex = 0;
|
||||
//
|
||||
// btnStart
|
||||
//
|
||||
this.btnStart.Location = new System.Drawing.Point(330, 207);
|
||||
this.btnStart.Location = new System.Drawing.Point(355, 285);
|
||||
this.btnStart.Name = "btnStart";
|
||||
this.btnStart.Size = new System.Drawing.Size(100, 35);
|
||||
this.btnStart.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnStart.TabIndex = 1;
|
||||
this.btnStart.Text = "Start";
|
||||
this.btnStart.UseVisualStyleBackColor = true;
|
||||
@@ -61,21 +60,17 @@ namespace QRreaderWindowsForms
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
||||
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.pictureBox1.Location = new System.Drawing.Point(0, 32);
|
||||
this.pictureBox1.Location = new System.Drawing.Point(33, 73);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(328, 307);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.pictureBox1.Size = new System.Drawing.Size(280, 235);
|
||||
this.pictureBox1.TabIndex = 2;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// btnDecode
|
||||
//
|
||||
this.btnDecode.Location = new System.Drawing.Point(432, 207);
|
||||
this.btnDecode.Location = new System.Drawing.Point(475, 285);
|
||||
this.btnDecode.Name = "btnDecode";
|
||||
this.btnDecode.Size = new System.Drawing.Size(100, 35);
|
||||
this.btnDecode.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnDecode.TabIndex = 3;
|
||||
this.btnDecode.Text = "Decode";
|
||||
this.btnDecode.UseVisualStyleBackColor = true;
|
||||
@@ -89,16 +84,16 @@ namespace QRreaderWindowsForms
|
||||
// txtResult
|
||||
//
|
||||
this.txtResult.FormattingEnabled = true;
|
||||
this.txtResult.Location = new System.Drawing.Point(328, 32);
|
||||
this.txtResult.Location = new System.Drawing.Point(349, 74);
|
||||
this.txtResult.Name = "txtResult";
|
||||
this.txtResult.Size = new System.Drawing.Size(206, 173);
|
||||
this.txtResult.Size = new System.Drawing.Size(248, 173);
|
||||
this.txtResult.TabIndex = 4;
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(534, 339);
|
||||
this.ClientSize = new System.Drawing.Size(622, 339);
|
||||
this.Controls.Add(this.txtResult);
|
||||
this.Controls.Add(this.btnDecode);
|
||||
this.Controls.Add(this.pictureBox1);
|
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AForge" version="2.2.5" targetFramework="net472" />
|
||||
<package id="AForge.Video" version="2.2.5" targetFramework="net472" />
|
||||
<package id="AForge.Video.DirectShow" version="2.2.5" targetFramework="net472" />
|
||||
<package id="ZXing.Net" version="0.16.6" targetFramework="net472" />
|
||||
</packages>
|
Reference in New Issue
Block a user