diff options
| author | Mattias Uvesten <matuv053@student.liu.se> | 2019-12-02 21:27:21 +0100 |
|---|---|---|
| committer | Mattias Uvesten <matuv053@student.liu.se> | 2019-12-02 21:27:21 +0100 |
| commit | cf76f528129877b94988c38d14daced605cbaa71 (patch) | |
| tree | 832985d93d096caa9faf5a24839cbe6c88d9c062 /Dokument/Teknisk Dokumentation/appendix/02-funktion.tex | |
| parent | 34d01a5dc128f3a1819c36b7f9e93d07532fcbdb (diff) | |
| parent | dfe52de86d600654343968fea54a189f1ec9e8cc (diff) | |
| download | tfyy51-cf76f528129877b94988c38d14daced605cbaa71.tar.gz | |
Merge branch 'master' of https://gitlab.liu.se/vehsys/tfyy51/yc4_2019
Diffstat (limited to 'Dokument/Teknisk Dokumentation/appendix/02-funktion.tex')
| -rw-r--r-- | Dokument/Teknisk Dokumentation/appendix/02-funktion.tex | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex b/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex index e69de29..20313af 100644 --- a/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex +++ b/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex @@ -0,0 +1,120 @@ +\section{Funktioner och filer} + +\subsection{System} +\label{app:funktioner och filer:system} + +\texttt{choose\_position(position, segment, track, track\_len)} - Körs när en +givare passerats. Gör en bedömning om en givare (eller flera) har missats genom +att kontrollera vilken givare som är närmast den nuvarande uppskattade position +och kompenserar om en givare bedöms ha missats. Se \ref{sec:missade givare} + +\texttt{clamp(n, m, M)} - En hjälpfunktion som returnerar $n$ om $m < n < M$, +$m$ om $n < m$ och $M$ om $n > M$. + +\texttt{detect\_missed(position, segment, track, track\_len)} - Returnerar true +om position ligger utanför det nuvarande segmentet. + +\texttt{do\_boot(car, boot)} - Anropas en gång per programcykel i den så kallade +boostrap-fasen. Se \ref{sec:systembeskrivning:uppstart} för information. + +\texttt{do\_car(car, t, displa\_data, boot)} - Anropas en gång per programcykel. +Se \ref{sec:systembeskrivning:korning} och EN ANNAN DEL AV TEXTEN (vadå?) för +information om hur en programcykel ser ut och NÅGOT MER (vadå?). + +\texttt{do\_gov(car)} - Anropas varje gång en givare passerats. Vid målgivaren +jämförs referenstiden och den förra varvtiden och car.constant anpassas efter +differensen mellan dem. Om differensen är högre ändras car.constant mer, och +vice versa om differensen är låg. Vid givare 5 och 8 jämförs referenstiden och +en uppskattning av hur lång tid det nuvarande varvet troligen kommer ta. Se +\ref{sec:systembeskrivning:governor} för mer information. + +\texttt{fit\_percents(percents, lap\_time, seg\_times)} - Anropas vid varje nytt +varv. Räknar ut den procentuella tiden varje segment tog det förra varvet och +sparar medelvärdet mellan den förra procentsatsen och den nya, uträknade +procentsatsen. Procentsatsen normeras sedan så summan är 1 (100%). + +\texttt{format\_seg\_times(car)} - Anropas när körningen avslutas. Returnerar +den genomsnittliga tiden för varje segment. + +\texttt{get\_aprox\_v(cur\_seg, car)} - Anropas varje programcykel. Uppskattar +bilens nuvarande hastighet genom att dividera den senast uppmätta segmentstiden +med segmentets längd. + +% \texttt{get\_new\_u(new\_v, seg\_constant} - FLYTTA BERÄKNINGEN TILL DO\_CAR, +% BEHÖVER INTE VARA EN EGEN FUNKTION + +\texttt{get\_new\_v(position, list)} - Anropas varje programcykel. Söker igenom +bankartan och returnerar värdet v som matchar position. + +\texttt{get\_position(aprox\_v, prev\_p, delta\_t)} - Anropas varje +programcykel. Räknar ut hur långt bilen rört sig sedan senaste programcykeln. + +% \texttt{get\_seg\_constant(position, lap\_constants, track, track\_len)} - TA +% BORT + +\texttt{get\_time\_as\_string(millis)} - Omvandlar en mängd millisekunder till +formatet "mm:ss.s". Till exempel omvandlas 1250 ms till "00:01.3" och 11240 till +"00:11.2". + +\texttt{main.m} - Huvudskriptet som startar hela systemet. Det script som +programmet ligger i. I main.m ligger alla funktioner. Det är denna fil som ska +startas vid systemuppstart, se \ref{app:handhavande} + +\subsection{Display} +\label{app:funktioner och filer:display} + +\texttt{bar\_graph(direction, no, x1, x2, y1, y2, start\_value, end\_value, +type, pattern)} - Skapar ett stapeldiagram med ett hörn i \texttt{(x1, y1)} och ett +diagonellt hörn i \texttt{(x2, y2)}. \texttt{direction} är en av 'O', 'U', 'L' och 'R' och +bestämmer åt vilket håll "upp" är på stapeln. 'O' står för upp ('oben' på +tyska), 'U' står för ner ('unter'), 'L' står för vänster ('links') och 'R' står +för höger ('rechts'). Värdet stapeldiagrammet ska visa specifieras med +\texttt{update\_bar\_graph}. \texttt{start\_value} och \texttt{end\_value} +bestämmer vad som ska vara noll- respektive maxvärde för stapeldiagrammet. +\texttt{no} är stapeldiagrammets nummer och behöver specifieras när +stapeldiagrammets värde ska uppdateras. \texttt{type} sätts till 0 för en enkel stapel +och 1 för en stapel inuti en ram. + +\texttt{clear\_display()} - Rensar displayen. + +\texttt{continue\_line(x2, y2)} - Fortsätter en linje från den senast specifierade +linjens slut till \texttt{(x2, y2)}. + +\texttt{draw\_line(x1, y1, x2, y2)} - Ritar en linje mellan \texttt{(x1, y1)} och +\texttt{(x2, y2)}. + +\texttt{key(x1, y1, x2, y2, down\_code, up\_code, just, text)} - Skapar en +tryckbar knapp (till skillnad från en omkopplare, se \texttt{toggle()}) med +diagonella hörn i \texttt{(x1, y1)} och \texttt{(x1, y1)} och texten \texttt{text}. Hur +texten justeras beror på \texttt{just} där 'R' gör texten högerjusterad ('right'), 'C' +gör texten centerjusterad och 'L' gör texten vänsterjusterad ('left'). Om +knappen trycks ned läggs \texttt{down\_code} i displayens interna minne och om knappen +släpps läggs \texttt{up\_code} i displayens interna minne. + +\texttt{point(x1, y1)} - Ritar en punkt i \texttt{(x1, y1)}. Punktens storlek kan +anpassas med \texttt{set\_point\_size}. + +\texttt{put\_text(x, y, justification, text)} - Skriver texten \texttt{text} i +\texttt{(x, y)}. Hur texten justeras beror på \texttt{justification} där 'R' gör +texten högerjusterad ('right'), 'C' gör texten centerjusterad och 'L' gör texten +vänsterjusterad ('left'). Om \texttt{justification} är 'R' bestämmer \texttt{x} +och \texttt{x} textens övre högra koordinat, om \texttt{justification} är 'C' +bestämmer \texttt{x} och \texttt{x} textens mittre koordinat och om +\texttt{justification} är 'L' bestämmer \texttt{x} och \texttt{y} textens övre +vänstra koordinat. + +set\_point\_size(n1, n2) - Sätter storleken på punkter och linjer som ritas ut. +\texttt{n1} är storleken i x-led (mellan 1 och 15 pixlar) och \texttt{n2} är +storleken i y-led (mellan 1 och 15 pixlar). + +\texttt{toggle(x1, y1, x2, y2, down\_code, up\_code, just, text)} - Skapar en +tryckbar omkopplare (till skillnad från en knapp, se \texttt{key()}) med +diagonella hörn i \texttt{(x1, y1)} och \texttt{(x1, y1)} och texten +\texttt{text}. Hur texten justeras beror på *just* där 'R' gör texten +högerjusterad ('right'), 'C' gör texten centerjusterad och 'L' gör texten +vänsterjusterad ('left'). Om knappen aktiveras läggs \texttt{down\_code} i +displayens interna minne och om knappen avaktiveras läggs \texttt{up\_code} i +displayens interna minne. + +\texttt{update\_bar\_graph(num, val)} - Skickar värdet \texttt{val} till +stapeldiagram *num*. |
