Added new Poster and improved PDF rendering
|
After Width: | Height: | Size: 5.2 MiB |
|
After Width: | Height: | Size: 4.8 MiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 13 KiB |
@@ -4,7 +4,7 @@
|
||||
|
||||
Rohmer Maxime Travail de diplôme Technicien ES 2023
|
||||
|
||||

|
||||

|
||||
|
||||
## Introduction
|
||||
|
||||
@@ -451,8 +451,31 @@ IWebElement fullScreenButton = Driver.FindElement(By.ClassName("bmpui-ui-fullscr
|
||||
fullScreenButton.Click();
|
||||
```
|
||||
|
||||
Ca peut paraître plutôt simple dit comme ca et quand tout fonctionne ca l'est mais la difficulté vient du fait que à peu près nimporte laquelle de ces étapes peut rater et qu'il faut donc faire un bon système de gestion d'erreurs qui puisse aider l'utilisateur en cas de problème.
|
||||
|
||||
Il faut dire aussi que les sites ne sont pas forcément très content de voir des bots passer car cela peut être un risque de DDOS et de Scraping (Comme moi) et donc ils mettent en place des systèmes pour nous empêcher de faire ce que l'on veut
|
||||
|
||||
On peut utiliser différntes techniques pour passer outre ces restrictions comme :
|
||||
|
||||
- Changer son UserAgent
|
||||
- Changer sa résolution
|
||||
- Ne pas avoir des patterns trop prévisibles
|
||||
- Avoir un historique
|
||||
- Ne pas cliquer pile sur le milieu des boutons
|
||||
- Ne pas cliquer trop vite
|
||||
- Passer par un proxy pour ne pas se faire flag
|
||||
- Utiliser des librairies plus discrètes
|
||||
|
||||
J'ai eu l'occasion de tester toutes ces methodes pour tenter de passer derrière les radars de la F1TV et visiblement j'ai réussi pour les pages principales mais pas pour les pages de Login.
|
||||
|
||||
Il faut savoir que la bataille entre bots et propriétaires de sites est un grand jeu du chat et de la souris et que les plateformes innovent constamment leur sécurité. Et il se trouve que la partie login de la F1TV est hebergée autre part que le reste du site chez Amazon et que elle possède les meilleures sécurités que j'aie pu voir. Aucunes des methodes que j'ai citées et d'autres encore que j'ai essayé n'ont réussi à fourvoyer le système.
|
||||
|
||||
J'ai donc été obligé de faire appel à la connexion par Cookies pour pouvoir accèder au reste du site internet.
|
||||
|
||||
#### Récupèrer les cookies ?
|
||||
|
||||
Alors, on va mettre de côté toutes les questions de sécurité et de violation de la vie privée et de protection des données des utilisateurs pour ce chapitre. Car pour faire simple, je siphonne TOUS les cookies de la persone qui utilise mon app.
|
||||
|
||||
[FINIR CETTE EXPLICATIOn]
|
||||
|
||||
#### Calibration
|
||||
|
||||
@@ -2177,4 +2177,14 @@ plugins:
|
||||
- OcrImage.cs: Code/OcrImage.cs # An path to an annex with its title
|
||||
- Settings.cs: Code/Settings.cs # An path to an annex with its title
|
||||
- recoverCookiesCSV.py: Code/recoverCookiesCSV.py # An path to an annex with its title
|
||||
```
|
||||
```
|
||||
|
||||
Je remercie Monsieur Briard le sultan officiel de Mkdocs de la classe de m'avoir aidé pour cette partie et avoir créé un plugin qui me permet de mettre mon code source directement dans le pdf.
|
||||
|
||||
Bon au final j'ai quand même changé mon poster
|
||||
|
||||

|
||||
|
||||
Mais je suis trop attaché à l'ancien concept alors je vais plutôt utiliser ca :
|
||||
|
||||

|
||||
@@ -1,6 +1,7 @@
|
||||
site_name: Documentation Track Trends
|
||||
site_author: Rohmer Maxime
|
||||
copyright: ©CFPTI Tech2
|
||||
use_directory_urls: false
|
||||
theme:
|
||||
name: material
|
||||
palette:
|
||||
@@ -26,7 +27,7 @@ plugins:
|
||||
- search
|
||||
- img2fig
|
||||
- with-pdf:
|
||||
cover_subtitle: Vroum Vroum
|
||||
cover_subtitle: "Vroum Vroum"
|
||||
enabled_if_env: ENABLE_PDF_EXPORT
|
||||
- annexes-integration:
|
||||
annexes: # Required (at least 1)
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav class="md-header__inner md-grid" aria-label="Header">
|
||||
<a href="/." title="Documentation Track Trends" class="md-header__button md-logo" aria-label="Documentation Track Trends" data-md-component="logo">
|
||||
<a href="/index.html" title="Documentation Track Trends" class="md-header__button md-logo" aria-label="Documentation Track Trends" data-md-component="logo">
|
||||
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
|
||||
@@ -119,6 +119,39 @@
|
||||
|
||||
|
||||
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
|
||||
</label>
|
||||
<nav class="md-search__options" aria-label="Search">
|
||||
|
||||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||||
</button>
|
||||
</nav>
|
||||
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix>
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</nav>
|
||||
|
||||
@@ -144,7 +177,7 @@
|
||||
|
||||
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a href="/." title="Documentation Track Trends" class="md-nav__button md-logo" aria-label="Documentation Track Trends" data-md-component="logo">
|
||||
<a href="/index.html" title="Documentation Track Trends" class="md-nav__button md-logo" aria-label="Documentation Track Trends" data-md-component="logo">
|
||||
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
|
||||
@@ -163,7 +196,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/." class="md-nav__link">
|
||||
<a href="/index.html" class="md-nav__link">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
@@ -178,7 +211,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/CahierDesCharges/" class="md-nav__link">
|
||||
<a href="/CahierDesCharges.html" class="md-nav__link">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
@@ -193,7 +226,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/jdb/" class="md-nav__link">
|
||||
<a href="/jdb.html" class="md-nav__link">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -234,7 +267,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/ConfigurationTool/" class="md-nav__link">
|
||||
<a href="/Code/ConfigurationTool.html" class="md-nav__link">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -248,7 +281,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/DriverGapToLeaderWindow/" class="md-nav__link">
|
||||
<a href="/Code/DriverGapToLeaderWindow.html" class="md-nav__link">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -262,7 +295,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/DriverPositionWindow/" class="md-nav__link">
|
||||
<a href="/Code/DriverPositionWindow.html" class="md-nav__link">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -276,7 +309,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/F1TVEmulator/" class="md-nav__link">
|
||||
<a href="/Code/F1TVEmulator.html" class="md-nav__link">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -290,7 +323,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/Program/" class="md-nav__link">
|
||||
<a href="/Code/Program.html" class="md-nav__link">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -304,7 +337,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/Window/" class="md-nav__link">
|
||||
<a href="/Code/Window.html" class="md-nav__link">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -318,7 +351,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/DriverData/" class="md-nav__link">
|
||||
<a href="/Code/DriverData.html" class="md-nav__link">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -332,7 +365,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/DriverLapTimeWindow/" class="md-nav__link">
|
||||
<a href="/Code/DriverLapTimeWindow.html" class="md-nav__link">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -346,7 +379,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/DriverSectorWindow/" class="md-nav__link">
|
||||
<a href="/Code/DriverSectorWindow.html" class="md-nav__link">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -360,7 +393,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/Form1/" class="md-nav__link">
|
||||
<a href="/Code/Form1.html" class="md-nav__link">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -374,7 +407,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/Reader/" class="md-nav__link">
|
||||
<a href="/Code/Reader.html" class="md-nav__link">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -388,7 +421,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/Zone/" class="md-nav__link">
|
||||
<a href="/Code/Zone.html" class="md-nav__link">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -402,7 +435,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/DriverDrsWindow/" class="md-nav__link">
|
||||
<a href="/Code/DriverDrsWindow.html" class="md-nav__link">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -416,7 +449,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/DriverNameWindow/" class="md-nav__link">
|
||||
<a href="/Code/DriverNameWindow.html" class="md-nav__link">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -430,7 +463,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/DriverTyresWindow/" class="md-nav__link">
|
||||
<a href="/Code/DriverTyresWindow.html" class="md-nav__link">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -444,7 +477,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/OcrImage/" class="md-nav__link">
|
||||
<a href="/Code/OcrImage.html" class="md-nav__link">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -458,7 +491,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/Settings/" class="md-nav__link">
|
||||
<a href="/Code/Settings.html" class="md-nav__link">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
@@ -472,7 +505,7 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/Code/recoverCookiesCSV/" class="md-nav__link">
|
||||
<a href="/Code/recoverCookiesCSV.html" class="md-nav__link">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>Cahier des charges - Documentation Track Trends</title>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href=".." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,14 +96,14 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href=".." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="..">
|
||||
<a class="md-nav__link" href="index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
@@ -83,7 +113,7 @@
|
||||
Cahier des charges
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
<a class="md-nav__link md-nav__link--active" href="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
<nav aria-label="Table of contents" class="md-nav md-nav--secondary">
|
||||
@@ -121,7 +151,7 @@
|
||||
</nav>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../jdb/">
|
||||
<a class="md-nav__link" href="jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -138,92 +168,92 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/ConfigurationTool/">
|
||||
<a class="md-nav__link" href="Code/ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/F1TVEmulator/">
|
||||
<a class="md-nav__link" href="Code/F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/Program/">
|
||||
<a class="md-nav__link" href="Code/Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/Window/">
|
||||
<a class="md-nav__link" href="Code/Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverData/">
|
||||
<a class="md-nav__link" href="Code/DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/Form1/">
|
||||
<a class="md-nav__link" href="Code/Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/Reader/">
|
||||
<a class="md-nav__link" href="Code/Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/Zone/">
|
||||
<a class="md-nav__link" href="Code/Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverNameWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/OcrImage/">
|
||||
<a class="md-nav__link" href="Code/OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/Settings/">
|
||||
<a class="md-nav__link" href="Code/Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="Code/recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -287,7 +317,10 @@ Par exemple : "Tour 28/54, Hamilton a fini par s'arrêter et chausser des gommes
|
||||
<li><a href="https://www.20min.ch/fr/story/les-leaders-du-championnat-en-fond-de-grille-937035758708">"Commentaire Grand Prix de Belgique 2022"</a></li>
|
||||
<li><a href="https://www.20min.ch/fr/story/singapour-sous-la-pluie-depart-repousse-432150037887">"Commentaire du Grand Prix de Singapour 2022"</a></li>
|
||||
</ul>
|
||||
<p><a class="glightbox" href="../Images/Screens/ExampleLiveTicker.png"><img alt='"Exemple commentaires"' src="../Images/Screens/ExampleLiveTicker.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ExampleLiveTicker.png"><img alt="" commentaires""="" exemple="" src="./Images/Screens/ExampleLiveTicker.png"/></a>
|
||||
<figcaption>"Exemple commentaires"</figcaption>
|
||||
</figure>
|
||||
<p>Pendant un Grand Prix, je dois constamment :</p>
|
||||
<ul>
|
||||
<li>Écrire ce qu'il se passe dans le grand prix et expliquer les enjeux</li>
|
||||
@@ -320,7 +353,10 @@ La raison la plus probable étant qu'Amazon avec son service AWS propose exactem
|
||||
<p>Il existe des API "Pirates" faites par la communauté, le problème est qu'elles ne sont pas forcément des plus pratiques à utiliser.</p>
|
||||
<p>Mais comme je possède un abonnement premium ++ à la F1TV, j'ai accès pour chaque grand prix à un flux vidéo nommé : DATA F1 CHANNEL</p>
|
||||
<p>Qui ressemble à ça :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/Formula1DataChannel.png"><img alt='"Data channel exemple"' src="../Images/Screens/Formula1DataChannel.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/Formula1DataChannel.png"><img alt="" channel="" data="" exemple""="" src="./Images/Screens/Formula1DataChannel.png"/></a>
|
||||
<figcaption>"Data channel exemple"</figcaption>
|
||||
</figure>
|
||||
<p>Donc la seule façon que je vois de récupérer ces données est de les prendre directement sur ce feed.</p>
|
||||
<p>Même si le but final de l'application est de faire pleins de choses super avec les datas, le gros du projet va surtout être la récupération des données et leur stockage.</p>
|
||||
<p>Les données viennent du flux vidéo et ainsi dans un premier temps, il va falloir récupérer d'une manière ou d'une autre des images qui viennent d'un grand prix en direct ou en rediffusion.</p>
|
||||
@@ -348,7 +384,10 @@ La raison la plus probable étant qu'Amazon avec son service AWS propose exactem
|
||||
<li>Prédire les temps au tour de chaque pilote selon l'usure des pneus</li>
|
||||
</ul>
|
||||
<p>Voici un exemple d'interface possible pour une page :</p>
|
||||
<p><a class="glightbox" href="../Images/Figma/Prototype.png"><img alt='"Proto"' src="../Images/Figma/Prototype.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/Prototype.png"><img alt="" proto""="" src="./Images/Figma/Prototype.png"/></a>
|
||||
<figcaption>"Proto"</figcaption>
|
||||
</figure>
|
||||
<h2 id="cas-dutilisation">Cas d'utilisation</h2>
|
||||
<hr/>
|
||||
<p>*On va considérer que tous les user ont un abonnement F1 TV PRO</p>
|
||||
@@ -388,7 +427,7 @@ La raison la plus probable étant qu'Amazon avec son service AWS propose exactem
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: Rapport Track Trends V1.0" class="md-footer__link md-footer__link--prev" href=".." rel="prev">
|
||||
<a aria-label="Previous: Rapport Track Trends V1.0" class="md-footer__link md-footer__link--prev" href="index.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>
|
||||
@@ -401,7 +440,7 @@ La raison la plus probable étant qu'Amazon avec son service AWS propose exactem
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: Journal de bord" class="md-footer__link md-footer__link--next" href="../jdb/" rel="next">
|
||||
<a aria-label="Next: Journal de bord" class="md-footer__link md-footer__link--next" href="jdb.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -435,7 +474,7 @@ La raison la plus probable étant qu'Amazon avec son service AWS propose exactem
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": ".", "features": [], "search": "assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>ConfigurationTool.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -101,92 +131,92 @@
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -410,7 +440,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: Journal de bord" class="md-footer__link md-footer__link--prev" href="../../jdb/" rel="prev">
|
||||
<a aria-label="Previous: Journal de bord" class="md-footer__link md-footer__link--prev" href="../jdb.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>
|
||||
@@ -423,7 +453,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: DriverGapToLeaderWindow.cs" class="md-footer__link md-footer__link--next" href="../DriverGapToLeaderWindow/" rel="next">
|
||||
<a aria-label="Next: DriverGapToLeaderWindow.cs" class="md-footer__link md-footer__link--next" href="DriverGapToLeaderWindow.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -457,7 +487,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>DriverData.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -319,7 +349,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: Window.cs" class="md-footer__link md-footer__link--prev" href="../Window/" rel="prev">
|
||||
<a aria-label="Previous: Window.cs" class="md-footer__link md-footer__link--prev" href="Window.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>
|
||||
@@ -332,7 +362,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: DriverLapTimeWindow.cs" class="md-footer__link md-footer__link--next" href="../DriverLapTimeWindow/" rel="next">
|
||||
<a aria-label="Next: DriverLapTimeWindow.cs" class="md-footer__link md-footer__link--next" href="DriverLapTimeWindow.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -366,7 +396,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>DriverDrsWindow.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -315,7 +345,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: Zone.cs" class="md-footer__link md-footer__link--prev" href="../Zone/" rel="prev">
|
||||
<a aria-label="Previous: Zone.cs" class="md-footer__link md-footer__link--prev" href="Zone.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>
|
||||
@@ -328,7 +358,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: DriverNameWindow.cs" class="md-footer__link md-footer__link--next" href="../DriverNameWindow/" rel="next">
|
||||
<a aria-label="Next: DriverNameWindow.cs" class="md-footer__link md-footer__link--next" href="DriverNameWindow.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -362,7 +392,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>DriverGapToLeaderWindow.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -249,7 +279,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: ConfigurationTool.cs" class="md-footer__link md-footer__link--prev" href="../ConfigurationTool/" rel="prev">
|
||||
<a aria-label="Previous: ConfigurationTool.cs" class="md-footer__link md-footer__link--prev" href="ConfigurationTool.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>
|
||||
@@ -262,7 +292,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: DriverPositionWindow.cs" class="md-footer__link md-footer__link--next" href="../DriverPositionWindow/" rel="next">
|
||||
<a aria-label="Next: DriverPositionWindow.cs" class="md-footer__link md-footer__link--next" href="DriverPositionWindow.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -296,7 +326,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>DriverLapTimeWindow.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -249,7 +279,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: DriverData.cs" class="md-footer__link md-footer__link--prev" href="../DriverData/" rel="prev">
|
||||
<a aria-label="Previous: DriverData.cs" class="md-footer__link md-footer__link--prev" href="DriverData.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>
|
||||
@@ -262,7 +292,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: DriverSectorWindow.cs" class="md-footer__link md-footer__link--next" href="../DriverSectorWindow/" 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">
|
||||
@@ -296,7 +326,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>DriverNameWindow.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -275,7 +305,7 @@ namespace Test_Merge
|
||||
</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/" rel="prev">
|
||||
<a aria-label="Previous: DriverDrsWindow.cs" class="md-footer__link md-footer__link--prev" href="DriverDrsWindow.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>
|
||||
@@ -288,7 +318,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: DriverTyresWindow.cs" class="md-footer__link md-footer__link--next" href="../DriverTyresWindow/" rel="next">
|
||||
<a aria-label="Next: DriverTyresWindow.cs" class="md-footer__link md-footer__link--next" href="DriverTyresWindow.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -322,7 +352,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>DriverPositionWindow.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -259,7 +289,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: DriverGapToLeaderWindow.cs" class="md-footer__link md-footer__link--prev" href="../DriverGapToLeaderWindow/" 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>
|
||||
@@ -272,7 +302,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: F1TVEmulator.cs" class="md-footer__link md-footer__link--next" href="../F1TVEmulator/" rel="next">
|
||||
<a aria-label="Next: F1TVEmulator.cs" class="md-footer__link md-footer__link--next" href="F1TVEmulator.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -306,7 +336,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>DriverSectorWindow.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -249,7 +279,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: DriverLapTimeWindow.cs" class="md-footer__link md-footer__link--prev" href="../DriverLapTimeWindow/" rel="prev">
|
||||
<a aria-label="Previous: DriverLapTimeWindow.cs" class="md-footer__link md-footer__link--prev" href="DriverLapTimeWindow.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>
|
||||
@@ -262,7 +292,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: Form1.cs" class="md-footer__link md-footer__link--next" href="../Form1/" rel="next">
|
||||
<a aria-label="Next: Form1.cs" class="md-footer__link md-footer__link--next" href="Form1.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -296,7 +326,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>DriverTyresWindow.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -358,7 +388,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: DriverNameWindow.cs" class="md-footer__link md-footer__link--prev" href="../DriverNameWindow/" rel="prev">
|
||||
<a aria-label="Previous: DriverNameWindow.cs" class="md-footer__link md-footer__link--prev" href="DriverNameWindow.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>
|
||||
@@ -371,7 +401,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: OcrImage.cs" class="md-footer__link md-footer__link--next" href="../OcrImage/" rel="next">
|
||||
<a aria-label="Next: OcrImage.cs" class="md-footer__link md-footer__link--next" href="OcrImage.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -405,7 +435,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>F1TVEmulator.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -505,7 +535,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: DriverPositionWindow.cs" class="md-footer__link md-footer__link--prev" href="../DriverPositionWindow/" rel="prev">
|
||||
<a aria-label="Previous: DriverPositionWindow.cs" class="md-footer__link md-footer__link--prev" href="DriverPositionWindow.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>
|
||||
@@ -518,7 +548,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: Program.cs" class="md-footer__link md-footer__link--next" href="../Program/" rel="next">
|
||||
<a aria-label="Next: Program.cs" class="md-footer__link md-footer__link--next" href="Program.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -552,7 +582,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>Form1.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -244,7 +274,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: DriverSectorWindow.cs" class="md-footer__link md-footer__link--prev" href="../DriverSectorWindow/" rel="prev">
|
||||
<a aria-label="Previous: DriverSectorWindow.cs" class="md-footer__link md-footer__link--prev" href="DriverSectorWindow.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>
|
||||
@@ -257,7 +287,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: Reader.cs" class="md-footer__link md-footer__link--next" href="../Reader/" rel="next">
|
||||
<a aria-label="Next: Reader.cs" class="md-footer__link md-footer__link--next" href="Reader.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -291,7 +321,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>OcrImage.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -756,7 +786,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: DriverTyresWindow.cs" class="md-footer__link md-footer__link--prev" href="../DriverTyresWindow/" rel="prev">
|
||||
<a aria-label="Previous: DriverTyresWindow.cs" class="md-footer__link md-footer__link--prev" href="DriverTyresWindow.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>
|
||||
@@ -769,7 +799,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: Settings.cs" class="md-footer__link md-footer__link--next" href="../Settings/" rel="next">
|
||||
<a aria-label="Next: Settings.cs" class="md-footer__link md-footer__link--next" href="Settings.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -803,7 +833,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>Program.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -239,7 +269,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: F1TVEmulator.cs" class="md-footer__link md-footer__link--prev" href="../F1TVEmulator/" rel="prev">
|
||||
<a aria-label="Previous: F1TVEmulator.cs" class="md-footer__link md-footer__link--prev" href="F1TVEmulator.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>
|
||||
@@ -252,7 +282,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: Window.cs" class="md-footer__link md-footer__link--next" href="../Window/" rel="next">
|
||||
<a aria-label="Next: Window.cs" class="md-footer__link md-footer__link--next" href="Window.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -286,7 +316,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>Reader.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -447,7 +477,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: Form1.cs" class="md-footer__link md-footer__link--prev" href="../Form1/" rel="prev">
|
||||
<a aria-label="Previous: Form1.cs" class="md-footer__link md-footer__link--prev" href="Form1.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>
|
||||
@@ -460,7 +490,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: Zone.cs" class="md-footer__link md-footer__link--next" href="../Zone/" rel="next">
|
||||
<a aria-label="Next: Zone.cs" class="md-footer__link md-footer__link--next" href="Zone.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -494,7 +524,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>Settings.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -632,7 +662,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: OcrImage.cs" class="md-footer__link md-footer__link--prev" href="../OcrImage/" rel="prev">
|
||||
<a aria-label="Previous: OcrImage.cs" class="md-footer__link md-footer__link--prev" href="OcrImage.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>
|
||||
@@ -645,7 +675,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: recoverCookiesCSV.py" class="md-footer__link md-footer__link--next" href="../recoverCookiesCSV/" rel="next">
|
||||
<a aria-label="Next: recoverCookiesCSV.py" class="md-footer__link md-footer__link--next" href="recoverCookiesCSV.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -679,7 +709,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>Window.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -534,7 +564,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: Program.cs" class="md-footer__link md-footer__link--prev" href="../Program/" rel="prev">
|
||||
<a aria-label="Previous: Program.cs" class="md-footer__link md-footer__link--prev" href="Program.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>
|
||||
@@ -547,7 +577,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: DriverData.cs" class="md-footer__link md-footer__link--next" href="../DriverData/" rel="next">
|
||||
<a aria-label="Next: DriverData.cs" class="md-footer__link md-footer__link--next" href="DriverData.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -581,7 +611,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>Zone.cs - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -454,7 +484,7 @@ namespace Test_Merge
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: Reader.cs" class="md-footer__link md-footer__link--prev" href="../Reader/" rel="prev">
|
||||
<a aria-label="Previous: Reader.cs" class="md-footer__link md-footer__link--prev" href="Reader.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>
|
||||
@@ -467,7 +497,7 @@ namespace Test_Merge
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: DriverDrsWindow.cs" class="md-footer__link md-footer__link--next" href="../DriverDrsWindow/" rel="next">
|
||||
<a aria-label="Next: DriverDrsWindow.cs" class="md-footer__link md-footer__link--next" href="DriverDrsWindow.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -501,7 +531,7 @@ namespace Test_Merge
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>recoverCookiesCSV.py - Documentation Track Trends</title>
|
||||
<link href="../../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,24 +96,24 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../..">
|
||||
<a class="md-nav__link" href="../index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="../CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../../jdb/">
|
||||
<a class="md-nav__link" href="../jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -100,93 +130,93 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../ConfigurationTool/">
|
||||
<a class="md-nav__link" href="ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../F1TVEmulator/">
|
||||
<a class="md-nav__link" href="F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Program/">
|
||||
<a class="md-nav__link" href="Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Window/">
|
||||
<a class="md-nav__link" href="Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverData/">
|
||||
<a class="md-nav__link" href="DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Form1/">
|
||||
<a class="md-nav__link" href="Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Reader/">
|
||||
<a class="md-nav__link" href="Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Zone/">
|
||||
<a class="md-nav__link" href="Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverNameWindow/">
|
||||
<a class="md-nav__link" href="DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../OcrImage/">
|
||||
<a class="md-nav__link" href="OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Settings/">
|
||||
<a class="md-nav__link" href="Settings.html">
|
||||
Settings.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="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -300,7 +330,7 @@ print("Finished CSV")
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: Settings.cs" class="md-footer__link md-footer__link--prev" href="../Settings/" rel="prev">
|
||||
<a aria-label="Previous: Settings.cs" class="md-footer__link md-footer__link--prev" href="Settings.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>
|
||||
@@ -334,7 +364,7 @@ print("Finished CSV")
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 5.2 MiB |
|
After Width: | Height: | Size: 4.8 MiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 13 KiB |
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,7 +96,7 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
@@ -78,7 +108,7 @@
|
||||
Rapport Track Trends V1.0
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
<a class="md-nav__link md-nav__link--active" href=".">
|
||||
<a class="md-nav__link md-nav__link--active" href="index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
<nav aria-label="Table of contents" class="md-nav md-nav--secondary">
|
||||
@@ -418,12 +448,12 @@
|
||||
</nav>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="CahierDesCharges/">
|
||||
<a class="md-nav__link" href="CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="jdb/">
|
||||
<a class="md-nav__link" href="jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
</li>
|
||||
@@ -440,92 +470,92 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/ConfigurationTool/">
|
||||
<a class="md-nav__link" href="Code/ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/F1TVEmulator/">
|
||||
<a class="md-nav__link" href="Code/F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/Program/">
|
||||
<a class="md-nav__link" href="Code/Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/Window/">
|
||||
<a class="md-nav__link" href="Code/Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/DriverData/">
|
||||
<a class="md-nav__link" href="Code/DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/Form1/">
|
||||
<a class="md-nav__link" href="Code/Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/Reader/">
|
||||
<a class="md-nav__link" href="Code/Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/Zone/">
|
||||
<a class="md-nav__link" href="Code/Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/DriverNameWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/OcrImage/">
|
||||
<a class="md-nav__link" href="Code/OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/Settings/">
|
||||
<a class="md-nav__link" href="Code/Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="Code/recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="Code/recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -883,14 +913,20 @@
|
||||
<h1 id="rapport-track-trends-v10">Rapport Track Trends V1.0</h1>
|
||||
<hr/>
|
||||
<p>Rohmer Maxime Travail de diplôme Technicien ES 2023</p>
|
||||
<p><a class="glightbox" href="Images/Figma/PosterV7.png"><img alt='"Poster"' src="Images/Figma/PosterV7.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/PosterV7.png"><img alt="" src="./Images/Figma/PosterV7.png"/></a>
|
||||
<figcaption></figcaption>
|
||||
</figure>
|
||||
<h2 id="introduction">Introduction</h2>
|
||||
<hr/>
|
||||
<h3 id="resume">Résumé</h3>
|
||||
<p>Track Trends est un outil de récupération et d'analyse de données de courses de Formule 1.</p>
|
||||
<p>Pour le contexte, en dehors des cours, j'exerce différentes activités dont celle de Live Ticker F1 pour le 20 minutes. Pour m'aider dans ce travail, j'utilise actuellement la F1TV à laquelle je suis abonné qui me propose non seulement un feed vidéo de meilleure qualité avec des commentaires plus pertinents que ceux de la RTS mais qui aussi me permet d'accéder à un feed vidéo très important : la chaine data.</p>
|
||||
<p>Ce dernier ressemble à cela :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ScreenF1TvData.png"><img alt='"Screenshot du feed data de la f1tv"' src="Images/Screens/ScreenF1TvData.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ScreenF1TvData.png"><img alt="" data="" de="" du="" f1tv""="" feed="" la="" screenshot="" src="./Images/Screens/ScreenF1TvData.png"/></a>
|
||||
<figcaption>"Screenshot du feed data de la f1tv"</figcaption>
|
||||
</figure>
|
||||
<p>(Attention ce n'est pas un joli tableau HTML, mais bien une vidéo qui contient un tableau.)</p>
|
||||
<p>Sauf que toutes les informations sont étalées pêle-mêle sans hiérarchie ce qui fait que cela me prendrait trop de temps de tout déchiffrer à chaque fois, ce qui me fait rater des choses intéressantes.</p>
|
||||
<p>Le but du projet est donc de fournir un outil qui hiérarchise et affiche différemment les données pour faciliter leur lecture et me permettre de faire de meilleurs commentaires.</p>
|
||||
@@ -949,7 +985,10 @@ La raison la plus probable étant qu'Amazon avec son service AWS propose exactem
|
||||
<p>Il existe des API "Pirates" faites par la communauté, le problème est qu'elles ne sont pas forcément des plus pratiques à utiliser.</p>
|
||||
<p>Mais comme je possède un abonnement premium ++ à la F1TV, j'ai accès pour chaque grand prix à un flux vidéo nommé : DATA F1 CHANNEL</p>
|
||||
<p>Qui ressemble à ça :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/Formula1DataChannel.png"><img alt='"Data channel exemple"' src="Images/Screens/Formula1DataChannel.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/Formula1DataChannel.png"><img alt="" channel="" data="" exemple""="" src="./Images/Screens/Formula1DataChannel.png"/></a>
|
||||
<figcaption>"Data channel exemple"</figcaption>
|
||||
</figure>
|
||||
<p>Donc la seule façon que je vois de récupérer ces données est de les prendre directement sur ce feed.</p>
|
||||
<p>Même si le but final de l'application est de faire pleins de choses super avec les datas, le gros du projet va surtout être la récupération des données et leur stockage.</p>
|
||||
<p>Les données viennent du flux vidéo et ainsi dans un premier temps, il va falloir récupérer d'une manière ou d'une autre des images qui viennent d'un grand prix en direct ou en rediffusion.</p>
|
||||
@@ -977,7 +1016,10 @@ La raison la plus probable étant qu'Amazon avec son service AWS propose exactem
|
||||
<li>Prédire les temps au tour de chaque pilote selon l'usure des pneus</li>
|
||||
</ul>
|
||||
<p>Voici un exemple d'interface possible pour une page :</p>
|
||||
<p><a class="glightbox" href="Images/Figma/Prototype.png"><img alt='"Proto"' src="Images/Figma/Prototype.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/Prototype.png"><img alt="" proto""="" src="./Images/Figma/Prototype.png"/></a>
|
||||
<figcaption>"Proto"</figcaption>
|
||||
</figure>
|
||||
<h3 id="cas-dutilisation">Cas d'utilisation</h3>
|
||||
<hr/>
|
||||
<p>'*'On va considérer que tous les user ont un abonnement F1 TV PRO</p>
|
||||
@@ -1094,14 +1136,23 @@ La raison la plus probable étant qu'Amazon avec son service AWS propose exactem
|
||||
<p>Voici la première grande étape du projet.</p>
|
||||
<p>Pour rappel, Amazon héberge directement le site de la F1TV et possède les droits sur les données de la F1. C'est sous le nom de AWS (le service d'hébergement d'Amazon) que la firme apparait en tant que sponsor.</p>
|
||||
<p>On peut voir ce nom apparaître assez souvent quand on regarde un Grand Prix car comme ils ont la main-mise sur les données ils peuvent insèrer des bandeaux d'informations sur le flux public sur ce qu'il se passe voir même faire des prédictions (Bien qu'un peu bancales)</p>
|
||||
<p><a class="glightbox" href="Images/Screens/AWSExample1.jpg"><img alt='"AWS example 1"' src="Images/Screens/AWSExample1.jpg"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/AWSExample1.jpg"><img 1""="" alt="" aws="" example="" src="./Images/Screens/AWSExample1.jpg"/></a>
|
||||
<figcaption>"AWS example 1"</figcaption>
|
||||
</figure>
|
||||
<p>Ce service s'appelle F1 Insights (Oui c'est un meilleur nom de projet que F1 Companion mais bon) et c'est, je pense, la raison pour laquelle on ne voit aucune API publique qui permette de correctement se renseigner en donées en direct pendant un Grand Prix. Ils ont du dégotter un juteux contrat pour s'occuper de toute l'infrastructure digitale de la F1 (du moins publique) en échange d'une exclusivité totale sur certaines choses comme les Data</p>
|
||||
<p><a class="glightbox" href="Images/Screens/AWSExample2.jpg"><img alt='"AWS example 2"' src="Images/Screens/AWSExample2.jpg"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/AWSExample2.jpg"><img 2""="" alt="" aws="" example="" src="./Images/Screens/AWSExample2.jpg"/></a>
|
||||
<figcaption>"AWS example 2"</figcaption>
|
||||
</figure>
|
||||
<p>Evidemment je ne fais que conjecturer et ce que j'ai dit n'est pas à prendre au pied de la lettre mais c'est une explication possible je pense de pourquoi il est si difficile de trouver des données sur la F1 facilement en temps réel.</p>
|
||||
<p>Il existe bien quelques API un peu bancales publiques, mais le problème c'est qu'elles ne sont vraiment pas suffisante et je ne peux pas leur faire confiance quand je commente. Ce qu'il m'aurait fallut c'est une API publique et officielle qui me permette d'être sur que les données sont les bonnes et qu'elles arrivent le plus vite possible.</p>
|
||||
<p>On pourrait croire que c'est impossible car cela n'existe pas comme je l'ai dit MAIS ! Ce n'est pas complêtement vrai. En effet depuis que je possède un abonnement à la F1TV, il existe une source d'informations très précieuse qui m'aide énormément dans mon quotidien de commentateur de Formule 1. La "DATA CHANNEL".</p>
|
||||
<p>La Data Channel est une page de la F1TV qui permet, pour chaque Grand Prix, de visualiser, sous la forme d'un flux vidéo, différentes informations capitales sur la course.</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ScreenF1TvData.png"><img alt='"Data channel example"' src="Images/Screens/ScreenF1TvData.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ScreenF1TvData.png"><img alt="" channel="" data="" example""="" src="./Images/Screens/ScreenF1TvData.png"/></a>
|
||||
<figcaption>"Data channel example"</figcaption>
|
||||
</figure>
|
||||
<p>Le problème, c'est que comme je viens de le dire, ces données ne sont pas accessibles comme un tableau HTML ou un flux RSS ou un tableau JSON. C'est un flux vidéo.
|
||||
Il faut savoir qu'entretenir une diffusion de flux vidéo en 1080P pendant deux heures accessible par des milliers d'abonnés est EXTRÊMENT cher surtout quand on le compare à simplement afficher les données dans un tableau. Ce qui veut dire que ce choix est délibéré et a un sens au niveau économique.
|
||||
Je pense donc que c'est justement pour éviter que des petits malins puissent simplement venir scraper l'intégralité des données qu'ils proposent et fasse sa propre API. (C'est d'ailleurs un des sites avec la meilleure protection anti bot du monde)</p>
|
||||
@@ -1129,14 +1180,22 @@ Je pense donc que c'est justement pour éviter que des petits malins puissent si
|
||||
<p>Cette option bien que complexe et difficile à implémenter propose une solution à tous les problême et permet une récupèration quasi sans compromis.</p>
|
||||
<h4 id="simuler-un-navigateur">Simuler un navigateur ?</h4>
|
||||
<p>Simuler un navigateur internet n'est pas forcément très difficile. Chromium par exemple offre une panoplie d'outils natifs et énormément de librairies existent permettant de facilement et en quelques lignes simuler un Google Chrome et le contrôler sans afficher son UI.</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ChromiumLogo.png"><img alt='"Chromium logo"' src="Images/Screens/ChromiumLogo.png" style="height:150px;width:150px"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ChromiumLogo.png"><img alt="" chromium="" logo""="" src="./Images/Screens/ChromiumLogo.png"/></a>
|
||||
<figcaption>"Chromium logo"</figcaption>
|
||||
</figure>
|
||||
<p>{: style="height:150px;width:150px"}</p>
|
||||
<p>Cependant. La F1TV n'utilise pas simplement un player HTML5 basique. Elle utilise un service de streaming BitMovin qui permet de fournir un stream de bonne qualité et surtout qui implémente les DRM (Digital Right Management)</p>
|
||||
<p>Cela veut dire que quand on ouvre un flux de la F1TV sur chrome et que l'on essaie de prendre une capture d'écran, le player se met en noir et ne permet pas de voir quoi que ce soit (Certaines version de Chrome le permettent pendant quelques semaines avant de bloquer à nouveau). Ce qui dans notre cas est un immense problème. Mais Firefox ne nous bloque pas de cette facon et il est donc assez facile de passer outre.</p>
|
||||
<p>L'explication sans trop rentrer dans les détails est la suivante :</p>
|
||||
<p>Dans chrome, le player par défaut utilise une technologie appellée "PCP" ou "Protected Content Playback" qui leur permet de bloquer au moins une partie des techniques de récupèration du flux vidéo et audio.</p>
|
||||
<p>Cependant Firefox de pas sa nature Open Source utilise "OpenH264" pour lire ces mêmes flux soumis à des DRM et OpenH264 n'implémente pas les mêmes restrictions.</p>
|
||||
<p>Sauf que Firefox n'est pas aussi facilement émulé que chrome et cela réduit notre choix de librairies à ... Une seule... Qui est Selenium. (Il existe aussi Pupetteer C# mais j'ai rencontré énormément de soucis avec cette dernière dès que je voulais lancer une vidéo)</p>
|
||||
<p><a class="glightbox" href="Images/Screens/FirefoxLogo.png"><img alt='"Firefox Developper logo"' src="Images/Screens/FirefoxLogo.png" style="height:150px;width:150px"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/FirefoxLogo.png"><img alt="" developper="" firefox="" logo""="" src="./Images/Screens/FirefoxLogo.png"/></a>
|
||||
<figcaption>"Firefox Developper logo"</figcaption>
|
||||
</figure>
|
||||
<p>{: style="height:150px;width:150px"}</p>
|
||||
<p>Mais même si la documentation est plutôt maigre parfois, c'est une bonne librairie qui permet de très bien contrôler une instance de chrome ou de Firefox.</p>
|
||||
<h4 id="controler-le-navigateur">Contrôler le navigateur</h4>
|
||||
<p>Maintenant que l'on sait quel navigateur simuler et avec quelle technologie, on peut passer à la réalisation.</p>
|
||||
@@ -1165,7 +1224,24 @@ Je pense donc que c'est justement pour éviter que des petits malins puissent si
|
||||
<pre><code class="language-Csharp">IWebElement fullScreenButton = Driver.FindElement(By.ClassName("bmpui-ui-fullscreentogglebutton"));
|
||||
fullScreenButton.Click();
|
||||
</code></pre>
|
||||
<p>Ca peut paraître plutôt simple dit comme ca et quand tout fonctionne ca l'est mais la difficulté vient du fait que à peu près nimporte laquelle de ces étapes peut rater et qu'il faut donc faire un bon système de gestion d'erreurs qui puisse aider l'utilisateur en cas de problème.</p>
|
||||
<p>Il faut dire aussi que les sites ne sont pas forcément très content de voir des bots passer car cela peut être un risque de DDOS et de Scraping (Comme moi) et donc ils mettent en place des systèmes pour nous empêcher de faire ce que l'on veut</p>
|
||||
<p>On peut utiliser différntes techniques pour passer outre ces restrictions comme :</p>
|
||||
<ul>
|
||||
<li>Changer son UserAgent</li>
|
||||
<li>Changer sa résolution</li>
|
||||
<li>Ne pas avoir des patterns trop prévisibles</li>
|
||||
<li>Avoir un historique</li>
|
||||
<li>Ne pas cliquer pile sur le milieu des boutons</li>
|
||||
<li>Ne pas cliquer trop vite</li>
|
||||
<li>Passer par un proxy pour ne pas se faire flag</li>
|
||||
<li>Utiliser des librairies plus discrètes</li>
|
||||
</ul>
|
||||
<p>J'ai eu l'occasion de tester toutes ces methodes pour tenter de passer derrière les radars de la F1TV et visiblement j'ai réussi pour les pages principales mais pas pour les pages de Login.</p>
|
||||
<p>Il faut savoir que la bataille entre bots et propriétaires de sites est un grand jeu du chat et de la souris et que les plateformes innovent constamment leur sécurité. Et il se trouve que la partie login de la F1TV est hebergée autre part que le reste du site chez Amazon et que elle possède les meilleures sécurités que j'aie pu voir. Aucunes des methodes que j'ai citées et d'autres encore que j'ai essayé n'ont réussi à fourvoyer le système.</p>
|
||||
<p>J'ai donc été obligé de faire appel à la connexion par Cookies pour pouvoir accèder au reste du site internet.</p>
|
||||
<h4 id="recuperer-les-cookies">Récupèrer les cookies ?</h4>
|
||||
<p>Alors, on va mettre de côté toutes les questions de sécurité et de violation de la vie privée et de protection des données des utilisateurs pour ce chapitre. Car pour faire simple, je siphonne TOUS les cookies de la persone qui utilise mon app.</p>
|
||||
<p>[FINIR CETTE EXPLICATIOn]</p>
|
||||
<h4 id="calibration">Calibration</h4>
|
||||
<p>[AJOUTER EXPLICATION]</p>
|
||||
@@ -1177,10 +1253,16 @@ fullScreenButton.Click();
|
||||
<p>Mais avant ca je dois expliquer certains concepts qui seront importants.</p>
|
||||
<h4 id="fonctionnement-general">Fonctionnement général</h4>
|
||||
<p>Voici un screenshot de la page DATA de la F1TV que le programme va recevoir :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ScreenF1TvData.png"><img alt='"Screen F1TV"' src="Images/Screens/ScreenF1TvData.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ScreenF1TvData.png"><img alt="" f1tv""="" screen="" src="./Images/Screens/ScreenF1TvData.png"/></a>
|
||||
<figcaption>"Screen F1TV"</figcaption>
|
||||
</figure>
|
||||
<p>Si on regarde de loin on peut se dire que la structure est plutôt simple mais c'est loin d'être le cas.
|
||||
On peut y voir au moins 4 zones contenant de l'information dans un format différent.</p>
|
||||
<p><a class="glightbox" href="Images/Figma/WindowZoneExplanation1.png"><img alt='"Main zones"' src="Images/Figma/WindowZoneExplanation1.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/WindowZoneExplanation1.png"><img alt="" main="" src="./Images/Figma/WindowZoneExplanation1.png" zones""=""/></a>
|
||||
<figcaption>"Main zones"</figcaption>
|
||||
</figure>
|
||||
<p>Dans l'exemple ci dessus on peut voir 3 zones mais on aurait également pu comprendre la zone de position des pilotes autour du circuit pour faire 4.</p>
|
||||
<p>Ces 4 zones sont très différentes et contiennent d'autres informations. Pour ce travail de diplôme je ne m'occupe que de la zone principale. Mais je pense que le titre et les infos de circuit ne prendrait pas tant de temps que ca à implémenter.</p>
|
||||
<p>J'ai utilisé le mot "Zone" plus haut et ca n'est pas juste un mot utilisé au hasard. C'est le nom de l'objet que j'utilise pour les représenter dans mon programme. Mais comme c'est important de bien comprendre ce concept avant de continuer je vais vous l'expliquer.</p>
|
||||
@@ -1206,20 +1288,41 @@ On peut y voir au moins 4 zones contenant de l'information dans un format diffé
|
||||
<li>L'objet Window n'est quasi jamais utilisé, c'est presque tout le temps des enfants de Window plus spécifiques qui sont utilisés, le but est que chaque type d'information sur l'image aie son type de window.</li>
|
||||
</ul>
|
||||
<p>Voila donc un petit diagramme qui montre le découpage du programme :</p>
|
||||
<p><a class="glightbox" href="Images/Figma/WindowZoneExplanationDiagram.png"><img alt='"Diagramme zones"' src="Images/Figma/WindowZoneExplanationDiagram.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/WindowZoneExplanationDiagram.png"><img alt="" diagramme="" src="./Images/Figma/WindowZoneExplanationDiagram.png" zones""=""/></a>
|
||||
<figcaption>"Diagramme zones"</figcaption>
|
||||
</figure>
|
||||
<p>Pour visualiser encore un peu mieux comment ce découpage prend forme voici ce que chaque zone et Window contient.</p>
|
||||
<p>Main Zone :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/MainZoneExample.png"><img alt='"Main zone"' src="Images/Screens/MainZoneExample.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/MainZoneExample.png"><img alt="" main="" src="./Images/Screens/MainZoneExample.png" zone""=""/></a>
|
||||
<figcaption>"Main zone"</figcaption>
|
||||
</figure>
|
||||
<p>Driver Zone :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/DriverZoneExample.png"><img alt='"Driver zone"' src="Images/Screens/DriverZoneExample.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/DriverZoneExample.png"><img alt="" driver="" src="./Images/Screens/DriverZoneExample.png" zone""=""/></a>
|
||||
<figcaption>"Driver zone"</figcaption>
|
||||
</figure>
|
||||
<p>Driver Position Window :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/DriverPositionExample.png"><img alt='"Driver position Window"' src="Images/Screens/DriverPositionExample.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/DriverPositionExample.png"><img alt="" driver="" position="" src="./Images/Screens/DriverPositionExample.png" window""=""/></a>
|
||||
<figcaption>"Driver position Window"</figcaption>
|
||||
</figure>
|
||||
<p>Driver name Window :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/DriverNameExample.png"><img alt='"Driver name window"' src="Images/Screens/DriverNameExample.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/DriverNameExample.png"><img alt="" driver="" name="" src="./Images/Screens/DriverNameExample.png" window""=""/></a>
|
||||
<figcaption>"Driver name window"</figcaption>
|
||||
</figure>
|
||||
<p>Driver LapTime Window :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/DriverLapTimeExample.png"><img alt='"Driver Laptime window"' src="Images/Screens/DriverLapTimeExample.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/DriverLapTimeExample.png"><img alt="" driver="" laptime="" src="./Images/Screens/DriverLapTimeExample.png" window""=""/></a>
|
||||
<figcaption>"Driver Laptime window"</figcaption>
|
||||
</figure>
|
||||
<p>Driver Tyre Window :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/DriverTyreWindowExample.png"><img alt='"Driver tyre window"' src="Images/Screens/DriverTyreWindowExample.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/DriverTyreWindowExample.png"><img alt="" driver="" src="./Images/Screens/DriverTyreWindowExample.png" tyre="" window""=""/></a>
|
||||
<figcaption>"Driver tyre window"</figcaption>
|
||||
</figure>
|
||||
<p>Il existe d'autres types de Window mais ce sont les principaux.</p>
|
||||
<p>On se rend assez facilement compte que chacunes de ces windows va avoir besoin d'un traitement spécifique car la manière de reconnaitre le pneu utilisé et le temps au tour ne peut pas être la même.</p>
|
||||
<p>Pour résumer, on a un programme qui prend en entrée un fichier de configuration, qui prend des images de la F1TV et les découpe dans des ZONES qui elles même sont découpées en WINDOWS pour qu'on puisse plus facilement les décoder.</p>
|
||||
@@ -1234,16 +1337,31 @@ On peut y voir au moins 4 zones contenant de l'information dans un format diffé
|
||||
<p>Dans notre cas, le soucis est que les chiffres et lettres sont beaucoup trop petits. Ils ne font parfoisd que 10 pixels de haut et cela fait que il n'est pas forcément facile de toujours les différencier. De plus, comme ils sont petits, les artéfacts d'aliasing sont assez violents et peuvent grandement déformer une lettre ou un chiffre.</p>
|
||||
<p>Exemple :</p>
|
||||
<p>Prenons le chiffre 9. Dans l'image il peut être représenté de cette manière :</p>
|
||||
<p><a class="glightbox" href="Images/Figma/Bad9Example.png"><img alt='"Bad9Exemple"' src="Images/Figma/Bad9Example.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/Bad9Example.png"><img alt="" bad9exemple""="" src="./Images/Figma/Bad9Example.png"/></a>
|
||||
<figcaption>"Bad9Exemple"</figcaption>
|
||||
</figure>
|
||||
<p>On peut voir qu'il est flou, pour nous cela ne pose pas de problème et je pense que à peu près nimporte qui peut dire que c'est un 9.</p>
|
||||
<p>Cependant comme les contours sont flous et même si on essaie de retirer le background :</p>
|
||||
<p><a class="glightbox" href="Images/Figma/Aliased9.png"><img alt='"Aliased 9"' src="Images/Figma/Aliased9.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/Aliased9.png"><img 9""="" aliased="" alt="" src="./Images/Figma/Aliased9.png"/></a>
|
||||
<figcaption>"Aliased 9"</figcaption>
|
||||
</figure>
|
||||
<p>On voit que le 9 n'est pas clairement définit. En effet on pourrait le comprendre comme :</p>
|
||||
<p><a class="glightbox" href="Images/Figma/Horrible9.png"><img alt='"First contour"' src="Images/Figma/Horrible9.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/Horrible9.png"><img alt="" contour""="" first="" src="./Images/Figma/Horrible9.png"/></a>
|
||||
<figcaption>"First contour"</figcaption>
|
||||
</figure>
|
||||
<p>Ou comme :</p>
|
||||
<p><a class="glightbox" href="Images/Figma/Clean9Example.png"><img alt='"Second contour"' src="Images/Figma/Clean9Example.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/Clean9Example.png"><img alt="" contour""="" second="" src="./Images/Figma/Clean9Example.png"/></a>
|
||||
<figcaption>"Second contour"</figcaption>
|
||||
</figure>
|
||||
<p>Voire même simplement comme :</p>
|
||||
<p><a class="glightbox" href="Images/Figma/Filled9.png"><img alt='"Big contour"' src="Images/Figma/Filled9.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/Filled9.png"><img alt="" big="" contour""="" src="./Images/Figma/Filled9.png"/></a>
|
||||
<figcaption>"Big contour"</figcaption>
|
||||
</figure>
|
||||
<p>Et on se rend bien compte que les performances de detection ne sont pas les mêmes dans ces trois cas.</p>
|
||||
<p>Il faut donc faire un certain post traitement des images pour supprimer les éléments parasites, les couleurs, et augmenter la visibilité des contours importants.</p>
|
||||
<p>Mais chaque type de donnée va avoir des methodes de post traitement différents.</p>
|
||||
@@ -1253,17 +1371,32 @@ On peut y voir au moins 4 zones contenant de l'information dans un format diffé
|
||||
<p>C'est je pense la plus simple de toutes car Tesseract est particulièrement bien entrainé pour.</p>
|
||||
<p>Cette reconnaissance concerne donc des lettres qui font des mots ou des noms.</p>
|
||||
<p>Voici un exemple de la WINDOW nom de pilote en entrée :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ExempleTextRaw.png"><img alt='"Exemple raw"' src="Images/Screens/ExempleTextRaw.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ExempleTextRaw.png"><img alt="" exemple="" raw""="" src="./Images/Screens/ExempleTextRaw.png"/></a>
|
||||
<figcaption>"Exemple raw"</figcaption>
|
||||
</figure>
|
||||
<p>Ce texte peut paraitre bon, cependant quand on le lance dans Tesseract, il ne va pas toujours donner un résultat parfait. Il faut aussi savoir qu'il y a des noms pas mal plus pénibles que Tesseract a plus de mal à reconnaitres, soit à cause des lettres utilisées, soit car le nom est un nom d'une autre région et qui ne veut rien dire en anglais ce qui empêche l'utilisation de dictionnaire (Ex : Tsunoda est un nom japonais et parfois il est difficile pour Tesseract de le reconnaitre car si une lettre pose problême il ne peut pas trouver de contexte qui puisse l'aider).</p>
|
||||
<p>Donc pour le rendre plus facilement lisible et augmenter les chances que toutes les lettres soient découvertes, voici les étapes que j'ai mis en place.</p>
|
||||
<p>1 : J'inverse les couleurs. Je me suis rendu compte que il était souvent plus facile de trouver un noir sur blanc que blanc sur noir. Je ne suis pas sur que cette étape soit capitale cependant.</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ExempleTextINvertColor.png"><img alt='"Texte inversé"' src="Images/Screens/ExempleTextINvertColor.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ExempleTextINvertColor.png"><img alt="" inversé""="" src="./Images/Screens/ExempleTextINvertColor.png" texte=""/></a>
|
||||
<figcaption>"Texte inversé"</figcaption>
|
||||
</figure>
|
||||
<p>2 : Je fais un <em>Treshhold</em> de 165 car avec moins le texte parfois prend trop du background et avec plus les lettres sont trop fines.</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ExempleTextTresholding.png"><img alt='"Treshold"' src="Images/Screens/ExempleTextTresholding.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ExempleTextTresholding.png"><img alt="" src="./Images/Screens/ExempleTextTresholding.png" treshold""=""/></a>
|
||||
<figcaption>"Treshold"</figcaption>
|
||||
</figure>
|
||||
<p>3 : Je fais un <em>Resize</em> de l'image pour avoir une meilleure résolution et permettre une meilleure détection. J'augmente la hauteur et la largeur par un facteur 2. J'ai trouvé cette valeur suffisante et aller plus haut consomme beaucoup de ressources.</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ExempleTextResize.png"><img alt='"Resize"' src="Images/Screens/ExempleTextResize.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ExempleTextResize.png"><img alt="" resize""="" src="./Images/Screens/ExempleTextResize.png"/></a>
|
||||
<figcaption>"Resize"</figcaption>
|
||||
</figure>
|
||||
<p>4: Je fais une très rapide <em>Dilatation</em> du texte pour retirer le flou amené par la methode de Resize. Je n'utilise qu'une valeur de 1 car je ne veux pas trop changer comment le texte est modelé je veux juste retirer le flou.</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ExempleTextDilatation.png"><img alt='"Dilatation"' src="Images/Screens/ExempleTextDilatation.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ExempleTextDilatation.png"><img alt="" dilatation""="" src="./Images/Screens/ExempleTextDilatation.png"/></a>
|
||||
<figcaption>"Dilatation"</figcaption>
|
||||
</figure>
|
||||
<p><em>Explication des methodes précises plus bas</em></p>
|
||||
<p>Voila pour ce qui est du post processing. Je ne dis pas que ce sont les meilleurs paramêtres possibles mais dans mes tests ce sont ceux qui ont le mieux marchés.</p>
|
||||
<p>C'est aussi les premières methodes que j'ai pu développer alors forcément elles n'ont pas le niveau de détails de certaines autres.</p>
|
||||
@@ -1290,20 +1423,38 @@ On peut y voir au moins 4 zones contenant de l'information dans un format diffé
|
||||
<p>La grande différence ce sont les ordres de grandeur. Les temps au tour sont en général entre 50 secondes et 2 minutes. Tandis que les secteurs sont entre 20 et 30 secondes alors que le retard sur le leader peut-être de plusieurs minutes.</p>
|
||||
<p>Cependant, tous ces temps possèdent le même type de post-traitement avant d'être envoyés à Tesseract.</p>
|
||||
<p>Voici un exemple de temps au tour avant toute transformation :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ExempleLapTimeBefore.png"><img alt='"Lap time"' src="Images/Screens/ExempleLapTimeBefore.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ExempleLapTimeBefore.png"><img alt="" lap="" src="./Images/Screens/ExempleLapTimeBefore.png" time""=""/></a>
|
||||
<figcaption>"Lap time"</figcaption>
|
||||
</figure>
|
||||
<p>On peut avoir l'impression que ce texte est tout à fait lisible et facile à décoder surtout quand on le voit de loin comme ca. Cependant, il faut imaginer que ces chiffres font 13 pixels de haut en comptant le flou et comme expliqué plus haut ce flou dans ces echelles est terrible.</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ExempleLapTimeBeforeUpscaled.png"><img alt='"Lap time"' src="Images/Screens/ExempleLapTimeBeforeUpscaled.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ExempleLapTimeBeforeUpscaled.png"><img alt="" lap="" src="./Images/Screens/ExempleLapTimeBeforeUpscaled.png" time""=""/></a>
|
||||
<figcaption>"Lap time"</figcaption>
|
||||
</figure>
|
||||
<p>Si on donne cette image à Tesseract, les '3' deviennent des '9', des '9' deviennent des '8', des '2' deviennent eux aussi des '9', le tout parfois inversement et de manière complêtement imprévisible. Ca n'est simplement pas utilisable.</p>
|
||||
<p>Cette partie est un peu plus complexe car si la detection n'est pas fiable les chiffres sont simplement inutilisables. Si à tout moment un temps au tour de 1:39.106 devient 1:32.108 c'est juste pas possible.</p>
|
||||
<p>Voici donc les étapes de post-traitement que j'ai mis en place pour leur détection :</p>
|
||||
<p>1: J'applique un <em>Treshold</em> de 185 pour enlever les ambiguités d'alisaising et avoir une image en noir et blanc claire. La valeur de 185 est assez élevée car le but est de vraiment garder uniquement les contours. Comme les chiffres se ressemlent beaucoup plu que les lettres, il faut tenter le plus possible de conserver leur formes spécifiques. Je me suis rendu compte que cette valeur était une de celles qui marchent le mieux.</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ExempleLapTimeTreshold.png"><img alt='"Treshold"' src="Images/Screens/ExempleLapTimeTreshold.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ExempleLapTimeTreshold.png"><img alt="" src="./Images/Screens/ExempleLapTimeTreshold.png" treshold""=""/></a>
|
||||
<figcaption>"Treshold"</figcaption>
|
||||
</figure>
|
||||
<p>2: J'applique un <em>Resize</em> de 2 pour augmenter la résolution des chiffres et permettre une meilleure détection. Le but est d'avoir plus de pixels et donc de permettre à Tesseract de mieux utiliser ses matrices de convolution.</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ExempleLapTimeResize.png"><img alt='"Resize"' src="Images/Screens/ExempleLapTimeResize.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ExempleLapTimeResize.png"><img alt="" resize""="" src="./Images/Screens/ExempleLapTimeResize.png"/></a>
|
||||
<figcaption>"Resize"</figcaption>
|
||||
</figure>
|
||||
<p>3: Comme le <em>Resize</em> amène du flou, j'utilise une methode de Dilatation<em> qui me permet de retirer ce flou et de remplir un peu plus certaines parties qui ont été un peu laissée par le </em>Resize*;</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ExempleLapTimeDilatation.png"><img alt='"Dilatation"' src="Images/Screens/ExempleLapTimeDilatation.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ExempleLapTimeDilatation.png"><img alt="" dilatation""="" src="./Images/Screens/ExempleLapTimeDilatation.png"/></a>
|
||||
<figcaption>"Dilatation"</figcaption>
|
||||
</figure>
|
||||
<p>4: Contrairement aux mots plus haut, la rondeur ajoutée par la dilatation n'est pas vraiment désirée. En effet, elle peut rendre confuse certains chiffres et empêcher Tesseract de bien trouver le chiffre. Alors j'applique une <em>Erosion</em> qui me permet de contrecarrer en partie les rondeurs ajoutées par la dilatation et retrouver des chiffres bien formées. Pour l'<em>Erosion</em> et la <em>Dilatation</em> j'ai utilisé une valeur de 1 car je ne voulais pas trop changer les chiffres.</p>
|
||||
<p><a class="glightbox" href="Images/Screens/ExempleLapTimeErode.png"><img alt='"Erode"' src="Images/Screens/ExempleLapTimeErode.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ExempleLapTimeErode.png"><img alt="" erode""="" src="./Images/Screens/ExempleLapTimeErode.png"/></a>
|
||||
<figcaption>"Erode"</figcaption>
|
||||
</figure>
|
||||
<p><em>Explication des methodes précises plus bas</em></p>
|
||||
<p>Et avec ce post processing on retrouve de plutôts bon résultats qui demandent peu de traitement.</p>
|
||||
<p>Le traitement dépend du type de WINDOW cependant.</p>
|
||||
@@ -1333,18 +1484,33 @@ On peut y voir au moins 4 zones contenant de l'information dans un format diffé
|
||||
<li>Les pneus intermédiaires</li>
|
||||
<li>Les pneus pluie</li>
|
||||
</ul>
|
||||
<p><a class="glightbox" href="Images/Photos/Tyres.png"><img alt='"Tyres"' src="Images/Photos/Tyres.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/Tyres.png"><img alt="" src="./Images/Photos/Tyres.png" tyres""=""/></a>
|
||||
<figcaption>"Tyres"</figcaption>
|
||||
</figure>
|
||||
<p>Les trois premiers pneus sont des pneus faits pour piste sèche, le pneu intermédiaire pour piste humide et le neu pluie pour la pluie.</p>
|
||||
<p>Chaque pneu a sa durée de vie et son niveau de performance propre mais je ne vais pas rentrer dans le détail ici. Tout ce qu'il faut savoir ce que savoir sur quel pneu chaque pilote est et depuis combien de temps il les chausse est une information très importante.</p>
|
||||
<p>Chaque pneu a une couleur donnée qui permet de les différencier.</p>
|
||||
<p>Voici un exemple de ce à quoi une WINDOW de pneus peut ressembler :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/TyreZoneExemple3.png"><img alt='"Exemple 1"' src="Images/Screens/TyreZoneExemple3.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreZoneExemple3.png"><img 1""="" alt="" exemple="" src="./Images/Screens/TyreZoneExemple3.png"/></a>
|
||||
<figcaption>"Exemple 1"</figcaption>
|
||||
</figure>
|
||||
<p>Mais cette zone peut aussi ressembler à ca :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/TyreZoneExemple2.png"><img alt='"Exemple 2"' src="Images/Screens/TyreZoneExemple2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreZoneExemple2.png"><img 2""="" alt="" exemple="" src="./Images/Screens/TyreZoneExemple2.png"/></a>
|
||||
<figcaption>"Exemple 2"</figcaption>
|
||||
</figure>
|
||||
<p>Mais aussi à ca :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/TyreZoneExemple1.png"><img alt='"Exemple 3"' src="Images/Screens/TyreZoneExemple1.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreZoneExemple1.png"><img 3""="" alt="" exemple="" src="./Images/Screens/TyreZoneExemple1.png"/></a>
|
||||
<figcaption>"Exemple 3"</figcaption>
|
||||
</figure>
|
||||
<p>Voire même ca :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/TyreZoneExemple4.png"><img alt='"Exemple 4"' src="Images/Screens/TyreZoneExemple4.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreZoneExemple4.png"><img 4""="" alt="" exemple="" src="./Images/Screens/TyreZoneExemple4.png"/></a>
|
||||
<figcaption>"Exemple 4"</figcaption>
|
||||
</figure>
|
||||
<p>Je pense que vous pouvez tout de suite comprendre la difficulté que représente la tâche de récupèration de données à partir de cette image.</p>
|
||||
<p>En gros le fonctionnement de cette zone d'information est assez simple.</p>
|
||||
<ul>
|
||||
@@ -1359,28 +1525,55 @@ On peut y voir au moins 4 zones contenant de l'information dans un format diffé
|
||||
<p>Le programme va tirer un trait depuis le bord droit de la zone, et il va avancer vers la gauche jusqu'à trouver un obstacle. Je détecte un obstacle si le pixel sur lequel est mon trait possède une valeur de plus de 0x50 dans le channel R,G ou B. J'ai trouvé en faisant des tests que les couleurs de background de la F1TV ne dépassaient jamais ces valeurs.</p>
|
||||
<p>Ensuite après avoir trouvé le premier obstacle, je récupère une zone qui doit englober le cercle.</p>
|
||||
<p>Voici un exemple avec cette image en entrée :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/TyreZoneFull.png"><img alt='"Full zone"' src="Images/Screens/TyreZoneFull.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreZoneFull.png"><img alt="" full="" src="./Images/Screens/TyreZoneFull.png" zone""=""/></a>
|
||||
<figcaption>"Full zone"</figcaption>
|
||||
</figure>
|
||||
<p>Elle est automatiquement coupée de cette facon :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/TyreZoneCropped.png"><img alt='"Cropped zone"' src="Images/Screens/TyreZoneCropped.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreZoneCropped.png"><img alt="" cropped="" src="./Images/Screens/TyreZoneCropped.png" zone""=""/></a>
|
||||
<figcaption>"Cropped zone"</figcaption>
|
||||
</figure>
|
||||
<p>Cela me permet d'isoler uniquement ce qui m'intéresse ce qui est très pratique pour Tesseract et pour la detection de couleur.</p>
|
||||
<p>Ensuite avec cette image je peux commencer le processus de reconnaissance.</p>
|
||||
<p>Je commence par faire une moyenne de tous les pixels de l'image en excluant les pixels trop sombres qui font sûrement partie du background ou du chiffre.</p>
|
||||
<p>Ensuite j'utilise une methode qui calcule la différence entre la couleur obbtenue et la liste de couleurs possible.</p>
|
||||
<p>Il y a cinq couleurs des pneus possibles :</p>
|
||||
<p>"#ff0000" pneu tendre/soft</p>
|
||||
<p><a class="glightbox" href="Images/Photos/SoftTyreColor.png"><img alt='"Soft tyre color"' src="Images/Photos/SoftTyreColor.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/SoftTyreColor.png"><img alt="" color""="" soft="" src="./Images/Photos/SoftTyreColor.png" tyre=""/></a>
|
||||
<figcaption>"Soft tyre color"</figcaption>
|
||||
</figure>
|
||||
<p>"#f5bf00" pneu medium</p>
|
||||
<p><a class="glightbox" href="Images/Photos/MediumTyreColor.png"><img alt='"medium tyre color"' src="Images/Photos/MediumTyreColor.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/MediumTyreColor.png"><img alt="" color""="" medium="" src="./Images/Photos/MediumTyreColor.png" tyre=""/></a>
|
||||
<figcaption>"medium tyre color"</figcaption>
|
||||
</figure>
|
||||
<p>"#a4a5a8" pneu dur/hard</p>
|
||||
<p><a class="glightbox" href="Images/Photos/HardTyreColor.png"><img alt='"Hard tyre color"' src="Images/Photos/HardTyreColor.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/HardTyreColor.png"><img alt="" color""="" hard="" src="./Images/Photos/HardTyreColor.png" tyre=""/></a>
|
||||
<figcaption>"Hard tyre color"</figcaption>
|
||||
</figure>
|
||||
<p>"#00a42e" pneu inter</p>
|
||||
<p><a class="glightbox" href="Images/Photos/IntermediateTyreColor.png"><img alt='"Inter tyre color"' src="Images/Photos/IntermediateTyreColor.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/IntermediateTyreColor.png"><img alt="" color""="" inter="" src="./Images/Photos/IntermediateTyreColor.png" tyre=""/></a>
|
||||
<figcaption>"Inter tyre color"</figcaption>
|
||||
</figure>
|
||||
<p>"#2760a6" pneu pluie/wet</p>
|
||||
<p><a class="glightbox" href="Images/Photos/WetTyreColor.png"><img alt='"Wet tyre color"' src="Images/Photos/WetTyreColor.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/WetTyreColor.png"><img alt="" color""="" src="./Images/Photos/WetTyreColor.png" tyre="" wet=""/></a>
|
||||
<figcaption>"Wet tyre color"</figcaption>
|
||||
</figure>
|
||||
<p>Ce qui est pratique c'est que même dans les cas ou il n'y a pas beaucoup de couleur comme celui la :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/TyreZoneHard.png"><img alt='"Hard tyre but only the letter"' src="Images/Screens/TyreZoneHard.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreZoneHard.png"><img alt="" but="" hard="" letter""="" only="" src="./Images/Screens/TyreZoneHard.png" the="" tyre=""/></a>
|
||||
<figcaption>"Hard tyre but only the letter"</figcaption>
|
||||
</figure>
|
||||
<p>On arrive à une couleur moyenne de :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/TyreZoneHardAVG.png"><img alt='"The average color from the picture above"' src="Images/Screens/TyreZoneHardAVG.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreZoneHardAVG.png"><img above""="" alt="" average="" color="" from="" picture="" src="./Images/Screens/TyreZoneHardAVG.png" the=""/></a>
|
||||
<figcaption>"The average color from the picture above"</figcaption>
|
||||
</figure>
|
||||
<p>Et il est donc assez facile de determiner le type de pneu en question.</p>
|
||||
<p>Attention, les résultats peuvent être très vite dérangés par la couleur du pneu précédent si le découpage de la fenêtre n'a pas été assez précis.</p>
|
||||
<p>Ensuite il "suffit" de lire le chiffre dans le rond et si on arrive pas à le lire alors c'est que c'est une lettre et on sait que le nombre de tours est donc de 0.</p>
|
||||
@@ -1388,15 +1581,27 @@ On peut y voir au moins 4 zones contenant de l'information dans un format diffé
|
||||
<p>Vous saurez que Tesseract en plus de detester les grandes images et les images avec des couleurs, deteste également les formes dans une image. Donc dans notre cas, le round de couleur autour du chiffre, même si il n'est pas complet, il interfère avec la reconnaissance et empêche de bien lire le chiffre.</p>
|
||||
<p>Il faut donc retirer le background et ensuite la couleur. Sauf que comme le chiffre est de la couleur du background, si on retire le background et ensuite la couleur il ne reste plus rien. Il faut donc retirer le background AUTOUR du rond, et ensuite si on retire la couleur il devrait rester le chiffre sur fond blanc.</p>
|
||||
<p>Pour se faire, j'ai tiré des traits depuis les bords de l'image jusqu'à ce qu'ils rencontrent le rond. Ensuite je retire tous les pixels entre le rond et les bords de l'image ce qui nous donne ceci :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/TyreZoneCropedWithoutBackGround.png"><img alt='"No outer background"' src="Images/Screens/TyreZoneCropedWithoutBackGround.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreZoneCropedWithoutBackGround.png"><img alt="" background""="" no="" outer="" src="./Images/Screens/TyreZoneCropedWithoutBackGround.png"/></a>
|
||||
<figcaption>"No outer background"</figcaption>
|
||||
</figure>
|
||||
<p>Ensuite on peu retirer les pixels qui ont une valeur dans un channel RGB plus haute qu'un certain seuil :</p>
|
||||
<p><a class="glightbox" href="Images/Screens/TyreZoneFilter1.png"><img alt='"Only digit"' src="Images/Screens/TyreZoneFilter1.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreZoneFilter1.png"><img alt="" digit""="" only="" src="./Images/Screens/TyreZoneFilter1.png"/></a>
|
||||
<figcaption>"Only digit"</figcaption>
|
||||
</figure>
|
||||
<p>Et la on a ce que l'on veut !</p>
|
||||
<p>A partir de la c'est les filtres que l'on connait qui sont utilisés pour en faire une image plus facile à utiliser par Tesseract.</p>
|
||||
<p>1 : On effectue un <em>Resize</em> de facteur 4 (oui c'est beaucoup mais en même temps le chiffre est vraiment petit à la base) qui permet d'avoir une image d'une bien meilleure résolution.</p>
|
||||
<p><a class="glightbox" href="Images/Screens/TyreZoneFilter2.png"><img alt='"Filter 1"' src="Images/Screens/TyreZoneFilter2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreZoneFilter2.png"><img 1""="" alt="" filter="" src="./Images/Screens/TyreZoneFilter2.png"/></a>
|
||||
<figcaption>"Filter 1"</figcaption>
|
||||
</figure>
|
||||
<p>2: On fait une <em>Dilatation</em> de facteur 1 pour retirer tout le flou de l'image pour aider Tesseract</p>
|
||||
<p><a class="glightbox" href="Images/Screens/TyreZoneAfter.png"><img alt='"Result"' src="Images/Screens/TyreZoneAfter.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreZoneAfter.png"><img alt="" result""="" src="./Images/Screens/TyreZoneAfter.png"/></a>
|
||||
<figcaption>"Result"</figcaption>
|
||||
</figure>
|
||||
<p>Et on a un chiffre qui est utilisable par Tesseract !</p>
|
||||
<p><em>Explication des methodes précises plus bas</em></p>
|
||||
<p>Pour résumer :</p>
|
||||
@@ -1419,7 +1624,10 @@ Voici un sommaire des methodes utilisées et comment elles fonctionnent.</p>
|
||||
<p>Cette methode sert à passer d'une image en couleurs à une image binaire noir blanc.
|
||||
C'est une étape très importante pour l'OCR car elle permet (si bien faite) d'isoler du texte de son background.</p>
|
||||
<p>Un exemple ici :</p>
|
||||
<p><a class="glightbox" href="Images/Photos/TresholdExemple1.webp"><img alt='"Exemple treshold"' src="Images/Photos/TresholdExemple1.webp"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/TresholdExemple1.webp"><img alt="" exemple="" src="./Images/Photos/TresholdExemple1.webp" treshold""=""/></a>
|
||||
<figcaption>"Exemple treshold"</figcaption>
|
||||
</figure>
|
||||
<p>Le fonctionnement est assez simple mais il peut être fait de différentes manières mais dans mon cas voici comment l'algorythme fonctionne sachant qu'il demande en entrée la Bitmap que l'on veut modifier ainsi que la valeur de Treshold :</p>
|
||||
<ol>
|
||||
<li>On parcours chaque pixel de l'image</li>
|
||||
@@ -1431,13 +1639,25 @@ C'est une étape très importante pour l'OCR car elle permet (si bien faite) d'i
|
||||
<p><em>Resize</em></p>
|
||||
<p>Cette methode sert à augmenter la résolution d'une image pour améliorer la précision de l'algorythme de Tesseract. En effet, avec trop peu de pixels, la matrice de convolution n'est pas toujours aussi efficace.</p>
|
||||
<p>Il ne faut pas confondre cette methode d'augmentation de la taille avec une simple interpolation. En effet une augmentation de taille interpolée ne vas pas vraiment changer la résolution, l'image sera toujours aussi pixelisée, seulement, les pixels seront composées de plus de pixels comme dans l'exemple ci dessous :</p>
|
||||
<p><a class="glightbox" href="Images/Photos/InterpolationExemple.png"><img alt='"Interpolation exemple"' src="Images/Photos/InterpolationExemple.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/InterpolationExemple.png"><img alt="" exemple""="" interpolation="" src="./Images/Photos/InterpolationExemple.png"/></a>
|
||||
<figcaption>"Interpolation exemple"</figcaption>
|
||||
</figure>
|
||||
<p>Dans mon projet j'utilise de l'interpolation bicubique qui va créer de l'information pour tenter de combler le vide et produire une image réellement plus grande et avec plus de details mais en ajoutant du flou.</p>
|
||||
<p><a class="glightbox" href="Images/Photos/BicubicExample.png"><img alt='"bicubic exemple"' src="Images/Photos/BicubicExample.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/BicubicExample.png"><img alt="" bicubic="" exemple""="" src="./Images/Photos/BicubicExample.png"/></a>
|
||||
<figcaption>"bicubic exemple"</figcaption>
|
||||
</figure>
|
||||
<p>Le but est d'aller chercher dans les pixels alentours les couleurs qui sont déja présente et de jouer avec des poids pour tenter de faire une prédiction de ce que ce pixel aurait été si l'image avait plus de detail.</p>
|
||||
<p>Voici un exemple assez parlant :</p>
|
||||
<p><a class="glightbox" href="Images/Photos/BicubicExample1.webp"><img alt='"bicubic demonstration"' src="Images/Photos/BicubicExample1.webp"/></a></p>
|
||||
<p><a class="glightbox" href="Images/Photos/BicubicExample2.webp"><img alt='"bicubic demonstration"' src="Images/Photos/BicubicExample2.webp"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/BicubicExample1.webp"><img alt="" bicubic="" demonstration""="" src="./Images/Photos/BicubicExample1.webp"/></a>
|
||||
<figcaption>"bicubic demonstration"</figcaption>
|
||||
</figure>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/BicubicExample2.webp"><img alt="" bicubic="" demonstration""="" src="./Images/Photos/BicubicExample2.webp"/></a>
|
||||
<figcaption>"bicubic demonstration"</figcaption>
|
||||
</figure>
|
||||
<p>On pourrait croire que c'est inutile mais dans le contexte de Tesseract ajouter des détails pour tenter de simuler une meilleure résolution même en créant du flou est intéressant pour mieux remplir la matrice de convolution.</p>
|
||||
<p>Mais il est possible de réduire ce flou avec d'autres méthodes également.</p>
|
||||
<p>(Dans mon code je n'ai pas utilisé du code fait main mais j'utilise une librairie qui me permet de le faire)</p>
|
||||
@@ -1472,7 +1692,7 @@ C'est une étape très importante pour l'OCR car elle permet (si bien faite) d'i
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Next: Cahier des charges" class="md-footer__link md-footer__link--next" href="CahierDesCharges/" rel="next">
|
||||
<a aria-label="Next: Cahier des charges" class="md-footer__link md-footer__link--next" href="CahierDesCharges.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||
<meta content="Rohmer Maxime" name="author"/>
|
||||
<link href="../assets/images/favicon.png" rel="icon"/>
|
||||
<link href="assets/images/favicon.png" rel="icon"/>
|
||||
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
|
||||
<title>Journal de bord - Documentation Track Trends</title>
|
||||
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link href="assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
|
||||
<link href="assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
|
||||
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" rel="stylesheet"/>
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
|
||||
<script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
<link href="assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="assets/javascripts/glightbox.min.js"></script></head>
|
||||
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
|
||||
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
|
||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav aria-label="Header" class="md-header__inner md-grid">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href=".." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
@@ -56,6 +56,36 @@
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
||||
</form>
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
|
||||
<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>
|
||||
</label>
|
||||
<nav aria-label="Search" class="md-search__options">
|
||||
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
|
||||
</button>
|
||||
</nav>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix="">
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
Initializing search
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="md-container" data-md-component="container">
|
||||
@@ -66,19 +96,19 @@
|
||||
<div class="md-sidebar__inner">
|
||||
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href=".." title="Documentation Track Trends">
|
||||
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="index.html" title="Documentation Track Trends">
|
||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
|
||||
</a>
|
||||
Documentation Track Trends
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="..">
|
||||
<a class="md-nav__link" href="index.html">
|
||||
Rapport Track Trends V1.0
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../CahierDesCharges/">
|
||||
<a class="md-nav__link" href="CahierDesCharges.html">
|
||||
Cahier des charges
|
||||
</a>
|
||||
</li>
|
||||
@@ -88,7 +118,7 @@
|
||||
Journal de bord
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
<a class="md-nav__link md-nav__link--active" href="./">
|
||||
<a class="md-nav__link md-nav__link--active" href="jdb.html">
|
||||
Journal de bord
|
||||
</a>
|
||||
<nav aria-label="Table of contents" class="md-nav md-nav--secondary">
|
||||
@@ -213,92 +243,92 @@
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix="">
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/ConfigurationTool/">
|
||||
<a class="md-nav__link" href="Code/ConfigurationTool.html">
|
||||
ConfigurationTool.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverGapToLeaderWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverGapToLeaderWindow.html">
|
||||
DriverGapToLeaderWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverPositionWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverPositionWindow.html">
|
||||
DriverPositionWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/F1TVEmulator/">
|
||||
<a class="md-nav__link" href="Code/F1TVEmulator.html">
|
||||
F1TVEmulator.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/Program/">
|
||||
<a class="md-nav__link" href="Code/Program.html">
|
||||
Program.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/Window/">
|
||||
<a class="md-nav__link" href="Code/Window.html">
|
||||
Window.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverData/">
|
||||
<a class="md-nav__link" href="Code/DriverData.html">
|
||||
DriverData.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverLapTimeWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverLapTimeWindow.html">
|
||||
DriverLapTimeWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverSectorWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverSectorWindow.html">
|
||||
DriverSectorWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/Form1/">
|
||||
<a class="md-nav__link" href="Code/Form1.html">
|
||||
Form1.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/Reader/">
|
||||
<a class="md-nav__link" href="Code/Reader.html">
|
||||
Reader.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/Zone/">
|
||||
<a class="md-nav__link" href="Code/Zone.html">
|
||||
Zone.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverDrsWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverDrsWindow.html">
|
||||
DriverDrsWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverNameWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverNameWindow.html">
|
||||
DriverNameWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/DriverTyresWindow/">
|
||||
<a class="md-nav__link" href="Code/DriverTyresWindow.html">
|
||||
DriverTyresWindow.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/OcrImage/">
|
||||
<a class="md-nav__link" href="Code/OcrImage.html">
|
||||
OcrImage.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/Settings/">
|
||||
<a class="md-nav__link" href="Code/Settings.html">
|
||||
Settings.cs
|
||||
</a>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<a class="md-nav__link" href="../Code/recoverCookiesCSV/">
|
||||
<a class="md-nav__link" href="Code/recoverCookiesCSV.html">
|
||||
recoverCookiesCSV.py
|
||||
</a>
|
||||
</li>
|
||||
@@ -458,7 +488,10 @@ plugins:
|
||||
- with-pdf
|
||||
</code></pre>
|
||||
<p>Voici un example de à quoi ca ressemble en forme de site</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/MkdocsExample.png"><img alt='"Exemple mkdocs"' src="../Images/Screens/MkdocsExample.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/MkdocsExample.png"><img alt="" exemple="" mkdocs""="" src="./Images/Screens/MkdocsExample.png"/></a>
|
||||
<figcaption>"Exemple mkdocs"</figcaption>
|
||||
</figure>
|
||||
<p>Ensuite il m'a fallu faire une version plus à jour de mon cahier des charges car je n'y avait pas touché depuis novembre. J'ai envoyé un mail à mes enseignants pour qu'ils puissent y jeter un oeuil pour être sûr que je n'ai rien changé qui les dérangent.</p>
|
||||
<p>Monsieur Jayr m'a demadé à l'occasion de lui faire un planning type Gantt alors je me suis mis à la tâche.</p>
|
||||
<p>J'ai fait un planning prévisionnel et une légende les deux sont dispo dans le dossier planning de ce repertoire.</p>
|
||||
@@ -471,8 +504,14 @@ plugins:
|
||||
<p>Ensuite je vais m'attaquer au squelette de la docmentation. Je vais essayer de remplir tout ce que je peux remplir dans un premier temps car cela tout ca de fait pour plus tard quitte à modifier quelques aspects au fur et à mesure.</p>
|
||||
<p>J'ai aussi désactivé mkdocs with pdf par ce que les résultats ne sont vraiment pas ceux que j'attends et cela ralentis énormément le déploiment.</p>
|
||||
<p>J'ai aussi rassemblé mes croquis pour le poster :</p>
|
||||
<p><a class="glightbox" href="./Images/Photos/photosCroquisPoster1jpg"><img alt='"Croquis Poster 1"' src="./Images/Photos/photosCroquisPoster1jpg"/></a>
|
||||
<a class="glightbox" href="./Images/Photos/photosCroquisPoster2jpg"><img alt='"Croquis Poster 2"' src="./Images/Photos/photosCroquisPoster2jpg"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/photosCroquisPoster1jpg"><img 1""="" alt="" croquis="" poster="" src="./Images/Photos/photosCroquisPoster1jpg"/></a>
|
||||
<figcaption>"Croquis Poster 1"</figcaption>
|
||||
</figure>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Photos/photosCroquisPoster2jpg"><img 2""="" alt="" croquis="" poster="" src="./Images/Photos/photosCroquisPoster2jpg"/></a>
|
||||
<figcaption>"Croquis Poster 2"</figcaption>
|
||||
</figure>
|
||||
<p>On peut voir que dans un premier temps j'ai tenté de faire un poster un peu plus stylisé et marketing. Cependant après avoir discuté avec Mr Garcia et différents profs dont un de l'HEPIA et ils m'ont indiqué que ce qui était attendu était moins du marketing qu'un diagramme de fonctionnement.</p>
|
||||
<p>On peut voir sur les derniers posters que le coté technique ressort de plus en plus. Le but sera de faire une version encore plus technique ou on peut voir les différents fonctionnements de l'application avec les technologies utilisées.</p>
|
||||
<p>Le défi cela va être de faire un joli poster qui soit en même temps vendeur et en même temps rempli techniquement.</p>
|
||||
@@ -488,11 +527,20 @@ Doc : https://ironsoftware.com/csharp/ocr/docs/
|
||||
Examples : https://ironsoftware.com/csharp/ocr/examples/simple-csharp-ocr-tesseract/</p>
|
||||
<p>Avant d'utiliser la librairie je me demande si je dois utiliser un peu de post processing pour aider à la reconnaissance.</p>
|
||||
<p>Je peux soit utiliser l'image cropée directement :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/BlackToWhite0.png"><img alt='"Image non traitée"' src="../Images/Screens/BlackToWhite0.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/BlackToWhite0.png"><img alt="" image="" non="" src="./Images/Screens/BlackToWhite0.png" traitée""=""/></a>
|
||||
<figcaption>"Image non traitée"</figcaption>
|
||||
</figure>
|
||||
<p>Soit avec un filtre pour passer en noir et blanc laxiste</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/BlackToWhite1.png"><img alt='"Image traitée laxiste"' src="../Images/Screens/BlackToWhite1.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/BlackToWhite1.png"><img alt="" image="" laxiste""="" src="./Images/Screens/BlackToWhite1.png" traitée=""/></a>
|
||||
<figcaption>"Image traitée laxiste"</figcaption>
|
||||
</figure>
|
||||
<p>Soit avec un filtre pour passer en noir et blanc stricte</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/BlackToWhite2.png"><img alt='"Image traitée stricte"' src="../Images/Screens/BlackToWhite2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/BlackToWhite2.png"><img alt="" image="" src="./Images/Screens/BlackToWhite2.png" stricte""="" traitée=""/></a>
|
||||
<figcaption>"Image traitée stricte"</figcaption>
|
||||
</figure>
|
||||
<p>Il va falloir faire des tests avec tous les noms et les chiffres pour trouver le plus efficace.</p>
|
||||
<p>Bon malheureusment Iron OCR semblait être une bonne alternative mais c'est une librairie privée qui demande une license pour être utilisée. Il va falloir trouver autre chose.</p>
|
||||
<p>En utilisant la librairie "Tesseract" qui existe on peut faire de la reconnaissance de texte avec un code plutôt simple :</p>
|
||||
@@ -540,22 +588,40 @@ https://stackoverflow.com/questions/7350679/convert-a-bitmap-into-a-byte-array</
|
||||
</code></pre>
|
||||
<p>Etonnament, avec plus de texte, des noms qui étaient autrefois mal reconnus sont parfaitement interprêtés.</p>
|
||||
<p>Par exemple voici un exemple de reconnaisance de texte sur tous les pilotes :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TextRecognition1.png"><img alt=""Screenshot de reconnaisance d'image complete"" src="../Images/Screens/TextRecognition1.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TextRecognition1.png"><img alt="" complete""="" d'image="" de="" reconnaisance="" screenshot="" src="./Images/Screens/TextRecognition1.png"/></a>
|
||||
<figcaption>"Screenshot de reconnaisance d'image complete"</figcaption>
|
||||
</figure>
|
||||
<p>On voit que le nom Leclerc est mal reconnu. Mais voici ce que cela donne quand on prend une image qui ne contient que le nom Leclerc :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TextRecognition0.png"><img alt=""Screenshot de reconnaissance d'image cropée"" src="../Images/Screens/TextRecognition0.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TextRecognition0.png"><img alt="" cropée""="" d'image="" de="" reconnaissance="" screenshot="" src="./Images/Screens/TextRecognition0.png"/></a>
|
||||
<figcaption>"Screenshot de reconnaissance d'image cropée"</figcaption>
|
||||
</figure>
|
||||
<p>On voit ici que le nom Leclerc est très bien reconnu.</p>
|
||||
<p>Dans le premier exemple on peut voir que Tsunoda est reconnu comme "Reticin" ce qui n'est pas exactement pareil (lol)</p>
|
||||
<p>Et quand on isole le nom Tsunoda dans une image seule :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TextRecognition2.png"><img alt='"Screenshot de reconnaissance de Tsunoda"' src="../Images/Screens/TextRecognition2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TextRecognition2.png"><img alt="" de="" reconnaissance="" screenshot="" src="./Images/Screens/TextRecognition2.png" tsunoda""=""/></a>
|
||||
<figcaption>"Screenshot de reconnaissance de Tsunoda"</figcaption>
|
||||
</figure>
|
||||
<p>Il le lit "RETLELYY" ce qui n'est toujours pas exactement ca...</p>
|
||||
<p>Une meilleure résolution pourrait peut-être résoudre le problème en partie.</p>
|
||||
<p>Jusqu'ici les images étaient en presque 720P ce qui donne ceci :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/720PTsunoda.png"><img alt='"Tsunoda en 720P"' src="../Images/Screens/720PTsunoda.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/720PTsunoda.png"><img 720p""="" alt="" en="" src="./Images/Screens/720PTsunoda.png" tsunoda=""/></a>
|
||||
<figcaption>"Tsunoda en 720P"</figcaption>
|
||||
</figure>
|
||||
<p>Et j'ai lancé une récupèration d'images en 1080p pour récupèrer ceci :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/1080PTsunoda.png"><img alt='"Tsunoda en 1080P"' src="../Images/Screens/1080PTsunoda.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/1080PTsunoda.png"><img 1080p""="" alt="" en="" src="./Images/Screens/1080PTsunoda.png" tsunoda=""/></a>
|
||||
<figcaption>"Tsunoda en 1080P"</figcaption>
|
||||
</figure>
|
||||
<p>On peut voir une certaine différence tout de même.</p>
|
||||
<p>Et quand on lance la reconnaissance :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TextRecognition3.png"><img alt='"Reconnaissance Tsunoda en 1080P"' src="../Images/Screens/TextRecognition3.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TextRecognition3.png"><img 1080p""="" alt="" en="" reconnaissance="" src="./Images/Screens/TextRecognition3.png" tsunoda=""/></a>
|
||||
<figcaption>"Reconnaissance Tsunoda en 1080P"</figcaption>
|
||||
</figure>
|
||||
<p>"Tsunoda n'est plus écrit "RETLELYY" mais "TSUNDDA" ce qui n'est pas parfait mais qui est déja beaucoup mieux.</p>
|
||||
<p>J'ai essayé de mettre l'engine de Tesseract en mode "JPN" comme Tsunoda est un nom japonais mais sans succès j'ai le même résultat.</p>
|
||||
<p>Comme la résolution est meilleure je me suis dit que peut être le filtre de passage en noir et blanc pourrait aider.</p>
|
||||
@@ -587,13 +653,22 @@ https://stackoverflow.com/questions/7350679/convert-a-bitmap-into-a-byte-array</
|
||||
<p>Rien de bien dingue mais cela fonctionne et je peux jouer avec le BLACK_AND_WHITE_TRESHOLD pour changer son comportement.</p>
|
||||
<p>J'ai dabord testé avec un treshold de 100 et le programme a réussi à me sortir Tsunoda en deux mots ce qui était déja très encourageant.</p>
|
||||
<p>Et après avoir augmenté le Treshold... Tada :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TextRecognition4.png"><img alt='"Tsunoda 1080P avec filtre"' src="../Images/Screens/TextRecognition4.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TextRecognition4.png"><img 1080p="" alt="" avec="" filtre""="" src="./Images/Screens/TextRecognition4.png" tsunoda=""/></a>
|
||||
<figcaption>"Tsunoda 1080P avec filtre"</figcaption>
|
||||
</figure>
|
||||
<p>Le programme arrive bien à reconnaitre TSUNODA. Je pense que cette tactique ne fonctionnait pas avant car la resolution était trop faible et l'aliasing se mêlait trop avec le texte pour être utilisable.</p>
|
||||
<p>Cependant cette technique ne fonctionne pas sur tous les noms. Par example avec Leclerc :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TextRecognition5.png"><img alt='"Leclerc 1080P avec filtre"' src="../Images/Screens/TextRecognition5.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TextRecognition5.png"><img 1080p="" alt="" avec="" filtre""="" leclerc="" src="./Images/Screens/TextRecognition5.png"/></a>
|
||||
<figcaption>"Leclerc 1080P avec filtre"</figcaption>
|
||||
</figure>
|
||||
<p>On récupère "Leeler'c" ce qui n'est pas bon du tout.</p>
|
||||
<p>Mais en modulant le Treshold (ici à 150) On peut de nouveau voir Leclerc être reconnu correctement</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TextRecognition6.png"><img alt='"Leclerc 1080P avec filtre 2"' src="../Images/Screens/TextRecognition6.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TextRecognition6.png"><img 1080p="" 2""="" alt="" avec="" filtre="" leclerc="" src="./Images/Screens/TextRecognition6.png"/></a>
|
||||
<figcaption>"Leclerc 1080P avec filtre 2"</figcaption>
|
||||
</figure>
|
||||
<p>Je pense que pour avoir de bons résultats il va falloir faire un algo qui :</p>
|
||||
<ul>
|
||||
<li>Découpe l'image en autant de plus petites images pour avoir un mot par image.</li>
|
||||
@@ -604,13 +679,22 @@ https://stackoverflow.com/questions/7350679/convert-a-bitmap-into-a-byte-array</
|
||||
<p>Seulement voila, il n'y a pas que des lettres que l'on veut récupèrer. On veut surtout pouvoir récupèrer les chiffres.</p>
|
||||
<p>Pour les chiffres on va avoir des soucis également...</p>
|
||||
<p>Si on essaie directement la même technique sans filtre on a des résultats comme celui ci :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TimingRecognition0.png"><img alt='"Tentative de reconnaisance du timing"' src="../Images/Screens/TimingRecognition0.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TimingRecognition0.png"><img alt="" de="" du="" reconnaisance="" src="./Images/Screens/TimingRecognition0.png" tentative="" timing""=""/></a>
|
||||
<figcaption>"Tentative de reconnaisance du timing"</figcaption>
|
||||
</figure>
|
||||
<p>La virgule a tendeance à se barrer ce qui est particulièrement problématique. Cependant comme les chiffres ont beaucoup moins de possibilitées que les lettres et qu'il n'y a pas de problème de langue on devrait pouvoir travailler à faire des règlage que l'on pourra ensuite utiliser.</p>
|
||||
<p>Avec un Treshold de 165 on arrive presque à quelque chose d'intéressant :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TimingRecognition1.png"><img alt='"Tentative 2 de reconnaissance du timing"' src="../Images/Screens/TimingRecognition1.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TimingRecognition1.png"><img 2="" alt="" de="" du="" reconnaissance="" src="./Images/Screens/TimingRecognition1.png" tentative="" timing""=""/></a>
|
||||
<figcaption>"Tentative 2 de reconnaissance du timing"</figcaption>
|
||||
</figure>
|
||||
<p>Le + n'est clairement pas compris mais ca n'est pas embêtant car c'est souvent redondant. On arrive cependant à isoler 3 et 259. Même si la virgule n'est pas comprise cela veut dire qu'il est tout de même possible de discriminer les secondes des milisecondes.</p>
|
||||
<p>Maintenant avec un temps au tour :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TimingRecognition2.png"><img alt='"Reconnaissance du timing au tour"' src="../Images/Screens/TimingRecognition2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TimingRecognition2.png"><img alt="" au="" du="" reconnaissance="" src="./Images/Screens/TimingRecognition2.png" timing="" tour""=""/></a>
|
||||
<figcaption>"Reconnaissance du timing au tour"</figcaption>
|
||||
</figure>
|
||||
<p>On arrive sans rien changer aux paramêtres à isoler minutes secondes et milisecondes.</p>
|
||||
<p>Il semble que la reconnaissance de chiffre soit bien plus efficace que la reconnaissance de lettres. Il va falloir faire un test à plus grande échelle avec plus d'image pour se rendre compte de la precision.</p>
|
||||
<p>Demain ce qui serait bien cela serait que je fasse un jeu d'images avec des valeurs connues et que je fasse une batterie de tests pour voir à quel point je peux faire confiance à la reconnaissance des chiffres.</p>
|
||||
@@ -623,13 +707,22 @@ https://stackoverflow.com/questions/7350679/convert-a-bitmap-into-a-byte-array</
|
||||
<p>Je me rend compte que pour faire un programme de tests je dois déja avoir une idée de la structure de mon programme.</p>
|
||||
<p>Pour le moment je réflechis à un système de "Zones" et de "Windows". L'idée serait que une Zone est juste une sous partie d'image qui peut encore être décomposé tandis que chaque Window contient une ou plusieurs informations à récupèrer.</p>
|
||||
<p>J'ai essayé de découper l'image pour que cela soit plus clair :</p>
|
||||
<p><a class="glightbox" href="../Images/Figma/WindowZoneExplanation1.png"><img alt='"Main zone"' src="../Images/Figma/WindowZoneExplanation1.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/WindowZoneExplanation1.png"><img alt="" main="" src="./Images/Figma/WindowZoneExplanation1.png" zone""=""/></a>
|
||||
<figcaption>"Main zone"</figcaption>
|
||||
</figure>
|
||||
<p>Ici on peut voir que l'image est découpée en plusieurs grandes zones. Dans un premier temps on ne s'occupe que de la première.</p>
|
||||
<p>Ensuite :</p>
|
||||
<p><a class="glightbox" href="../Images/Figma/WindowZoneExplanation2.png"><img alt='"Driver zone #1"' src="../Images/Figma/WindowZoneExplanation2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/WindowZoneExplanation2.png"><img #1""="" alt="" driver="" src="./Images/Figma/WindowZoneExplanation2.png" zone=""/></a>
|
||||
<figcaption>"Driver zone #1"</figcaption>
|
||||
</figure>
|
||||
<p>On peut voir la que cette Main zone serait elle même décomposée en plusieurs plus petites zones.</p>
|
||||
<p>Et ensuite chacunes de ces petites zones :</p>
|
||||
<p><a class="glightbox" href="../Images/Figma/WindowZoneExplanation3.png"><img alt='"Driver windows"' src="../Images/Figma/WindowZoneExplanation3.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/WindowZoneExplanation3.png"><img alt="" driver="" src="./Images/Figma/WindowZoneExplanation3.png" windows""=""/></a>
|
||||
<figcaption>"Driver windows"</figcaption>
|
||||
</figure>
|
||||
<p>Sera décomposée en plusieurs windows qui elles sont des zones qui contiennent de l'information.</p>
|
||||
<p>En gros on aurait trois types de zone :</p>
|
||||
<ul>
|
||||
@@ -660,7 +753,10 @@ https://stackoverflow.com/questions/7350679/convert-a-bitmap-into-a-byte-array</
|
||||
<p>Dans un premier temps je pense que les windows vont simplement écrire dans un fichier ce qu'elles trouvent chacunes dans le format qu'elles veulent.</p>
|
||||
<p>Pour comprendre pourquoi je me prend la tête il faut savoir que chaque window peut avoir accès à pleins d'informations différentes. On pourrait dire qu'elles retournent toutes une string sauf que si ca marche pour un temps au tour ou pour un nom de pilote, cela ne marche pas forcément pour un type de pneu ou un DRS ouver. Comme chaque window a plusieurs types de data elle devra elle même se charger de comment la traiter ET de la stocker.</p>
|
||||
<p>Voila un diagramme qui résume comment je vois l'implémentation dans un premier temps :</p>
|
||||
<p><a class="glightbox" href="../Images/Figma/WindowZoneExplanationDiagram.png"><img alt=""Diagramme d'explications"" src="../Images/Figma/WindowZoneExplanationDiagram.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/WindowZoneExplanationDiagram.png"><img alt="" d'explications""="" diagramme="" src="./Images/Figma/WindowZoneExplanationDiagram.png"/></a>
|
||||
<figcaption>"Diagramme d'explications"</figcaption>
|
||||
</figure>
|
||||
<p>Voici comment se présente le squellette d'une Zone :</p>
|
||||
<pre><code class="language-Csharp">public class Zone
|
||||
{
|
||||
@@ -767,21 +863,42 @@ namespace OCR_tester
|
||||
<p>Par exemple pour un temps au tour on peut imaginer que il fait une petite vérification dans l'objet pilote et dans le tableau des tours si il n'y a pas deja une valeur et si il n'y en a pas une alors il peut l'ajouter.</p>
|
||||
<p>Maintenant je vais essayer de créer une Main window qui se calibre toute seule.</p>
|
||||
<p>Alors après avoir bien galèré avec l'interface pour permettre au user de cliquer sur la form pour voir les zones qu'il crée, j'ai pu créer un zone qui fait les dimensions de MainZone et j'ai pu lancer la reconnaissance sur l'image et voir ou il trouve du texte :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/AutoCalibration1.png"><img alt='"MainZone avec carrés de texte"' src="../Images/Screens/AutoCalibration1.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/AutoCalibration1.png"><img alt="" avec="" carrés="" de="" mainzone="" src="./Images/Screens/AutoCalibration1.png" texte""=""/></a>
|
||||
<figcaption>"MainZone avec carrés de texte"</figcaption>
|
||||
</figure>
|
||||
<p>Maintenant il faut que je nettoie la liste de rectangle pour exclure ceux qui sont trop grands pour être sur une seule ligne, ceux qui indiquent le nombre de tour en haut et ceux qui n'ont pas d'intérêts. On pourra ensuite isoler les lignes et créer une liste d'images.</p>
|
||||
<p>Pour ce qui est de la ligne qui contient les "Gap interval last lap" et des chiffres sur les tours pour les pneus etc je vais juste demander à l'utilisateur de ne pas les prendre dans la screenshot. Comme ils contiennent des mots qui peuvent être utilisés plus loin dans les data je ne peux pas les blacklister et faire un système qui s'occupe de les enlever si ils existent selon le position y me prendrait trop de temps pour rien.</p>
|
||||
<p>Après avoir filtré un peu les resultats et enlevé les zones beaucoup trop grandes, on se retrouve déja plus qu'avec ca :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/AutoCalibration2.png"><img alt='"MainZone avec de meilleurs carrés"' src="../Images/Screens/AutoCalibration2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/AutoCalibration2.png"><img alt="" avec="" carrés""="" de="" mainzone="" meilleurs="" src="./Images/Screens/AutoCalibration2.png"/></a>
|
||||
<figcaption>"MainZone avec de meilleurs carrés"</figcaption>
|
||||
</figure>
|
||||
<p>Comme on peut le voir, du côté gauche de l'image on a beaucoup de choses reconnues mais avec beaucoup de tailles différentes ce qui n'est pas idéal. Alors j'ajoute un filtre qui permet de ne selectionner que les data sur la droite.</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/AutoCalibration3.png"><img alt='"MainZone avec de meilleurs carrés"' src="../Images/Screens/AutoCalibration3.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/AutoCalibration3.png"><img alt="" avec="" carrés""="" de="" mainzone="" meilleurs="" src="./Images/Screens/AutoCalibration3.png"/></a>
|
||||
<figcaption>"MainZone avec de meilleurs carrés"</figcaption>
|
||||
</figure>
|
||||
<p>Maintenant il devrait être possible de faire un algorythme qui ne prend que un seul carré par ligne.</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/AutoCalibration4.png"><img alt='"MainZone avec un seul carré par ligne"' src="../Images/Screens/AutoCalibration4.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/AutoCalibration4.png"><img alt="" avec="" carré="" ligne""="" mainzone="" par="" seul="" src="./Images/Screens/AutoCalibration4.png" un=""/></a>
|
||||
<figcaption>"MainZone avec un seul carré par ligne"</figcaption>
|
||||
</figure>
|
||||
<p>Maintenant que on sait ou se trouve chaque ligne on peut faire un petit traitement et découper l'image en plusieurs windows.</p>
|
||||
<p>Et voila :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/AutoCalibration5.png"><img alt='"Mainzone auto calibrée"' src="../Images/Screens/AutoCalibration5.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/AutoCalibration5.png"><img alt="" auto="" calibrée""="" mainzone="" src="./Images/Screens/AutoCalibration5.png"/></a>
|
||||
<figcaption>"Mainzone auto calibrée"</figcaption>
|
||||
</figure>
|
||||
<p>Maintenant le programme peut créer des zones pour chaque pilote</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/WindowsPilotes.png"><img alt='"Images pilotes"' src="../Images/Screens/WindowsPilotes.png"/></a></p>
|
||||
<p><a class="glightbox" href="../Images/Screens/driver2.png"><img alt=""Zone d'un pilote"" src="../Images/Screens/driver2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/WindowsPilotes.png"><img alt="" images="" pilotes""="" src="./Images/Screens/WindowsPilotes.png"/></a>
|
||||
<figcaption>"Images pilotes"</figcaption>
|
||||
</figure>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/driver2.png"><img alt="" d'un="" pilote""="" src="./Images/Screens/driver2.png" zone=""/></a>
|
||||
<figcaption>"Zone d'un pilote"</figcaption>
|
||||
</figure>
|
||||
<p>Maintenant il faut que j'implémente un système un peu similaire pour créer des windows.</p>
|
||||
<p>Voici la methode que j'ai créé pour l'autocalibration :</p>
|
||||
<pre><code class="language-Csharp">public void AutoCalibrate()
|
||||
@@ -843,15 +960,28 @@ namespace OCR_tester
|
||||
<p>Ca peut paraitre pas énorme comme code mais pour tout mettre en place ca demande quand même pas mal de reflexion.</p>
|
||||
<p>J'ai du clean un peu le code que j'avais fait pour permettre la selection de zones et ajouter la possibilité d'ajouter des windows sur une zone.</p>
|
||||
<p>J'ai juste quelques difficultées à les ajouter correctement, j'ai un offset tout pourri qui se met tout le temps</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/data0Sainz.png"><img alt='"Sainz coupé"' src="../Images/Screens/data0Sainz.png"/></a>
|
||||
<a class="glightbox" href="../Images/Screens/data0Perez.png"><img alt='"Perez coupé"' src="../Images/Screens/data0Perez.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/data0Sainz.png"><img alt="" coupé""="" sainz="" src="./Images/Screens/data0Sainz.png"/></a>
|
||||
<figcaption>"Sainz coupé"</figcaption>
|
||||
</figure>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/data0Perez.png"><img alt="" coupé""="" perez="" src="./Images/Screens/data0Perez.png"/></a>
|
||||
<figcaption>"Perez coupé"</figcaption>
|
||||
</figure>
|
||||
<p>Cela doit être un soucis lors de la detection de clic qui met un offset en trop. C'est vraiment pénible en tout cas.</p>
|
||||
<p>Certes c'est moins fun de devoir manuellement indiquer ou sont les windows sur une ligne de pilote, mais je ne vois vraiment pas comment faire cela automatiquement. Le but c'est de faire une configuration qui puisse être sauvegardée comme ca pas besoin d'à chaques fois le refaire.</p>
|
||||
<p>C'est bon ! J'avais juste oublié de changer le calcul d'offset entre le code de la zone et de la window. Note pour plus tard, il serait peut-être judicieux de faire quelque chose pour la vue, les windows et les Zones ont le même exact comportement pour la vue ce qui fait dupliquer du code.</p>
|
||||
<p>Mais au moins maintenant ca fonctionne :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/OCRTestingScreen.png"><img alt='"Ocr tester screenshot"' src="../Images/Screens/OCRTestingScreen.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/OCRTestingScreen.png"><img alt="" ocr="" screenshot""="" src="./Images/Screens/OCRTestingScreen.png" tester=""/></a>
|
||||
<figcaption>"Ocr tester screenshot"</figcaption>
|
||||
</figure>
|
||||
<p>Et le programme va directement créer un dossier par pilote avec toutes les images de chaque Data le concernant :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/PerezFolder.png"><img alt='"Dossier Perez"' src="../Images/Screens/PerezFolder.png"/></a>;</p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/PerezFolder.png"><img alt="" dossier="" perez""="" src="./Images/Screens/PerezFolder.png"/></a>
|
||||
<figcaption>"Dossier Perez"</figcaption>
|
||||
</figure>
|
||||
<p>;</p>
|
||||
<p>Et c'est tout pour aujourd'hui je pense. Ce qui serait cool demain c'est que je puisse stocker d'une manière ou d'une autre ces fichiers de calibration et que je puisse les transfèrer vers le programme qui va s'occuper de décoder et commencer gentillement à décoder les différents types de data.</p>
|
||||
<p>Note pour quand je ferai les tests. Je pense que la meilleure idée serait que je prenne pleins de photos du style et que je les mette dans un fichier CSV ou JSON avec leur contenu. Et ensuite je le fais passer en tests pour calculer la prescision de mon algo de décodage.</p>
|
||||
<p>Pour le moment on est plutôt dans les clouts niveau planning.</p>
|
||||
@@ -860,16 +990,26 @@ namespace OCR_tester
|
||||
<p>Pour ce faire j'ai tenté de faire comme pour la main zone c'est à dire lancer la reconnaissance pour savoir ou étaient tous les champs de données mais malheureusement je ne pense pas que cela va être possible.</p>
|
||||
<p>En effet non seulement ici les champs sont de tailles très variées, mais en plus la reconnaissance n'arrive pas à en récupèrer le même nombre sur chaque ligne ce qui risque d'être complexe à utiliser ensuite.</p>
|
||||
<p>La preuve :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/AutoCalibration6.png"><img alt=""Tentative d'auto calibration"" src="../Images/Screens/AutoCalibration6.png"/></a>;</p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/AutoCalibration6.png"><img alt="" calibration""="" d'auto="" src="./Images/Screens/AutoCalibration6.png" tentative=""/></a>
|
||||
<figcaption>"Tentative d'auto calibration"</figcaption>
|
||||
</figure>
|
||||
<p>;</p>
|
||||
<p>Cependant tout n'est pas perdu ! Il y a peut-être un moyen qui serait mieux en tous points. Le soucis avec ce type de reconnaissance c'est qu'on utilise beaucoup de ressources inutiles. On peut peut-être hard coder la valeur des diviseurs et les utiliser pour créer des zones.</p>
|
||||
<p>Ok alors visiblement c'est un problème car il semble y avoir d'autres pixels de cette couleur dans l'image (Qui l'aurait cru lol)</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/AutoCalibration7.png"><img alt='"Tentative 2"' src="../Images/Screens/AutoCalibration7.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/AutoCalibration7.png"><img 2""="" alt="" src="./Images/Screens/AutoCalibration7.png" tentative=""/></a>
|
||||
<figcaption>"Tentative 2"</figcaption>
|
||||
</figure>
|
||||
<p>J'a tenté de réduire la tolérance mais le soucis c'est que c'est soit trop soit pas assez</p>
|
||||
<p>Dernière tentative, j'ai essayé de prendre plusieurs pixels en hauteur pour chaque incrément de X et en faire la moyenne, et même comme ca, impossible de trouver de manière efficace les zones. Je pense que je vais donc revert tous mes changements pour revenir à la version ou on les choisissait manuellement.</p>
|
||||
<p>Pas mal de temps perdu mais bon c'est comme ca ca arrive</p>
|
||||
<p>Bon j'ai fait un revert mais j'ai ajouté une feature importante. Les zones font la largeur indiquée par l'utilisateur mais elles font la hauteur max comme ca toutes les window font la même hauteur et ca permet à l'utilisateur de ne pas forcément être ultra précis dans sa selection.</p>
|
||||
<p>Ce qui nous donne :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/AutoCalibration8.png"><img alt='"Resultat final"' src="../Images/Screens/AutoCalibration8.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/AutoCalibration8.png"><img alt="" final""="" resultat="" src="./Images/Screens/AutoCalibration8.png"/></a>
|
||||
<figcaption>"Resultat final"</figcaption>
|
||||
</figure>
|
||||
<p>Maintenant je dirais que les deux prochaines choses à faire seraient de stocker ces zones dans un fichier JSON ou autre pour que la calibration puisse être envoyée directement dans le logiciel de reconnaissance et ensuite de faire une calibration sur des images qui font la taille qu'on aura pendant les Grands Prix. Pour le moment elles sont au format 16:10 qui est le format d'écrant de mon laptop.</p>
|
||||
<p>Pour le stockage j'imagine un fichier qui donne des indications assez simples qui permettent de reconstruire le total des zones quand il est importé plutot que d'écrire les coordonnées en dur pour chacunes.</p>
|
||||
<p>Chaque Grande zone va implémenter une methode qui s'occupe de mettre tous ses enfants dans un fichier.</p>
|
||||
@@ -911,7 +1051,10 @@ namespace OCR_tester
|
||||
<p>J'ai visiblement ajouté un bug dans mon code. Maintenant tous les pilotes ont la même image quand on les selectionne. Mais visiblement ca n'était pas le cas avant car j'avais pu prendres des images de chaque pilote.</p>
|
||||
<p>J'ai passé 3 minutes à fixer un bug stupide j'ai un peu envie de brûler ma place de travail... Mais bon au moins maintenant cela fonctionne !</p>
|
||||
<p>Toutes les images sont récupèrées et ont un format correct avec le bon nom :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/VerstappenFolder.png"><img alt='"Verstappen folder"' src="../Images/Screens/VerstappenFolder.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/VerstappenFolder.png"><img alt="" folder""="" src="./Images/Screens/VerstappenFolder.png" verstappen=""/></a>
|
||||
<figcaption>"Verstappen folder"</figcaption>
|
||||
</figure>
|
||||
<p>Avec un peu de code très moche j'ai pu créer un fichier JSON qui contient les différentes infos. Cependant en exportant TOUT on se retrouve avec un fichier de 1200 lignes ce qui n'est pas optimal.</p>
|
||||
<p>Mais quand on regarde, il devrait être possible de faire un fichier qui ne contient que les infos d'un seul pilote car ensuite il y a simplement un offset à appliquer sur la zone et les windows.</p>
|
||||
<p>Je vais donc pouvoir commencer enfin le logiciel de décodage qui prend en entrée un fichier JSON comme celui ci qui a été génèré avec le programme de calibration.</p>
|
||||
@@ -993,22 +1136,37 @@ namespace OCR_tester
|
||||
<p>Bon la il faut vraiment que je finisse assez vite la lecture du JSON et la reconstruction des zones pour commencer la reconnaissance.</p>
|
||||
<p>J'ai pris beaucoup de temps à faire le programme de calibration mais je pense que c'est essentiel de prendre ce temps maintenant. (BTW il faudra quand même retourner faire une plus jolie version par ce que la ca marche mais c'est tout)</p>
|
||||
<p>Bon après pas mal de boulot je pense avoir réussi. Dans le nouveau programme on arrive à récupèrer les différentes zones :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/JsonDecodeResult.png"><img alt='"JSON decode result"' src="../Images/Screens/JsonDecodeResult.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/JsonDecodeResult.png"><img alt="" decode="" json="" result""="" src="./Images/Screens/JsonDecodeResult.png"/></a>
|
||||
<figcaption>"JSON decode result"</figcaption>
|
||||
</figure>
|
||||
<p>Un conseil de notre professeur M.Bonvin a été de créer des Releases de versions qui ne fonctionnent pas ou pas très bien. J'ai donc publié une première release de l'OCR_TEST qui fonctionne vite fait.</p>
|
||||
<p>J'ai seulement un petit soucis, comme je recrée complêtement la structure des driver zones avec seulement la première, il y a un petit décalage car entre les zones il y avait un gap.</p>
|
||||
<p>Ce qui fait que si la première zone est parfaitement centrée :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/CenteredDriver.png"><img alt='"Centered driver"' src="../Images/Screens/CenteredDriver.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/CenteredDriver.png"><img alt="" centered="" driver""="" src="./Images/Screens/CenteredDriver.png"/></a>
|
||||
<figcaption>"Centered driver"</figcaption>
|
||||
</figure>
|
||||
<p>La vingtième ne l'est plus exactement :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/UncenteredDriver.png"><img alt='"Uncentered Driver"' src="../Images/Screens/UncenteredDriver.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/UncenteredDriver.png"><img alt="" driver""="" src="./Images/Screens/UncenteredDriver.png" uncentered=""/></a>
|
||||
<figcaption>"Uncentered Driver"</figcaption>
|
||||
</figure>
|
||||
<p>Pour ca j'ai essayé de mettre un espacement arbitraire mais c'est complexe. Je vais plutôt tenter de faire une différence entre la taille de la zone complête et de la taille additionnée de toutes les fenêtre et diviser le resultat entre toutes les fenêtres.</p>
|
||||
<p>Ca n'est pas parfait mais au moins maintenant les données ne touchent plus les bords de la fenêtre.</p>
|
||||
<p>Et voila !</p>
|
||||
<p>Maintenant avec le fichier de configuration en Json on arrive à récupèrer toutes les infos comme si elles avaient été envoyées directement depuis l'app de calibration mais sans le processing time !</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/VerstappenFolder2.png"><img alt='"Verstappen folder 2' src="../Images/Screens/VerstappenFolder2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/VerstappenFolder2.png"><img 2"="" alt="" folder="" src="./Images/Screens/VerstappenFolder2.png" verstappen=""/></a>
|
||||
<figcaption>"Verstappen folder 2</figcaption>
|
||||
</figure>
|
||||
<p>On peut donc ENFIN passer au décodage de ces FICHUES données.</p>
|
||||
<p>Je vais pouvoir implémenter ce que j'ai fait dans le projet de test de décodage.</p>
|
||||
<p>Grâce à mon découpage initial qui m'a pris du temps à implémenter on a enfin un truc qui marche même si je n'ai implémenté que la reconnaissance de noms.</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/ImageDecoding1.png"><img alt='"Image reconnaissance propre"' src="../Images/Screens/ImageDecoding1.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ImageDecoding1.png"><img alt="" image="" propre""="" reconnaissance="" src="./Images/Screens/ImageDecoding1.png"/></a>
|
||||
<figcaption>"Image reconnaissance propre"</figcaption>
|
||||
</figure>
|
||||
<p>Si on se rappelle du système de window et de zones dans le diagramme plus haut, c'est assez facile de comprendre comment je m'y suis pris.</p>
|
||||
<p>En gros on des listes et des listes de listes de zones, c'est la partie un peu plus technique car il y a des zones qui peuvent contenir d'autres zones etc.</p>
|
||||
<p>Je vais commencer par la reconnaissance de noms.</p>
|
||||
@@ -1119,11 +1277,20 @@ Je pense qu'une bonne facon d'envoyer l'info serait de retourner -1 -2etc... à
|
||||
<p>Bon pour la reconnaissance des temps c'est spécial...
|
||||
Le filtre semble ne pas changer grand chose ce qui est problématique et ca n'est vraiment pas fiable.</p>
|
||||
<p>Voici quelques expemples avec un treshold de 100:</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/11ZSD.png"><img alt='"11ZSD"' src="../Images/Screens/11ZSD.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/11ZSD.png"><img 11zsd""="" alt="" src="./Images/Screens/11ZSD.png"/></a>
|
||||
<figcaption>"11ZSD"</figcaption>
|
||||
</figure>
|
||||
<p>Cette image est comprise comme "11ZSD"</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/42340.png"><img alt="42340" src="../Images/Screens/42340.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/42340.png"><img alt="42340" src="./Images/Screens/42340.png"/></a>
|
||||
<figcaption>42340</figcaption>
|
||||
</figure>
|
||||
<p>Cette image est comprise comme "42340"</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/ZZAEB.png"><img alt='"ZZAEB"' src="../Images/Screens/ZZAEB.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ZZAEB.png"><img alt="" src="./Images/Screens/ZZAEB.png" zzaeb""=""/></a>
|
||||
<figcaption>"ZZAEB"</figcaption>
|
||||
</figure>
|
||||
<p>Et celle ci "ZZAEB"...</p>
|
||||
<p>Ce qui... n'est pas bon du tout...</p>
|
||||
<p>J'ai essayé de trouver un fichier d'entrainement spécifiquement fait pour les digits. J'ai essayé de blacklister les chars non voulus pour tenter d'obliger Tesseract à trouver des chiffres.</p>
|
||||
@@ -1133,9 +1300,15 @@ Avec la seconde option c'est déja pas mal mieux mais on perd complètement la p
|
||||
<p>Il faut absolument que je trouve une solution.</p>
|
||||
<p>J'ai essayé d'utiliser de l'interpolation our augmenter la taille de l'image et ensuite appliquer mon filtre pour retirer le flou mais sans succès...</p>
|
||||
<p>Pourtant la on se retrouve avec des images plutôt claires :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/Clear44301.png"><img alt='"Clear1"' src="../Images/Screens/Clear44301.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/Clear44301.png"><img alt="" clear1""="" src="./Images/Screens/Clear44301.png"/></a>
|
||||
<figcaption>"Clear1"</figcaption>
|
||||
</figure>
|
||||
<p>Ici le programme trouve "44301"</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/ClearA5157.png"><img alt='"Clear2"' src="../Images/Screens/ClearA5157.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/ClearA5157.png"><img alt="" clear2""="" src="./Images/Screens/ClearA5157.png"/></a>
|
||||
<figcaption>"Clear2"</figcaption>
|
||||
</figure>
|
||||
<p>Et ici "A5151"...</p>
|
||||
<p>On a toujours les mêmes problèmes.</p>
|
||||
<p>Bon je suis allé me renseigner sur l'OCR et je me suis dit que j'allais tenter de faire les choses proprement.</p>
|
||||
@@ -1148,18 +1321,38 @@ Avec la seconde option c'est déja pas mal mieux mais on perd complètement la p
|
||||
<li>Dilatation</li>
|
||||
</ul>
|
||||
<p>Ce qui donne : </p>
|
||||
<p><a class="glightbox" href="../Images/Screens/BeforeProcessing1.png"><img alt='"Original"' src="../Images/Screens/BeforeProcessing1.png"/></a></p>
|
||||
<p><a class="glightbox" href="../Images/Screens/GrayScale.png"><img alt='"Grayscale"' src="../Images/Screens/GrayScale.png"/></a></p>
|
||||
<p><a class="glightbox" href="../Images/Screens/InvertColor.png"><img alt='"InvertColors"' src="../Images/Screens/InvertColor.png"/></a>;</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/Scaling.png"><img alt='"Resize"' src="../Images/Screens/Scaling.png"/></a>;</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/Dilatation.png"><img alt='"Dilatation"' src="../Images/Screens/Dilatation.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/BeforeProcessing1.png"><img alt="" original""="" src="./Images/Screens/BeforeProcessing1.png"/></a>
|
||||
<figcaption>"Original"</figcaption>
|
||||
</figure>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/GrayScale.png"><img alt="" grayscale""="" src="./Images/Screens/GrayScale.png"/></a>
|
||||
<figcaption>"Grayscale"</figcaption>
|
||||
</figure>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/InvertColor.png"><img alt="" invertcolors""="" src="./Images/Screens/InvertColor.png"/></a>
|
||||
<figcaption>"InvertColors"</figcaption>
|
||||
</figure>
|
||||
<p>;</p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/Scaling.png"><img alt="" resize""="" src="./Images/Screens/Scaling.png"/></a>
|
||||
<figcaption>"Resize"</figcaption>
|
||||
</figure>
|
||||
<p>;</p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/Dilatation.png"><img alt="" dilatation""="" src="./Images/Screens/Dilatation.png"/></a>
|
||||
<figcaption>"Dilatation"</figcaption>
|
||||
</figure>
|
||||
<p>Ce qui ne change : <em>Roulement de tambour</em> RIEN kjd viuwvuirnvoirenbf</p>
|
||||
<p>Tout ca pour rien...</p>
|
||||
<p>C'EST BON !!!</p>
|
||||
<p>Bon en fait au final le problème était une mauvaise configuration de Tesseract. Je vais devoir un peu nettoyer tout ca. Mais avec les changements de l'image on a des résultats BEAUCOUP plus précis et potentiellement utilisables.</p>
|
||||
<p>La je vais devoir faire un serieux travail de nettoyage et simplification de mon code par ce que la c'est vraiment un chantier vu le nombre de choses que j'ai du essayer.</p>
|
||||
<p>J'ai du aussi beaucoup modifier la gestion de l'image ce qui donne :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/Clean.png"><img alt='"Clean"' src="../Images/Screens/Clean.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screen/../Screens/Clean.png"><img alt="" clean""="" src="./Images/Screen/../Screens/Clean.png"/></a>
|
||||
<figcaption>"Clean"</figcaption>
|
||||
</figure>
|
||||
<p>Et la on a des résultats qui sont vraiment bons.</p>
|
||||
<p>J'ai pu ajouter assez facilement la detection de position comme c'est simplement un chiffre.</p>
|
||||
<p>On se retrouve maintenant avec ce genre de retours :</p>
|
||||
@@ -1225,9 +1418,15 @@ Sector 3 : 0:00:000
|
||||
<p>Au final la technique que j'utilise et qui marche plutôt bien pour le DRS est que je prend la première image de DRS et je la déclare comme valeur étalon d'un DRS non actif, en effet dans 99% des cas le leader n'a pas de DRS (cela peut arriver alors il faudra donc juste verifier que les pilotes sont bien à moins de deux secondes les uns des autres pour confirmer).</p>
|
||||
<p>Ensuite cette valeur étalon je la calcule en fonction du nombre de pixels verts dans l'image et si il y a plus de 30% de pixels verts en plus c'est que le DRS est activé ex:</p>
|
||||
<p>Ceci est un DRS fermé:</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/DRSFalse.png"><img alt='"Closed DRS"' src="../Images/Screens/DRSFalse.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/DRSFalse.png"><img alt="" closed="" drs""="" src="./Images/Screens/DRSFalse.png"/></a>
|
||||
<figcaption>"Closed DRS"</figcaption>
|
||||
</figure>
|
||||
<p>Ceci est un DRS ouvert:</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/DRSTrue.png"><img alt='"Open DRS"' src="../Images/Screens/DRSTrue.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/DRSTrue.png"><img alt="" drs""="" open="" src="./Images/Screens/DRSTrue.png"/></a>
|
||||
<figcaption>"Open DRS"</figcaption>
|
||||
</figure>
|
||||
<p>Cela marche à peu près tout le temps mais dans le pire des cas on peut toujours verifier que les pilotes sont bien proches pour detecter les potentiels rares cas de faux positifs.</p>
|
||||
<p>J'ai pu augmenter les performances en utilisant un seul engine pour tout le monde et en arrêtant d'utiliser GetPixel et SetPixel qui sont simplement des horreurs à utiliser. Mais elles ne sont pas encore bonnes</p>
|
||||
<p>Le soucis avec la detection de pneus cependant, c'est qu'il n'est pas possible d'utiliser la reconnaissance pour savoir ou regarder la couleur car cela ne marcherait pas.
|
||||
@@ -1236,7 +1435,10 @@ Je ne peux pas hardocder un endroit ou aller regarder car cela évolue tout le l
|
||||
<p>Bref c'est la galère. En y réflechissant je me suis dit qu'une bonne idée pourrait être de partir de la droite de la zone du pneu en regardant au milieu de la hauteur. Puis continuer vers la gauche jusqu'à ce que je rencontre une couleur différente. Je pourrai ensuite faire une zone un peu vers la gauche qui devrait contenir les infos du pneu et sur laquelle il sera possible de faire de le reconnaissance de couleur et de la reconnaissance de chiffres.</p>
|
||||
<p>J'ai déterminé que le background n'était jamais plus clair que #505050 et que donc nimporte quelle couleur qui aurait plus que 50 dans un seul des channels serait considèrée comme une couleur cassant le background</p>
|
||||
<p>Pour arriver à cette conclusion je me suis amusé un peu avec les couleurs pour jouer avec les limites de mon algorythme :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TestsCouleurs.png"><img alt='"Color fun"' src="../Images/Screens/TestsCouleurs.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TestsCouleurs.png"><img alt="" color="" fun""="" src="./Images/Screens/TestsCouleurs.png"/></a>
|
||||
<figcaption>"Color fun"</figcaption>
|
||||
</figure>
|
||||
<p>Et je crois que j'ai eu une bonne idée, avec une petite methode bien faite on arrive à de supers résultats :</p>
|
||||
<pre><code class="language-Csharp">private Rectangle FindTyreZone()
|
||||
{
|
||||
@@ -1263,7 +1465,10 @@ Je ne peux pas hardocder un endroit ou aller regarder car cela évolue tout le l
|
||||
return new Rectangle(CorrectedX,0,newWindowSize.Width,newWindowSize.Height);
|
||||
}
|
||||
</code></pre>
|
||||
<p><a class="glightbox" href="../Images/Screens/TyresImages.png"><img alt='"Tyres"' src="../Images/Screens/TyresImages.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyresImages.png"><img alt="" src="./Images/Screens/TyresImages.png" tyres""=""/></a>
|
||||
<figcaption>"Tyres"</figcaption>
|
||||
</figure>
|
||||
<p>Maintenant cela devrait être beaucoup plus simple de trouver la couleur générale et le nombre de tours.</p>
|
||||
<p>Donc ce que je fais c'est que je fais une reconnaissance de texte sur l'image réduite.</p>
|
||||
<p>Si je trouve une lettre c'est facile Ca me donne le type de pneu et ca me dit que c'est le premier tour avec.</p>
|
||||
@@ -1276,14 +1481,20 @@ Je ne peux pas hardocder un endroit ou aller regarder car cela évolue tout le l
|
||||
<li>INTER : #00a42e</li>
|
||||
<li>WET : #2760a6</li>
|
||||
</ul>
|
||||
<p><a class="glightbox" href="../Images/Screens/TyreColors.png"><img alt='"Tyre colors"' src="../Images/Screens/TyreColors.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreColors.png"><img alt="" colors""="" src="./Images/Screens/TyreColors.png" tyre=""/></a>
|
||||
<figcaption>"Tyre colors"</figcaption>
|
||||
</figure>
|
||||
<p>Les couleurs de pneus peuvent changer de temps à autres, par exemple cette règle de pneus est arrivée en 2019 et avant il y avait beaucoup plus de couleurs mais dans une volonté de rendre le sport plus facile à comprendre à la télé cela a été simplifié. Je ne pense pas que cela va changer dans les années qui viennent alors tout est hardcodé.</p>
|
||||
<p>Je pense que j'ai des soucis avec la detection de texte et de couleur car ma zone est trop grande.</p>
|
||||
<p>Alors bon j'écrit ces lignes apres des heures de tests.</p>
|
||||
<p>Il semble que la principale difficulté avec ces pneus c'est que les chiffres ou lettres sont minuscules. Il est donc extrêmement difficile de faire une reconnaissance ne serait-ce qu'un peu fiable..</p>
|
||||
<p>Je fais de mon mieux pour tenter de règler le soucis cependant c'est vraiment complexe.</p>
|
||||
<p>Je commence à devenir fou, je tente tout et nimporte quoi pour permettre à mon algo de fonctionner et même quand je fais du post processing comme pas possible il me retourne toujours nimporte quoi...</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/Perfect11But5.jpg"><img alt=""5i t'inquiètes"" src="../Images/Screens/Perfect11But5.jpg"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/Perfect11But5.jpg"><img 5i="" alt="" src="./Images/Screens/Perfect11But5.jpg" t'inquiètes""=""/></a>
|
||||
<figcaption>"5i t'inquiètes"</figcaption>
|
||||
</figure>
|
||||
<p>Ici le programme va trouver '5i'...</p>
|
||||
<p>En fait c'est complexe d'expliquer tout ce que je fais car je change tout en boucle en essayant et en ratant ce qui prend des heures.</p>
|
||||
<p>Pour aujourd'hui j'abandonne je vais simplement rentrer chez moi et y réflechir cette nuit mais je ne vois pas comment mieux faire la...</p>
|
||||
@@ -1297,17 +1508,32 @@ Je ne peux pas hardocder un endroit ou aller regarder car cela évolue tout le l
|
||||
<p>Alors j'écrit ces lignes deux jours plus tard et me rend compte avec horreur que toutes mes modifications sur ce journal de bord n'ont pas été auvegardée... yess..</p>
|
||||
<p>Bon pour faire simple, j'ai réussi à rendre la detection de couleurs bien plus efficace en réduisant la taille de l'image et en ne prenant pas en compte les couleurs que l'on détecte comme étant partie intégrante du background.</p>
|
||||
<p>Par exemple quand on a une image comme celle ci :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TyreWithBackground.png"><img alt='"Avec background"' src="../Images/Screens/TyreWithBackground.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreWithBackground.png"><img alt="" avec="" background""="" src="./Images/Screens/TyreWithBackground.png"/></a>
|
||||
<figcaption>"Avec background"</figcaption>
|
||||
</figure>
|
||||
<p>qui contient un background alors que ci dessous, on l'a enlevé.</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/TyreWithoutBackground.png"><img alt='"Sans background"' src="../Images/Screens/TyreWithoutBackground.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/TyreWithoutBackground.png"><img alt="" background""="" sans="" src="./Images/Screens/TyreWithoutBackground.png"/></a>
|
||||
<figcaption>"Sans background"</figcaption>
|
||||
</figure>
|
||||
<p>La différence est ténue mais elle permet de grandement améliorer la prescision de la reconnaissance de couleurs.</p>
|
||||
<p>Pour ce qui est du nombre de tours je me suis rendu compte que cela n'était déja pas très utile car avec l'historique on devrait pouvoir le déduire. Mais bon pour la forme je me suis dit que cela serait quand même une bonne idée de vérifier avec la reconnaissance. J'étais quasi certain que le soucis était le fait que l'on voie le contour du logo de pneu qui faisait que la reconnaissance avait du mal. Et j'avais raison ! En les enlevant (Ce qui n'a pas été simple) J'ai pu avoir des chiffres beaucoup plus proches de la réalité.</p>
|
||||
<p>En même temps je ne vois pas bien comment j'aurais pu faire mieux : </p>
|
||||
<p><a class="glightbox" href="../Images/Screens/Recognised11.png"><img alt='"Super 11"' src="../Images/Screens/Recognised11.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/Recognised11.png"><img 11""="" alt="" src="./Images/Screens/Recognised11.png" super=""/></a>
|
||||
<figcaption>"Super 11"</figcaption>
|
||||
</figure>
|
||||
<p>Je suis quand même assez fier de voir que j'ai réussi à part de l'image que on peut voir un peu plus haut et automatiquement la transormer en celle ci-dessus.</p>
|
||||
<p>J'ai donc pu retirer le round autour du chiffre et cela m'a permit de pouvoir dézoomer un peu et c'est avec ca que les lettres ont pu être mieux reconnues :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/RecognisedH.png"><img alt='"Super H"' src="../Images/Screens/RecognisedH.png"/></a></p>
|
||||
<p><a class="glightbox" href="../Images/Screens/RecognisedM.png"><img alt='"Super M"' src="../Images/Screens/RecognisedM.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/RecognisedH.png"><img alt="" h""="" src="./Images/Screens/RecognisedH.png" super=""/></a>
|
||||
<figcaption>"Super H"</figcaption>
|
||||
</figure>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/RecognisedM.png"><img alt="" m""="" src="./Images/Screens/RecognisedM.png" super=""/></a>
|
||||
<figcaption>"Super M"</figcaption>
|
||||
</figure>
|
||||
<p>Maintenant je pense qu'il ne reste "plus qu'à" nettoyer un peu tout ce code qui traine de partout pour tout faire fonctionner et implémenter un peu de parrallel processing ainsi que de l'asynchrone pour ne pas bloquer le reste du programme.</p>
|
||||
<p>Par ce qu'il faut savoir que en l'étât, le programme met 25 secondes à démarrer et consomme presque 2GB de Ram. Certes cela ne veut pas dire que la reconnaissance à elle seule prend 25 secondes car au démarrage il y a aussi la lecture du fichier de config et la création des window etc..</p>
|
||||
<p>En réalité la partie strictement OCR prend dans les 12s si on en croit la fonction stopWatch de C#.</p>
|
||||
@@ -1442,10 +1668,16 @@ On est de nouveau à plus de 10s de loading time mais on est descendu à deux se
|
||||
<p>J'ai aussi passé pas mal de temps sur le poster du projet.
|
||||
J'avais fait des croquis au crayon de ce à quoi je pensais, cependant après de longues discussions avec M.Garcia ils n'étaient pas forcément très bons car ils ne représentent pas assez bien le fonctionnement du projet et sont un peu trop marketings.</p>
|
||||
<p>Du coup j'ai fait une première version au propre :</p>
|
||||
<p><a class="glightbox" href="../Images/Figma/PosterV1.png"><img alt='"Poster V1"' src="../Images/Figma/PosterV1.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/PosterV1.png"><img alt="" poster="" src="./Images/Figma/PosterV1.png" v1""=""/></a>
|
||||
<figcaption>"Poster V1"</figcaption>
|
||||
</figure>
|
||||
<p>Mais je n'étais pas forcément content du résultat et il manquait des choses je trouve comme par exemple l'utilisation de Selenium.</p>
|
||||
<p>J'ai donc repassé des heures à faire une seconde version :</p>
|
||||
<p><a class="glightbox" href="../Images/Figma/PosterV2.png"><img alt='"Poster V2"' src="../Images/Figma/PosterV2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/PosterV2.png"><img alt="" poster="" src="./Images/Figma/PosterV2.png" v2""=""/></a>
|
||||
<figcaption>"Poster V2"</figcaption>
|
||||
</figure>
|
||||
<p>La police d'écriture n'est pas encore la bonne mais cela va venir. Mais je préfère déja beaucoup cette version à la première.</p>
|
||||
<p>Je ne sais pas encore si la version finale sera une version plus travaillée de ce poster ou complêtement autre chose mais pour l'instant je suis à peu près content de cette version.</p>
|
||||
<p>Je le trouve un tout petit peu trop brouillon ou avec trop d'infos mais il m'a été de nombreuses fois reproché de ne pas assez montrer le fonctionnememt interne et je ne peux pas faire plus simple.</p>
|
||||
@@ -1622,17 +1854,32 @@ print("Finished CSV")
|
||||
<p>Bon pour ce qui est du timecode de la vidéo. Je pense qu'il serait trop complexe de faire en sorte que selenium change le slider de progression de la vidéo. Alors j'ai fait quelques tests et apparemment, si on quitte la F1TV sur un timecode de la vidéo que on donne au programme, comme il récupère tous les cookies de la F1TV il commencera de la.</p>
|
||||
<p>Donc si on veut utiliser le programme avec des Grand Prix ayant déja eu lieu, on peut le faire, seulement il faudra juste au préalable avoir choisit le bon timecode dans le page de la F1TV avant de le lancer.</p>
|
||||
<p>Ce qui est intéressant c'est que la page de la F1TV ressemble à ca au départ :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/EmptyF1TV.png"><img alt='"Empty F1TV"' src="../Images/Screens/EmptyF1TV.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/EmptyF1TV.png"><img alt="" empty="" f1tv""="" src="./Images/Screens/EmptyF1TV.png"/></a>
|
||||
<figcaption>"Empty F1TV"</figcaption>
|
||||
</figure>
|
||||
<p>Je pense qu'une bonne idée serait de dire au programme que c'est la grille de départ et ensuite dès qu'il détecte un secteur il sait que la course a commencé.</p>
|
||||
<h2 id="lundi-24-avril-2023">Lundi 24 Avril 2023</h2>
|
||||
<p>Aujourd'hui c'est jour de documentation.</p>
|
||||
<p>J'ai pas mal travaillé pendant les vacances mais je n'ai pas encore pu faire de vraie documentation correcte du fonctionnement. Du coup je vais m'en charger aujourd'hui et peut-être un peu demain.</p>
|
||||
<p>Ok normalement je ne devrais faire que de la documentation mais je ne peux pas passer à coté de ca... Le problème que j'ai avec les pneus ou parfois il détecte un H au lieu d'un '11' et ce genre de choses c'est à cause de ma methode "RemoveBG" Qui va retirer tous les pixels plus sombres que le background. Sauf que cela va aussi retirer des pixels dans le chiffre lui même et qui va donc defigurer les 11 :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/Diformed11_1.png"><img alt='"diformed 11"' src="../Images/Screens/Diformed11_1.png"/></a></p>
|
||||
<p><a class="glightbox" href="../Images/Screens/Diformed11_2.png"><img alt='"diformed 11"' src="../Images/Screens/Diformed11_2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/Diformed11_1.png"><img 11""="" alt="" diformed="" src="./Images/Screens/Diformed11_1.png"/></a>
|
||||
<figcaption>"diformed 11"</figcaption>
|
||||
</figure>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/Diformed11_2.png"><img 11""="" alt="" diformed="" src="./Images/Screens/Diformed11_2.png"/></a>
|
||||
<figcaption>"diformed 11"</figcaption>
|
||||
</figure>
|
||||
<p>J'ai réussi à les changer en :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/Diformed11ButLess1.png"><img alt='"less diformed"' src="../Images/Screens/Diformed11ButLess1.png"/></a></p>
|
||||
<p><a class="glightbox" href="../Images/Screens/Diformed11ButLess2.png"><img alt='"less diformed"' src="../Images/Screens/Diformed11ButLess2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/Diformed11ButLess1.png"><img alt="" diformed""="" less="" src="./Images/Screens/Diformed11ButLess1.png"/></a>
|
||||
<figcaption>"less diformed"</figcaption>
|
||||
</figure>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/Diformed11ButLess2.png"><img alt="" diformed""="" less="" src="./Images/Screens/Diformed11ButLess2.png"/></a>
|
||||
<figcaption>"less diformed"</figcaption>
|
||||
</figure>
|
||||
<p>Mais au final cela n'a pas augmenté la précision de la reconnaissance. Je pense que je vais donc devoir encore changer.</p>
|
||||
<p>Je pense que une bonne facon de trouver serait dabord de trouver la couleur du pneu. Et si il n'y a pas assez de couleur alors c'est que le pneu contient une lettre. Le but est d'arrêter de chercher des lettres ou des chiffres. Comme ca les 11 arrêteront d'être pris pour des 'H'</p>
|
||||
<p>En fait on peut faire encore plus simple que ca.</p>
|
||||
@@ -1665,7 +1912,10 @@ Je pense que ce qui serait pas mal ca serait du coup d'utiliser ce temps pour bi
|
||||
Ca serait peut-être bien que quand l'application se lance on se retrouve sur la page principale d'affichage de données et qu'on puisse simplement cliquer sur la page options qui contient la page calibration et qui permet de rentrer les infos du Grand Prix.</p>
|
||||
<p>Je pense que je vais faire ca.</p>
|
||||
<p>Voici l'interface que j'ai développée pour regrouper tout ca :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/SettingsWindowV1.png"><img alt='"Screen"' src="../Images/Screens/SettingsWindowV1.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/SettingsWindowV1.png"><img alt="" screen""="" src="./Images/Screens/SettingsWindowV1.png"/></a>
|
||||
<figcaption>"Screen"</figcaption>
|
||||
</figure>
|
||||
<p>La police le style le placement et les couleurs ne sont pas définitfs, cependant je pense que c'est un bon début. Le but maintenant va être de permettre de faire fonctionner la calibration et la récupèration d'images.</p>
|
||||
<p>Si j'arrive à faire fonctionner ces deux choses sur un même projet avant la fin de la semaine cela serait super !</p>
|
||||
<p>Bon J'ai pu avancer sur l'intègration de Selenium mais cela prend un peu de temps car je veux implémetner un moyen de pouvoir prendre une Screenshot à nimporte quel moment et pas juste en boucle.</p>
|
||||
@@ -1677,8 +1927,14 @@ Ca serait peut-être bien que quand l'application se lance on se retrouve sur la
|
||||
<p>Si c'était un simple décalage cela ne serait pas compliqué à gèrer mais la...</p>
|
||||
<p>J'ai un soucis également avec la résolution des screenshots que je récupère en full Headless.</p>
|
||||
<p>Voici un exemple de résolution que j'arrive à récupèrer sans le headless :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/F1TVHIGHRES.png"><img alt='"High Res"' src="../Images/Screens/F1TVHIGHRES.png"/></a></p>
|
||||
<p><a class="glightbox" href="../Images/Screens/F1TVLOWRES.png"><img alt='"Low Res"' src="../Images/Screens/F1TVLOWRES.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/F1TVHIGHRES.png"><img alt="" high="" res""="" src="./Images/Screens/F1TVHIGHRES.png"/></a>
|
||||
<figcaption>"High Res"</figcaption>
|
||||
</figure>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/F1TVLOWRES.png"><img alt="" low="" res""="" src="./Images/Screens/F1TVLOWRES.png"/></a>
|
||||
<figcaption>"Low Res"</figcaption>
|
||||
</figure>
|
||||
<p>Il y a clairement un soucis et le problème c'est que avec une résolution pareille, impossible de faire une reconnaissance correcte.</p>
|
||||
<p>BON J?EN PEUX PLUS LA.
|
||||
Ca fait des heures que je bosse sur ce problème débile et impossible de trouver une solution. J'ai essayé cinq facons de forcer le browser headless a prendre une plus haute résolution aucune ne fonctionne je ne comprends pas.</p>
|
||||
@@ -1795,8 +2051,14 @@ options.AddArgument("--height=1200");
|
||||
<p>Bon après avoir supprimé l'intégralité de ma classe Emulator cela semble marcher un peu mieux. Je ne vais pas m'étendre sur la castrophe niveau temps que cela représente. Si au moins j'arrive à faire fonctionner quelque chose je suis content.</p>
|
||||
<p>Maintenant j'ai un soucis un peu spécial. Depuis que j'ai changé la résolution, il semble que le programme aie du mal à cliquer sur l'icone de settings.</p>
|
||||
<p>En prenant des screenshots du moment ou l'erreur apparait, j'ai pu me rendre compte que en fait le stream est toujours en train de charger et c'est pour ca que on arrive pas à trouver le bouton :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/error105Loading.png"><img alt='"ERROR 105"' src="../Images/Screens/error105Loading.png"/></a></p>
|
||||
<p><a class="glightbox" href="../Images/Screens/error105Loading2.png"><img alt='"ERROR 105"' src="../Images/Screens/error105Loading2.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/error105Loading.png"><img 105""="" alt="" error="" src="./Images/Screens/error105Loading.png"/></a>
|
||||
<figcaption>"ERROR 105"</figcaption>
|
||||
</figure>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/error105Loading2.png"><img 105""="" alt="" error="" src="./Images/Screens/error105Loading2.png"/></a>
|
||||
<figcaption>"ERROR 105"</figcaption>
|
||||
</figure>
|
||||
<p>Je pense que je n'ai le soucis que maintenant car le flux en 1080p se lance moins vite. Je vais essayer de voir si je peux detecter un élément d'HTML qui correspond au loading comme ca je peux attendre qu'il disparaisse. Sinon je peux aussi juste essayer de trouver le bouton en boucle pendant une dixaine de secondes.</p>
|
||||
<p>Bon la j'essaie pendant genre plus de 50 secondes et ca ne marche toujours pas.</p>
|
||||
<p>Il semblerait que au final le problème vienne du GP d'azerbidjan.</p>
|
||||
@@ -1804,9 +2066,15 @@ options.AddArgument("--height=1200");
|
||||
<p>ET MERDE !</p>
|
||||
<p>J'ai réussi à avoir des images en 1080P mais dés que je passe l'image en plein écran c'est de nouveau du 1366X768</p>
|
||||
<p>Avant de mettre en plein écran:</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/BEFOREFULLSCREEN.png"><img alt='"Before fullscreen"' src="../Images/Screens/BEFOREFULLSCREEN.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/BEFOREFULLSCREEN.png"><img alt="" before="" fullscreen""="" src="./Images/Screens/BEFOREFULLSCREEN.png"/></a>
|
||||
<figcaption>"Before fullscreen"</figcaption>
|
||||
</figure>
|
||||
<p>Après:</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/AFTERFULLSCREEN.png"><img alt='"After fullscreen"' src="../Images/Screens/AFTERFULLSCREEN.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/AFTERFULLSCREEN.png"><img after="" alt="" fullscreen""="" src="./Images/Screens/AFTERFULLSCREEN.png"/></a>
|
||||
<figcaption>"After fullscreen"</figcaption>
|
||||
</figure>
|
||||
<p>On peut voir sur l'image que l'option 1080P est effectivement bien selectionnée mais il doit y avoir un paramètre de Firefox qui s'occupe de la résolution d'un player vidéo. Il va juste falloir trouver ce paramêtre...</p>
|
||||
<p>J'ai essayé d'utiliser :</p>
|
||||
<p><code>Driver.Manage().Window.Size = new System.Drawing.Size(windowWidth, windowHeight);</code></p>
|
||||
@@ -1835,7 +2103,10 @@ C'était assez frustrant d'avoir perdu deux jours de travail mais on va faire av
|
||||
<p>OK j'ai compris le soucis que j'avais quand j'essayais de faire la calibration. J'avais mis l'image en ZOOM ce qui fait que si la hauteur n'était pas la bonne, l'image était recentrée ce qui fait que cela faussait totalement les résultats.</p>
|
||||
<p>Quand on fait en sorte que l'image prenne toute la place, les coordonnées sont prises correctement.</p>
|
||||
<p>Voici un exemple d'ou en est la partie calibration.</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/SettingsUI1.png"><img alt='"Exemple settings UI"' src="../Images/Screens/SettingsUI1.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/SettingsUI1.png"><img alt="" exemple="" settings="" src="./Images/Screens/SettingsUI1.png" ui""=""/></a>
|
||||
<figcaption>"Exemple settings UI"</figcaption>
|
||||
</figure>
|
||||
<p>Normalement il me suffit d'implémenter les windows, et on devrait relativement facilement ajouter les pilotes.</p>
|
||||
<p>Et voila. J'ai pu implémenter les windows et les pilotes. Et je peux aussi exporter des presets et les loader. Bon le loading est un peu beuggé au niveau de l'affichage mais il semble qu'il fonctionne bien quand je save les images.</p>
|
||||
<p>Lundi je m'occupe du poster etc.. mais je pense que la suite va être l'implémentation de l'OCR.</p>
|
||||
@@ -1843,19 +2114,37 @@ C'était assez frustrant d'avoir perdu deux jours de travail mais on va faire av
|
||||
<p>Aujourd'hui c'est journée Poster.</p>
|
||||
<p>Je pense que je ne vais pas finir la journée content car les limitations sont un peu trop présentes.</p>
|
||||
<p>J'ai fait une version que Garcia pourrait accepter, c'est à dire en noir et blanc et avec un tout petit peu plus de détail.</p>
|
||||
<p><a class="glightbox" href="../Images/Figma/PosterV3.png"><img alt='"Poster V3"' src="../Images/Figma/PosterV3.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/PosterV3.png"><img alt="" poster="" src="./Images/Figma/PosterV3.png" v3""=""/></a>
|
||||
<figcaption>"Poster V3"</figcaption>
|
||||
</figure>
|
||||
<p>Le truc c'est que en blanc je trouve que ca ne marche pas super. Et le concept d'avoir trois parties au projet qui se posent autour d'un circuit c'est peut-être pas la meilleure idée.</p>
|
||||
<p>Je me suis dit que la bonne idée serait peut-être de prendre un autre circuit pour qu'il y aie bien trois parties :</p>
|
||||
<p><a class="glightbox" href="../Images/Figma/PosterV4.png"><img alt='"Poster V4"' src="../Images/Figma/PosterV4.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/PosterV4.png"><img alt="" poster="" src="./Images/Figma/PosterV4.png" v4""=""/></a>
|
||||
<figcaption>"Poster V4"</figcaption>
|
||||
</figure>
|
||||
<p>Clairement ce poster doit faire partie des pires. C'est pas clair et ca part dans tous les sens. Je vais essayer avec un autre layout de circuit.</p>
|
||||
<p><a class="glightbox" href="../Images/Figma/PosterV5.png"><img alt='"Poster V5"' src="../Images/Figma/PosterV5.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/PosterV5.png"><img alt="" poster="" src="./Images/Figma/PosterV5.png" v5""=""/></a>
|
||||
<figcaption>"Poster V5"</figcaption>
|
||||
</figure>
|
||||
<p>Je me suis ensuite dit que le circuit n'était peut être tout simplement pas une bonne idée. J'ai donc essayé de faire quelque chose de plus classique avec juste un peu de background pour qu'on puisse éviter le soucis de la page blanche derrière :</p>
|
||||
<p><a class="glightbox" href="../Images/Figma/PosterV6.png"><img alt='"Poster V6"' src="../Images/Figma/PosterV6.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/PosterV6.png"><img alt="" poster="" src="./Images/Figma/PosterV6.png" v6""=""/></a>
|
||||
<figcaption>"Poster V6"</figcaption>
|
||||
</figure>
|
||||
<p>Puis je me suis dit que finalement le circuit me manquait. Alors j'ai décidé de combiner le background et le circuit ainsi que simplifier légèrement les diagrammes en retouchant un peu tout le reste on pouvait arriver à quelque chose de sympatique :</p>
|
||||
<p><a class="glightbox" href="../Images/Figma/PosterV7.png"><img alt='"Poster V7"' src="../Images/Figma/PosterV7.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/PosterV7.png"><img alt="" poster="" src="./Images/Figma/PosterV7.png" v7""=""/></a>
|
||||
<figcaption>"Poster V7"</figcaption>
|
||||
</figure>
|
||||
<p>Je ne suis pas content à 100% mais bon je pense que je vais m'en satisfaire.</p>
|
||||
<p>Pour donner une idée de la galère que c'est de créer un poster, voici ce à quoi ressemble mon espace de travail Figma :</p>
|
||||
<p><a class="glightbox" href="../Images/Screens/BordelFigma.png"><img alt='"Bordel Figma"' src="../Images/Screens/BordelFigma.png"/></a></p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Screens/BordelFigma.png"><img alt="" bordel="" figma""="" src="./Images/Screens/BordelFigma.png"/></a>
|
||||
<figcaption>"Bordel Figma"</figcaption>
|
||||
</figure>
|
||||
<p>Je ne suis pas un graphiste et ca se voit '^^.</p>
|
||||
<p>Je pense que comme il me reste un peu de temps aujourd'hui, je vais faire un peu de documentation de la partie récupèration d'images. En effet, je pense que je n'aurai plus besoin de changer grand chose à ce niveau. Mais je ne ferai pas la partie analyse fonctionnelle car l'interface n'est clairement pas terminée.</p>
|
||||
<p>En fait j'avais oublié mais j'ai eu un rendez vous médical du coup je n'ai pas eu trop le temps de faire la doc que je voulais. Mais au moins je pense avoir finit mon travail sur le poster et le abstract en Anglais qui sont les deux gros livrables à venir.</p>
|
||||
@@ -1864,13 +2153,78 @@ C'était assez frustrant d'avoir perdu deux jours de travail mais on va faire av
|
||||
<p>Donc aujourd'hui je ne vais pas trop avancer sur le code et vraiment me focus sur la documentation de la récupèration d'images. Je pense que je vais aussi ajouter la partie calibration à la documentation. Je pense que c'est important que je prenne le temps maintenant car sinon le prof aura l'impression que ca n'a pas trop avancé depuis la dernière fois.</p>
|
||||
<p>Et puis je pense que la partie calibration et récupèration d'images ne va pas trop changer et la partie calibration encore moins.</p>
|
||||
<p>La partie anglaise je fais la revoir un peu mais je l'avais déja faite pendant les premiers jours alors ca devrait aller.</p>
|
||||
<p>Pour le rendu il nous était demandé de fournir un fichier PDF avec tout dedans avec une table des matières notre code source etc...</p>
|
||||
<p>Pour ce faire j'ai du changer le mkdocs.yml et installer des packages.</p>
|
||||
<p>Voici les changements :: </p>
|
||||
<pre><code class="language-yml">site_name: Documentation Track Trends
|
||||
site_author: Rohmer Maxime
|
||||
copyright: ©CFPTI Tech2
|
||||
theme:
|
||||
name: material
|
||||
palette:
|
||||
# Palette toggle for light mode
|
||||
- media: "(prefers-color-scheme: light)"
|
||||
scheme: default
|
||||
toggle:
|
||||
icon: material/brightness-7
|
||||
name: Switch to dark mode
|
||||
|
||||
# Palette toggle for dark mode
|
||||
- media: "(prefers-color-scheme: dark)"
|
||||
scheme: slate
|
||||
toggle:
|
||||
icon: material/brightness-4
|
||||
name: Switch to light mode
|
||||
markdown_extensions:
|
||||
- attr_list
|
||||
- md_in_html
|
||||
- pymdownx.highlight
|
||||
plugins:
|
||||
- glightbox
|
||||
- search
|
||||
- img2fig
|
||||
- with-pdf:
|
||||
cover_subtitle: Vroum Vroum
|
||||
enabled_if_env: ENABLE_PDF_EXPORT
|
||||
- annexes-integration:
|
||||
annexes: # Required (at least 1)
|
||||
- ConfigurationTool.cs: Code/ConfigurationTool.cs # An path to an annex with its title
|
||||
- DriverGapToLeaderWindow.cs: Code/DriverGapToLeaderWindow.cs # An path to an annex with its title
|
||||
- DriverPositionWindow.cs: Code/DriverPositionWindow.cs # An path to an annex with its title
|
||||
- F1TVEmulator.cs: Code/F1TVEmulator.cs # An path to an annex with its title
|
||||
- Program.cs: Code/Program.cs # An path to an annex with its title
|
||||
- Window.cs: Code/Window.cs # An path to an annex with its title
|
||||
- DriverData.cs: Code/DriverData.cs # An path to an annex with its title
|
||||
- DriverLapTimeWindow.cs: Code/DriverLapTimeWindow.cs # An path to an annex with its title
|
||||
- DriverSectorWindow.cs: Code/DriverSectorWindow.cs # An path to an annex with its title
|
||||
- Form1.cs: Code/Form1.cs # An path to an annex with its title
|
||||
- Reader.cs: Code/Reader.cs # An path to an annex with its title
|
||||
- Zone.cs: Code/Zone.cs # An path to an annex with its title
|
||||
- DriverDrsWindow.cs: Code/DriverDrsWindow.cs # An path to an annex with its title
|
||||
- DriverNameWindow.cs: Code/DriverNameWindow.cs # An path to an annex with its title
|
||||
- DriverTyresWindow.cs: Code/DriverTyresWindow.cs # An path to an annex with its title
|
||||
- OcrImage.cs: Code/OcrImage.cs # An path to an annex with its title
|
||||
- Settings.cs: Code/Settings.cs # An path to an annex with its title
|
||||
- recoverCookiesCSV.py: Code/recoverCookiesCSV.py # An path to an annex with its title
|
||||
</code></pre>
|
||||
<p>Je remercie Monsieur Briard le sultan officiel de Mkdocs de la classe de m'avoir aidé pour cette partie et avoir créé un plugin qui me permet de mettre mon code source directement dans le pdf.</p>
|
||||
<p>Bon au final j'ai quand même changé mon poster</p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/PosterV8.png"><img alt="" poster="" src="./Images/Figma/PosterV8.png" v8""=""/></a>
|
||||
<figcaption>"Poster V8"</figcaption>
|
||||
</figure>
|
||||
<p>Mais je suis trop attaché à l'ancien concept alors je vais plutôt utiliser ca :</p>
|
||||
<figure class="figure-image">
|
||||
<a class="glightbox" href="./Images/Figma/PosterV9.png"><img alt="" poster="" src="./Images/Figma/PosterV9.png" v9""=""/></a>
|
||||
<figcaption>"Poster V9"</figcaption>
|
||||
</figure>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<footer class="md-footer">
|
||||
<nav aria-label="Footer" class="md-footer__inner md-grid">
|
||||
<a aria-label="Previous: Cahier des charges" class="md-footer__link md-footer__link--prev" href="../CahierDesCharges/" rel="prev">
|
||||
<a aria-label="Previous: Cahier des charges" class="md-footer__link md-footer__link--prev" href="CahierDesCharges.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>
|
||||
@@ -1883,7 +2237,7 @@ C'était assez frustrant d'avoir perdu deux jours de travail mais on va faire av
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a aria-label="Next: ConfigurationTool.cs" class="md-footer__link md-footer__link--next" href="../Code/ConfigurationTool/" rel="next">
|
||||
<a aria-label="Next: ConfigurationTool.cs" class="md-footer__link md-footer__link--next" href="Code/ConfigurationTool.html" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
@@ -1917,7 +2271,7 @@ C'était assez frustrant d'avoir perdu deux jours de travail mais on va faire av
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script id="__config" type="application/json">{"base": ".", "features": [], "search": "assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
||||
<script src="assets/javascripts/bundle.48f2be22.min.js"></script>
|
||||
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
|
||||
</html>
|
||||