Files
VS_HCI/HCI_Coursework_EVCHARGE/Charging.cs
2024-04-19 02:24:05 +01:00

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();
}
}
}