You can now click on a driver to see its stats
This commit is contained in:
@@ -29,7 +29,36 @@ namespace Test_Merge
|
||||
{
|
||||
Reader.ChangeImage(image);
|
||||
}
|
||||
public void DisplayLiveRanking(Panel pnl)
|
||||
public DriverData GetFullDriverData(string driverName,Panel lastFiveLapsPanel)
|
||||
{
|
||||
DriverData result = new DriverData();
|
||||
foreach (DriverData data in LiveDriverDataLogs[LiveDriverDataLogs.Count - 1])
|
||||
{
|
||||
if (data.Name == driverName)
|
||||
result = data;
|
||||
}
|
||||
|
||||
if(result.Name != "")
|
||||
{
|
||||
lastFiveLapsPanel.Controls.Clear();
|
||||
Size labelDimensions = new Size(lastFiveLapsPanel.Width,lastFiveLapsPanel.Height / 5);
|
||||
|
||||
List<(int LapTime, int Lap)> lapsInfos = Storage.GetDriverLaptimes(driverName,5);
|
||||
|
||||
foreach ((int LapTime, int Lap) lapData in lapsInfos)
|
||||
{
|
||||
Button newButton = new Button();
|
||||
newButton.Name = driverName + "_" + lapData.Lap;
|
||||
newButton.Text = Reader.ConvertMsToTime(lapData.LapTime);
|
||||
|
||||
lastFiveLapsPanel.Controls.Add(newButton);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
public void DisplayLiveRanking(Panel pnl, Form1 form1)
|
||||
{
|
||||
if(LiveDriverDataLogs.Count > 0)
|
||||
{
|
||||
@@ -67,7 +96,7 @@ namespace Test_Merge
|
||||
newButton.Name = liveData[driverCount].Name;
|
||||
newButton.TextAlign = ContentAlignment.MiddleLeft;
|
||||
|
||||
newButton.Click += Form1.btnDriver_Click;
|
||||
newButton.Click += form1.btnDriver_Click;
|
||||
|
||||
buttons[driverCount] = newButton;
|
||||
}
|
||||
|
||||
@@ -148,7 +148,7 @@ namespace Test_Merge
|
||||
}
|
||||
else
|
||||
{
|
||||
Wrapper.DisplayLiveRanking(pnlLiveRanking);
|
||||
Wrapper.DisplayLiveRanking(pnlLiveRanking,this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ namespace Test_Merge
|
||||
{
|
||||
btnResetEmulator.Text = "Restart driver";
|
||||
btnResetEmulator.Enabled = false;
|
||||
btnSettings.Enabled = false;
|
||||
btnSettings.Enabled = true;
|
||||
btnStartDecoding.Enabled = false;
|
||||
btnStopUpdating.Enabled = false;
|
||||
int errorCode = -1;
|
||||
@@ -209,10 +209,53 @@ namespace Test_Merge
|
||||
if (tbxResult.Text != "")
|
||||
GpUrl = textBox1.Text;
|
||||
}
|
||||
public static void btnDriver_Click(object sender, EventArgs e)
|
||||
public void btnDriver_Click(object sender, EventArgs e)
|
||||
{
|
||||
//Happens when a driver button has been clicked
|
||||
MessageBox.Show((sender as Button).Name + " has been selected");
|
||||
//MessageBox.Show((sender as Button).Name + " has been selected");
|
||||
DriverData driver = Wrapper.GetFullDriverData((sender as Button).Name,pnlCurrentDriverLapsHistory);
|
||||
lblCurrentDriverName.Text = driver.Name;
|
||||
lblCurrentDriverPosition.Text = driver.Position.ToString();
|
||||
lblCurrentDriverGapToLeader.Text = Reader.ConvertMsToTime(driver.GapToLeader);
|
||||
lblCurrentDriverLapTime.Text = Reader.ConvertMsToTime(driver.LapTime);
|
||||
lblCurrentDriverTyreAge.Text = driver.CurrentTyre.NumberOfLaps.ToString();
|
||||
if (driver.DRS)
|
||||
{
|
||||
lblCurrentDriverDRS.Text = "Open";
|
||||
lblCurrentDriverDRS.ForeColor = Color.FromArgb(0, 164, 46);
|
||||
}
|
||||
else
|
||||
{
|
||||
lblCurrentDriverDRS.Text = "Closed";
|
||||
lblCurrentDriverDRS.ForeColor = Color.Black;
|
||||
}
|
||||
switch (driver.CurrentTyre.Coumpound)
|
||||
{
|
||||
case Tyre.Type.Undefined:
|
||||
lblCurrentDriverTyreType.Text = "uuuuh...";
|
||||
lblCurrentDriverTyreType.ForeColor = Color.Violet;
|
||||
break;
|
||||
case Tyre.Type.Hard:
|
||||
lblCurrentDriverTyreType.Text = "Hard";
|
||||
lblCurrentDriverTyreType.ForeColor = Color.FromArgb(164,165,168);
|
||||
break;
|
||||
case Tyre.Type.Medium:
|
||||
lblCurrentDriverTyreType.Text = "Medium";
|
||||
lblCurrentDriverTyreType.ForeColor = Color.FromArgb(245, 191, 0);
|
||||
break;
|
||||
case Tyre.Type.Soft:
|
||||
lblCurrentDriverTyreType.Text = "Soft";
|
||||
lblCurrentDriverTyreType.ForeColor = Color.FromArgb(255, 0, 0);
|
||||
break;
|
||||
case Tyre.Type.Inter:
|
||||
lblCurrentDriverTyreType.Text = "Intermediate";
|
||||
lblCurrentDriverTyreType.ForeColor = Color.FromArgb(0, 164, 46);
|
||||
break;
|
||||
case Tyre.Type.Wet:
|
||||
lblCurrentDriverTyreType.Text = "Wet";
|
||||
lblCurrentDriverTyreType.ForeColor = Color.FromArgb(39, 96, 166);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,6 +117,32 @@ namespace Test_Merge
|
||||
}
|
||||
return result;
|
||||
}
|
||||
public List<(int LapTime, int Lap)> GetDriverLaptimes(string driverName,int numberOfLaptimes)
|
||||
{
|
||||
int driverId = GetDriverID(driverName);
|
||||
List<(int LapTime, int Lap)> lapData = new List<(int LapTime, int Lap)>();
|
||||
string selectQuery = "Select LapTime,Lap from Stats WHERE DriverID = @driverID LIMIT @limit";
|
||||
using (var command = new SQLiteCommand(selectQuery, Connection))
|
||||
{
|
||||
command.Parameters.AddWithValue("@driverID", driverId);
|
||||
command.Parameters.AddWithValue("@limit", numberOfLaptimes);
|
||||
try
|
||||
{
|
||||
SQLiteDataReader reader = command.ExecuteReader();
|
||||
while (reader.Read())
|
||||
{
|
||||
int lapTime = reader.GetInt32(0);
|
||||
int lap = reader.GetInt32(1);
|
||||
lapData.Add((lapTime, lap));
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
//MessageBox.Show("There has been an error while trying to retrieve the ID of a Driver from the database");
|
||||
}
|
||||
}
|
||||
return lapData;
|
||||
}
|
||||
public void AddPitstop(string driverName,int lap,string tyre)
|
||||
{
|
||||
string insertQuery = "INSERT INTO Pitstops (Lap,DriverID,Tyre) VALUES (@Lap,@DriverID,@Tyre)";
|
||||
|
||||
Reference in New Issue
Block a user