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);
|
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)
|
if(LiveDriverDataLogs.Count > 0)
|
||||||
{
|
{
|
||||||
@@ -67,7 +96,7 @@ namespace Test_Merge
|
|||||||
newButton.Name = liveData[driverCount].Name;
|
newButton.Name = liveData[driverCount].Name;
|
||||||
newButton.TextAlign = ContentAlignment.MiddleLeft;
|
newButton.TextAlign = ContentAlignment.MiddleLeft;
|
||||||
|
|
||||||
newButton.Click += Form1.btnDriver_Click;
|
newButton.Click += form1.btnDriver_Click;
|
||||||
|
|
||||||
buttons[driverCount] = newButton;
|
buttons[driverCount] = newButton;
|
||||||
}
|
}
|
||||||
|
|||||||
+47
-4
@@ -148,7 +148,7 @@ namespace Test_Merge
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Wrapper.DisplayLiveRanking(pnlLiveRanking);
|
Wrapper.DisplayLiveRanking(pnlLiveRanking,this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,7 +165,7 @@ namespace Test_Merge
|
|||||||
{
|
{
|
||||||
btnResetEmulator.Text = "Restart driver";
|
btnResetEmulator.Text = "Restart driver";
|
||||||
btnResetEmulator.Enabled = false;
|
btnResetEmulator.Enabled = false;
|
||||||
btnSettings.Enabled = false;
|
btnSettings.Enabled = true;
|
||||||
btnStartDecoding.Enabled = false;
|
btnStartDecoding.Enabled = false;
|
||||||
btnStopUpdating.Enabled = false;
|
btnStopUpdating.Enabled = false;
|
||||||
int errorCode = -1;
|
int errorCode = -1;
|
||||||
@@ -209,10 +209,53 @@ namespace Test_Merge
|
|||||||
if (tbxResult.Text != "")
|
if (tbxResult.Text != "")
|
||||||
GpUrl = textBox1.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
|
//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;
|
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)
|
public void AddPitstop(string driverName,int lap,string tyre)
|
||||||
{
|
{
|
||||||
string insertQuery = "INSERT INTO Pitstops (Lap,DriverID,Tyre) VALUES (@Lap,@DriverID,@Tyre)";
|
string insertQuery = "INSERT INTO Pitstops (Lap,DriverID,Tyre) VALUES (@Lap,@DriverID,@Tyre)";
|
||||||
|
|||||||
Reference in New Issue
Block a user