From 23925ff216782f6014cf69c055af2b0b8b9b3b1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= <gusso230@student.liu.se>
Date: Sun, 1 Dec 2019 19:27:19 +0100
Subject: Formatera funktioner och rensa

---
 .../Teknisk Dokumentation/appendix/02-funktion.tex | 355 ++++++---------------
 1 file changed, 95 insertions(+), 260 deletions(-)

(limited to 'Dokument/Teknisk Dokumentation/appendix/02-funktion.tex')

diff --git a/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex b/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex
index 45d061d..20313af 100644
--- a/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex	
+++ b/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex	
@@ -2,284 +2,119 @@
 
 \subsection{System}
 \label{app:funktioner och filer:system}
-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{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}
 
-clamp(n, m, M)
+\texttt{clamp(n, m, M)} - En hjälpfunktion som returnerar $n$ om $m < n < M$,
+$m$ om $n < m$ och $M$ om $n > M$.
 
-En hjälpfunktion som returnerar n om $m < n < M$, annars m om $n < m$, annars M
-om $n > M$.
+\texttt{detect\_missed(position, segment, track, track\_len)} - Returnerar true
+om position ligger utanför det nuvarande segmentet.
 
-detect\_missed(position, segment, track, track\_len)
+\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.
 
-Returnerar true om position ligger utanför det nuvarande segmentet.
+\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å?).
 
-do\_boot(car, boot)
+\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.
 
-Anropas en gång per programcykel i den så kallade boostrap-fasen. Se 
-\ref{sec:systembeskrivning:uppstart} för 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%).
 
-do\_car(car, t, displa\_data, boot)
+\texttt{format\_seg\_times(car)} - Anropas när körningen avslutas. Returnerar
+den genomsnittliga tiden för varje segment.
 
