Added a lot to the doc and modified the pdf generation

This commit is contained in:
2023-06-02 13:41:12 +02:00
parent bef8b9d635
commit a368e02453
113 changed files with 54217 additions and 17276 deletions
+110 -97
View File
@@ -135,38 +135,19 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
DriverGapToLeaderWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverPositionWindow.html">
DriverPositionWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="F1TVEmulator.html">
F1TVEmulator.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Window.html">
Window.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverData.html">
DriverData.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverLapTimeWindow.html">
DriverLapTimeWindow.cs
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
DriverGapToLeaderWindow.cs
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<a class="md-nav__link md-nav__link--active" href="DriverNameWindow.html">
DriverNameWindow.cs
</a>
</li>
<li class="md-nav__item">
@@ -175,13 +156,28 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="F1TVEmulator.html">
F1TVEmulator.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Form1.html">
Form1.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Reader.html">
Reader.cs
<a class="md-nav__link" href="Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
</li>
<li class="md-nav__item">
@@ -190,14 +186,23 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DataWrapper.html">
DataWrapper.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverDrsWindow.html">
DriverDrsWindow.cs
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<a class="md-nav__link md-nav__link--active" href="DriverNameWindow.html">
DriverNameWindow.cs
<li class="md-nav__item">
<a class="md-nav__link" href="DriverLapTimeWindow.html">
DriverLapTimeWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverPositionWindow.html">
DriverPositionWindow.cs
</a>
</li>
<li class="md-nav__item">
@@ -211,11 +216,21 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Reader.html">
Reader.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.html">
Settings.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Window.html">
Window.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="recoverCookiesCSV.html">
recoverCookiesCSV.py
</a>
@@ -239,73 +254,71 @@
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="drivernamewindowcs">DriverNameWindow.cs</h1>
<pre><code class="language-cs">/// Author : Maxime Rohmer
/// Date : 08/05/2023
/// File : DriverNameWindow
/// Brief : Window containing infos about the name of the driver
/// Version : 0.1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
namespace Test_Merge
{
public class DriverNameWindow : Window
{
public static Random rnd = new Random();
public DriverNameWindow(Bitmap image, Rectangle bounds, bool generateEngine = true) : base(image, bounds,generateEngine)
{
Name = "Name";
}
/// &lt;summary&gt;
/// Decodes using OCR wich driver name is in the image
/// &lt;/summary&gt;
/// &lt;param name="DriverList"&gt;&lt;/param&gt;
/// &lt;returns&gt;The driver name in string&lt;/returns&gt;
public override async Task&lt;object&gt; DecodePng(List&lt;string&gt; DriverList)
{
string result = "";
result = await GetStringFromPng(WindowImage, Engine);
if (!IsADriver(DriverList, result))
{
//I put everything in uppercase to try to lower the chances of bad answers
result = FindClosestMatch(DriverList.ConvertAll(d =&gt; d.ToUpper()), result.ToUpper());
}
return result;
}
/// &lt;summary&gt;
/// Verifies that the name found in the OCR is a valid name
/// &lt;/summary&gt;
/// &lt;param name="driverList"&gt;&lt;/param&gt;
/// &lt;param name="potentialDriver"&gt;&lt;/param&gt;
/// &lt;returns&gt;If ye or no the driver exists&lt;/returns&gt;
private static bool IsADriver(List&lt;string&gt; driverList, string potentialDriver)
{
bool result = false;
//I cant use drivers.Contains because it has missmatched cases and all
foreach (string name in driverList)
{
if (name.ToUpper() == potentialDriver.ToUpper())
result = true;
}
return result;
}
}
}
</code></pre>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 30/05/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : DriverNameWindow</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Window containing infos about the name of the driver</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Alpha 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-9"><a href="#__codelineno-0-9" id="__codelineno-0-9" name="__codelineno-0-9"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Linq</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-10"><a href="#__codelineno-0-10" id="__codelineno-0-10" name="__codelineno-0-10"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Text</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-11"><a href="#__codelineno-0-11" id="__codelineno-0-11" name="__codelineno-0-11"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Threading.Tasks</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-12"><a href="#__codelineno-0-12" id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Drawing</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-13"><a href="#__codelineno-0-13" id="__codelineno-0-13" name="__codelineno-0-13"></a>
</span><span id="__span-0-14"><a href="#__codelineno-0-14" id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="k">namespace</span><span class="w"> </span><span class="nn">TrackTrends</span><span class="w"></span>
</span><span id="__span-0-15"><a href="#__codelineno-0-15" id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-16"><a href="#__codelineno-0-16" id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">DriverNameWindow</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">Window</span><span class="w"></span>
</span><span id="__span-0-17"><a href="#__codelineno-0-17" id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-18"><a href="#__codelineno-0-18" id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="nf">DriverNameWindow</span><span class="p">(</span><span class="n">Bitmap</span><span class="w"> </span><span class="n">image</span><span class="p">,</span><span class="w"> </span><span class="n">Rectangle</span><span class="w"> </span><span class="n">bounds</span><span class="p">,</span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">generateEngine</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">)</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="k">base</span><span class="p">(</span><span class="n">image</span><span class="p">,</span><span class="w"> </span><span class="n">bounds</span><span class="p">,</span><span class="n">generateEngine</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-19"><a href="#__codelineno-0-19" id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-20"><a href="#__codelineno-0-20" id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="w"> </span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Name"</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-21"><a href="#__codelineno-0-21" id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-22"><a href="#__codelineno-0-22" id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-23"><a href="#__codelineno-0-23" id="__codelineno-0-23" name="__codelineno-0-23"></a><span class="w"> </span><span class="c1">/// Decodes using OCR wich driver name is in the image</span>
</span><span id="__span-0-24"><a href="#__codelineno-0-24" id="__codelineno-0-24" name="__codelineno-0-24"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-25"><a href="#__codelineno-0-25" id="__codelineno-0-25" name="__codelineno-0-25"></a><span class="w"> </span><span class="c1">/// &lt;param name="DriverList"&gt;A list of all the names that can be on the image&lt;/param&gt;</span>
</span><span id="__span-0-26"><a href="#__codelineno-0-26" id="__codelineno-0-26" name="__codelineno-0-26"></a><span class="w"> </span><span class="c1">/// &lt;returns&gt;a string representing the found driver name. It will be one of the ones given in the list&lt;/returns&gt;</span>
</span><span id="__span-0-27"><a href="#__codelineno-0-27" id="__codelineno-0-27" name="__codelineno-0-27"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">override</span><span class="w"> </span><span class="kt">object</span><span class="w"> </span><span class="nf">DecodePng</span><span class="p">(</span><span class="n">List</span><span class="p">&lt;</span><span class="kt">string</span><span class="p">&gt;</span><span class="w"> </span><span class="n">DriverList</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-28"><a href="#__codelineno-0-28" id="__codelineno-0-28" name="__codelineno-0-28"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-29"><a href="#__codelineno-0-29" id="__codelineno-0-29" name="__codelineno-0-29"></a><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">""</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-30"><a href="#__codelineno-0-30" id="__codelineno-0-30" name="__codelineno-0-30"></a><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">GetStringFromPng</span><span class="p">(</span><span class="n">WindowImage</span><span class="p">,</span><span class="w"> </span><span class="n">Engine</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-31"><a href="#__codelineno-0-31" id="__codelineno-0-31" name="__codelineno-0-31"></a>
</span><span id="__span-0-32"><a href="#__codelineno-0-32" id="__codelineno-0-32" name="__codelineno-0-32"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(!</span><span class="n">IsADriver</span><span class="p">(</span><span class="n">DriverList</span><span class="p">,</span><span class="w"> </span><span class="n">result</span><span class="p">))</span><span class="w"></span>
</span><span id="__span-0-33"><a href="#__codelineno-0-33" id="__codelineno-0-33" name="__codelineno-0-33"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-34"><a href="#__codelineno-0-34" id="__codelineno-0-34" name="__codelineno-0-34"></a><span class="w"> </span><span class="c1">//I put everything in uppercase to try to lower the chances of bad answers</span>
</span><span id="__span-0-35"><a href="#__codelineno-0-35" id="__codelineno-0-35" name="__codelineno-0-35"></a><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">FindClosestMatch</span><span class="p">(</span><span class="n">DriverList</span><span class="p">.</span><span class="n">ConvertAll</span><span class="p">(</span><span class="n">d</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="n">d</span><span class="p">.</span><span class="n">ToUpper</span><span class="p">()),</span><span class="w"> </span><span class="n">result</span><span class="p">.</span><span class="n">ToUpper</span><span class="p">());</span><span class="w"></span>
</span><span id="__span-0-36"><a href="#__codelineno-0-36" id="__codelineno-0-36" name="__codelineno-0-36"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-37"><a href="#__codelineno-0-37" id="__codelineno-0-37" name="__codelineno-0-37"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-38"><a href="#__codelineno-0-38" id="__codelineno-0-38" name="__codelineno-0-38"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-39"><a href="#__codelineno-0-39" id="__codelineno-0-39" name="__codelineno-0-39"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-40"><a href="#__codelineno-0-40" id="__codelineno-0-40" name="__codelineno-0-40"></a><span class="w"> </span><span class="c1">/// Verifies that the name found in the OCR is a valid name</span>
</span><span id="__span-0-41"><a href="#__codelineno-0-41" id="__codelineno-0-41" name="__codelineno-0-41"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-42"><a href="#__codelineno-0-42" id="__codelineno-0-42" name="__codelineno-0-42"></a><span class="w"> </span><span class="c1">/// &lt;param name="driverList"&gt;The list of all the drivers name that can be found in the image&lt;/param&gt;</span>
</span><span id="__span-0-43"><a href="#__codelineno-0-43" id="__codelineno-0-43" name="__codelineno-0-43"></a><span class="w"> </span><span class="c1">/// &lt;param name="potentialDriver"&gt;The driver you want to be sure if it exists or not&lt;/param&gt;</span>
</span><span id="__span-0-44"><a href="#__codelineno-0-44" id="__codelineno-0-44" name="__codelineno-0-44"></a><span class="w"> </span><span class="c1">/// &lt;returns&gt;If ye or no the driver exists&lt;/returns&gt;</span>
</span><span id="__span-0-45"><a href="#__codelineno-0-45" id="__codelineno-0-45" name="__codelineno-0-45"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="nf">IsADriver</span><span class="p">(</span><span class="n">List</span><span class="p">&lt;</span><span class="kt">string</span><span class="p">&gt;</span><span class="w"> </span><span class="n">driverList</span><span class="p">,</span><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">potentialDriver</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-46"><a href="#__codelineno-0-46" id="__codelineno-0-46" name="__codelineno-0-46"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-47"><a href="#__codelineno-0-47" id="__codelineno-0-47" name="__codelineno-0-47"></a><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-48"><a href="#__codelineno-0-48" id="__codelineno-0-48" name="__codelineno-0-48"></a><span class="w"> </span><span class="c1">//I cant use drivers.Contains because it has missmatched cases and all</span>
</span><span id="__span-0-49"><a href="#__codelineno-0-49" id="__codelineno-0-49" name="__codelineno-0-49"></a><span class="w"> </span><span class="k">foreach</span><span class="w"> </span><span class="p">(</span><span class="kt">string</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">driverList</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-50"><a href="#__codelineno-0-50" id="__codelineno-0-50" name="__codelineno-0-50"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-51"><a href="#__codelineno-0-51" id="__codelineno-0-51" name="__codelineno-0-51"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">name</span><span class="p">.</span><span class="n">ToUpper</span><span class="p">()</span><span class="w"> </span><span class="p">==</span><span class="w"> </span><span class="n">potentialDriver</span><span class="p">.</span><span class="n">ToUpper</span><span class="p">())</span><span class="w"></span>
</span><span id="__span-0-52"><a href="#__codelineno-0-52" id="__codelineno-0-52" name="__codelineno-0-52"></a><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">true</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-53"><a href="#__codelineno-0-53" id="__codelineno-0-53" name="__codelineno-0-53"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-54"><a href="#__codelineno-0-54" id="__codelineno-0-54" name="__codelineno-0-54"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-55"><a href="#__codelineno-0-55" id="__codelineno-0-55" name="__codelineno-0-55"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-56"><a href="#__codelineno-0-56" id="__codelineno-0-56" name="__codelineno-0-56"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-57"><a href="#__codelineno-0-57" id="__codelineno-0-57" name="__codelineno-0-57"></a><span class="p">}</span><span class="w"></span>
</span></code></pre></div>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<nav aria-label="Footer" class="md-footer__inner md-grid">
<a aria-label="Previous: DriverDrsWindow.cs" class="md-footer__link md-footer__link--prev" href="DriverDrsWindow.html" rel="prev">
<a aria-label="Previous: DriverGapToLeaderWindow.cs" class="md-footer__link md-footer__link--prev" href="DriverGapToLeaderWindow.html" rel="prev">
<div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</div>
@@ -314,17 +327,17 @@ namespace Test_Merge
<span class="md-footer__direction">
Previous
</span>
DriverDrsWindow.cs
DriverGapToLeaderWindow.cs
</div>
</div>
</a>
<a aria-label="Next: DriverTyresWindow.cs" class="md-footer__link md-footer__link--next" href="DriverTyresWindow.html" rel="next">
<a aria-label="Next: DriverSectorWindow.cs" class="md-footer__link md-footer__link--next" href="DriverSectorWindow.html" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Next
</span>
DriverTyresWindow.cs
DriverSectorWindow.cs
</div>
</div>
<div class="md-footer__button md-icon">