summaryrefslogtreecommitdiffstats
path: root/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Dokument/Teknisk Dokumentation/appendix/02-funktion.tex')
-rw-r--r--Dokument/Teknisk Dokumentation/appendix/02-funktion.tex120
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*.