-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{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.
 
-do\_gov(car)
+% \texttt{get\_new\_u(new\_v, seg\_constant} - FLYTTA BERÄKNINGEN TILL DO\_CAR,
+% BEHÖVER INTE VARA EN EGEN FUNKTION
 
-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{get\_new\_v(position, list)} - Anropas varje programcykel. Söker igenom
+bankartan och returnerar värdet v som matchar position.
 
-fit\_percents(percents, lap\_time, seg\_times)
+\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.
 
-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{get\_seg\_constant(position, lap\_constants, track, track\_len)} - TA
+% BORT
 
-format\_seg\_times(car)
+\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".
 
-Anropas när körningen avslutas. Returnerar den genomsnittliga tiden för varje
-segment.
-
-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.
-
-get\_new\_u(new\_v, seg\_constant
-
-FLYTTA BERÄKNINGEN TILL DO\_CAR, BEHÖVER INTE VARA EN EGEN FUNKTION
-
-get\_new\_v(position, list)
-
-Anropas varje programcykel. Söker igenom bankartan och returnerar värdet v som
-matchar position.
-
-get\_position(aprox\_v, prev\_p, delta\_t)
-
-Anropas varje programcykel. Räknar ut hur långt bilen rört sig sedan senaste
-programcykeln.
-
-get\_seg\_constant(position, lap\_constants, track, track\_len)
-
-TA BORT
-
-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".
-
-main.m
-
-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}
+\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}
-bar\_graph(direction, no, x1, x2, y1, y2, start\_value, end\_value, type, pattern):
-
-Skapar ett stapeldiagram med ett hörn i (*x1*, *y1*) och ett diagonellt
-hörn i (*x2*, *y2*). *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' på tyska), 'L' står för vänster
-('links') och 'R' står för höger ('rechts'). Värdet stapeldiagrammet ska
-visa specifieras med *update\_bar\_graph*. *start\_value* och
-*end\_value* bestämmer vad som ska vara noll- respektive maxvärde för
-stapeldiagrammet. *no* är stapeldiagrammets nummer och behöver
-specifieras när stapeldiagrammets värde ska uppdateras. *type* sätts
-till 0 för en enkel stapel och 1 för en stapel inuti en ram.
-
-box(x1, y1, x2, y2, n1)
-
-Ritar en rektangel med diagonella hörn i (*x1*, *y1*) och (*x2*, *y2*)
-och mönster-nummer *n1*.
-
-clear\_display()
-
-Rensa displayen.
-
-continue\_line(x2, y2)
-
-Fortsätt en linje från den senast specifierade linjens slut till (*x2*,
-*y2*).
-
-delete\_area(x1, y1, x2, y2)
-
-Ta bort (släck) alla pixlar i det rektangulära området mellan (*x1*,
-*y1*) och (*x2*, *y2*).
-
-draw\_line(x1, y1, x2, y2)
-
-Rita en linje mellan (*x1*, *y1*) och (*x2*, *y2*).
-
-draw rectangle(x1, y1, x2, y2)
-
-Rita en rektangel (ej ifylld) mellan (*x1*, *y1*) och (*x2*, *y2*).
-
-fill\_area(x1, y1, x2, y2)
-
-Tänd alla pixlar i det rektangulära området mellan (*x1*, *y1*) och
-(*x2*, *y2*).
-
-fill\_area\_with\_pattern(x1, y1, x2, y2, n1)
-
-Fyll det rektangulära området mellan (*x1*, *y1*) och (*x2*, *y2*) med
-mönster *n1*.
-
-fill\_display()
-
-Tänd alla pixlar på displayen.
-
-flashing\_area(x1, y1, x2, y2)
-
-Fyll det rektangulära området mellan (*x1*, *y1*) och (*x2*, *y2*) med
-blinkande pixlar. Blinkintervallet kan sättas med *set\_flashing\_time*.
-
-flashing\_area\_with\_pattern(x1, y1, x2, y2)
-
-Fyll det rektangulära området mellan (*x1*, *y1*) och (*x2*, *y2*) med
-blinkande pixlar i ett mönster. Blinkintervallet kan sättas med
-*set\_flashing\_time*.
-
-invert\_area(x1, y1, x2, y2)
-
-Tänd alla släckta pixlar och släck alla tända pixlar i det rektangulära
-området mellan (*x1*, *y1*) och (*x2*, *y2*).
-
-invert\_display()
-
-Tänd alla släcka pixlar och släck alla tända pixlar på hela displayen.
 
-key(x1, y1, x2, y2, down\_code, up\_code, just, text)
-
-Skapa en tryckbar knapp (till skillnad från en omkopplare, se
-*toggle(...)*) med diagonella hörn i (*x1*, *y1*) och (*x2*, *y2*) och
-texten *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 trycks ned läggs
-*down\_code* i displayens interna minne och om knappen släpps läggs
-*up\_code* i displayens interna minne.
-
-point(x1, y1)
-
-Rita en punkt i (*x1*, *y1*). Punktens storlek kan anpassas med
-*set\_point\_size*.
-
-put\_text(x, y, justification, text)
-
-Skriv ut texten *text* i (*x*, *y*). Hur texten justeras beror på
-*justification* där 'R' gör texten högerjusterad ('right'), 'C' gör
-texten centerjusterad och 'L' gör texten vänsterjusterad ('left'). Om
-*justification* är 'R' bestämmer *x* och *y* textens övre högra
-koordinat, om *justification* är 'C' bestämmer *x* och *y* textens
-mittre koordinat och om *justification* är 'L' bestämmer *x* och *y*
-textens övre vänstra koordinat.
-
-redraw\_bar\_graph(num)
-
-Tvinga stapeldiagram *num* att ritas om.
-
-remove\_flashing\_area(x1, y1, x2, y2)
-
-Ta bort blinkade pixlar i det rektangulära området mellan (*x1*, *y1*)
-och (*x2*, *y2*).
-
-request\_bar\_graph\_value(num)
-
-Lägg nuvarande värdet för stapeldiagram *num* i displayens interna
-minne.
-
-restore\_display\_from\_clipboard()
-
-Flytta innehållet från displayens urklipp till displayen.
-
-restore\_display\_from\_clipboard\_to\_point(x1, y1)
-
-Flytta innehållet från displayens urklipp till displayen med övre
-vänstra hörn i (*x1*, *y1*). Spara ett område med
-\_save\_area\_to\_clipboard(...).
-
-save\_area\_to\_clipboard(x1, y1, x2, y2)
-
-Kopiera innehållet i den rektangel mellan (*x1*, *y1*) och (*x2*, *y2*)
-till displayens urklipp. Återställ med
-*restore\_display\_from\_clipboard\_to\_point(...)*.
-
-save\_display\_to\_clipboard()
-
-Kopiera displayens nuvarande innehåll till displayens urklipp. Återställ
-med *restore\_display\_from\_clipboard()*.
-
-set\_display\_visible(visible)
-
-Sätt om displayen ska vara synlig (*visible* = true) eller om displayen
-ska vara osynlig (*visible* = false). Att displayen är osynlig innebär
-att innehållet inte syns men finns kvar i bakgrunden och kan visas igen
-om *set\_display\_visible(true)* skickas.
-
-set\_drawing\_mode(n1)
-
-Sätt displayens ritläge. *n1* = 1 innebär att pixlar slås på eller av
-(som vanligt) enligt kommandot som skickas, *n1* = 2 innebär att pixlar
-enbart slås av (som ett suddgummi) och *n1* = 3 innebär att pixlar
-inverteras (släckta pixlar slås på och tända pixlar stängs av)
-
-set\_flashing\_time(n1)
-
-Sätt intervallet blinkande objekt blinkar i. *n1* är ett intervall i
-tiondelar av en sekund mellan 0,1 sekunder och 1,5 sekunder.
-
-set\_line\_pattern(n1)
-
-Sätt mönstret linjer ritas ut med.
-
-set\_point\_size(n1, n2)
-
-Sätt storleken på punkter och linjer som ritas ut. *n1* är storleken i
-x-led (mellan 1 och 15 pixlar) och *n2* är storleken i y-led (mellan 1
-och 15 pixlar).
-
-set\_text\_flashing(n1)
-
-Sätt om ny text som skrivs ut ska blinka eller inte. *n1* = 1 slår på
-blinkande och *n1* = 2 stänger av blinkande.
-
-set\_text\_font(font\_num)
-
-Sätt typsnittet på ny text som skrivs ut. Se *REF*(vadå?) för information om de
-olika typsnitten.
-
-set\_text\_zoom(x\_scale, y\_scale)
-
-Sätt skalfaktorn för ny text som skrivs ut. *x\_scale* är skalfaktorn i
-x-led (mellan x1 och x8) och *y\_scale* är skalfaktorn i y-led (mellan
-x1 och x8).
-
-set\_touch\_sound\_response(state)
-
-Sätt om displayen ska göra ljud när knappar trycks ned. *state* = 1 slår
-på ljudet och *state* = 0 stänger av ljudet.
-
-toggle(x1, y1, x2, y2, down\_code, up\_code, just, text)
-
-Skapa en tryckbar omkopplare (till skillnad från en knapp, se
-*key(...)*) med diagonella hörn i (*x1*, *y1*) och (*x2*, *y2*) och
-texten *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 *down\_code*
-i displayens interna minne och om knappen avaktiveras läggs *up\_code* i
+\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.
 
-update\_bar\_graph(num, val)
-
-Skicka värdet *val* till stapeldiagram *num*.
+\texttt{update\_bar\_graph(num, val)} - Skickar värdet \texttt{val} till
+stapeldiagram *num*.
-- 
cgit v1.2.1

