64 lines
2.2 KiB
C#
64 lines
2.2 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|