\documentclass[../mainDocument.tex]{subfiles}
\begin{document}
	\section{Use-Cases}	
	Dieser Abschnitt basiert auf \cite{CrESt} und den darin verwendeten	Bezeichnungen und beschriebenen Use-Cases.
	
	Während der Entwicklung sollte auf größtmögliche Konformität mit dem
	bestehenden Projekt der Assystem geachtet werden.
	\begin{figure}
	\caption{Use Case Diagramm 2. Version}
	\input{tikzImgs/uc_diagram_2.tex}
	\end{figure}
	\clearpage
	
	\subsection*{UC - 10 Status ausgeben}\label{UC:showStatus}
	\addcontentsline{toc}{subsection}{\nameref{UC:showStatus}}
	
	Dieser Use-Case dient dazu, als Operator jederzeit \gls{IPD} und \gls{PS} sowie \gls{LV}, \gls{FV} und potentielle Kolonnenkandidaten (\gls{PFV}) einsehen zu können.
	Weitere Informationen sind in Tabelle~\ref{tab:UC:showStatus} zu finden.
	
	\begin{table}[H] \centering
		\rowcolors{1}{light-gray}{white}
		\begin{tabularx}{\textwidth}{|c|X|} \hline
			\tabHead{Id} & 
			\tabBody{\nameref{UC:showStatus}} \\ \hline
			
			\tabHead{Vorbed.} & 
			\tabBody{Mindestens ein Fahrzeug ist eingeschaltet.} \\ \hline
			
			\tabHead{Nachbed.} & 
			\tabBody{Ausgeben des aktuellen Status verändert während der Übertragung nicht die Operation der Fahrzeuge.} \\ \hline
			
			\tabHead{Akteure} & 
			\tabBody{Operator, \gls{GV}} \\ \hline
			
			\tabHead{Ablauf} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item Fahrzeug(e) wird/werden eingeschaltet.
					\item Fahrzeuge beginnen mit Übertragung von Position, Geschwindigkeit und Kolonnenstatus.
				\end{enumerate}
			} \\ \hline
			
			\tabHead{für \gls{AS}} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \nameref{AS:min}
					\item \nameref{AS:setupDist}
					\item \nameref{AS:stopCar}
					\item \nameref{AS:changeDist}
					\item \nameref{AS:asynStart-2}
					\item \nameref{AS:circle}
					\item \nameref{AS:changeSpeed}
					\item \nameref{AS:RCcontrol}
				\end{enumerate}
			} \\ \hline
			
			%\tabHead{nutzt \gls{RQ}} &
			%\tabBody{
				%\begin{enumerate}[leftmargin=*]
					%\item Hier stehen Anforderungen mit **nameref**
				%\end{enumerate}
			%}\\ \hline
			
		\end{tabularx}
		\caption{Details zum UC - 10 Status ausgeben} \label{tab:UC:showStatus}
	\end{table}
	
	\subsection*{UC - 20 Kolonnenfahren}\label{UC:runPlatoon}
	%Unter Use Cases wie UC 31: Abstand halten siehe CrESt?
	\addcontentsline{toc}{subsection}{\nameref{UC:runPlatoon}}
	
	Dieser Use-Case dient dazu, das Fahren einer bereits existierende Kolonne
	auf einer Fahrbahn in festgelegten Abständen und mit einer festgelegten
	Geschwindigkeit zu organisieren.
	%Das \gls{LV} kann dabei neue \gls{IPD} und \gls{PS}-Werte für die Kolonne festlegen.
	%Diese Werte umzusetzen heißt, dass die Fahrzeuge dafür sorgen, dass sie selbstständig die Geschwindigkeit und Abstände fahren,
	%die vom \gls{LV} erwartet werden. Beide Werte müssen so schnell wie möglich umgesetzt werden,
	%wobei erst die Entfernung und dann die Geschwindigkeit angepasst wird.
	%Jedes Fahrzeug ist stets damit beschäftigt, so dicht wie möglich seinen Abstand zum voranfahrenden Fahrzeug
	%und seine Geschwindigkeit an \gls{IPD} und \gls{PS} anzupassen und die Differenz dazwischen zu minimieren.
	Weitere Informationen sind in Tabelle~\ref{tab:UC:runPlatoon} zu finden.
	
	\begin{table}[H] \centering
		\rowcolors{1}{light-gray}{white}
		\begin{tabularx}{\textwidth}{|c|X|} \hline
			\tabHead{Id} & 
			\tabBody{\nameref{UC:runPlatoon}} \\ \hline
			
			\tabHead{Vorbed.} & 
			\tabBody{Eine existierende Kolonne steht oder fährt auf einer Fahrbahn.} \\ \hline
			
			\tabHead{Nachbed.} & 
			\tabBody{Die Kolonne fährt weiter auf der Fahrbahn} \\ \hline
			
			\tabHead{Akteure} & 
			\tabBody{\gls{LV}, mindestens ein \gls{FV}} \\ \hline
			
			\tabHead{Ablauf} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \gls{LV} prüft seinen Abstand und relative Geschwindigkeit zu voraus befindlichen Objekten auf der Strecke.
					\item \gls{LV} legt neue Werte für die \gls{IPD} und den \gls{PS} fest.
					\item Jedes \gls{FV} passt seinen Abstand zum voranfahrenden Fahrzeug an die \gls{IPD} an und setzt die \gls{PS} um.\footnotemark
					\item Jedes \gls{FV} übermittelt die geänderten Werte.
					\item Jedes \gls{FV} hält die vorgegebenen Werte bis vom \gls{LV} neue Werte vorgegeben werden, indem die Differenz zwischen dem \gls{IPD} und der eigenen Distanz zum voranfahrenden Fahrzeug und die Differenz \gls{PS} und der eigenen Geschwindigkeit durch Geschwindigkeitskorrekturen minimiert wird.
				\end{enumerate}
			} \\ \hline
			
			\tabHead{für \gls{AS}} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \nameref{AS:min}
					\item \nameref{AS:setupDist}
					\item \nameref{AS:stopCar}
					\item \nameref{AS:changeDist}
					\item \nameref{AS:asynStart-2}
					\item \nameref{AS:circle}
					\item \nameref{AS:changeSpeed}
					\item \nameref{AS:RCcontrol}  
				\end{enumerate}
			} \\ \hline
			
			%\tabHead{nutzt \gls{RQ}}  &
			%\tabBody{
				%\begin{enumerate}[leftmargin=*]
					%\item Hier stehen Anforderungen mit **nameref**
				%\end{enumerate}
			%}\\ \hline
			
		\end{tabularx}
		\caption{Details zum UC - 20 Kolonnenfahren} \label{tab:UC:runPlatoon}
	\end{table}
	\footnotetext{{Details dazu folgen in der Modulbeschreibung zum (C)ACC.}}
	
	\subsection*{UC - 30 Kolonne beitreten}\label{UC:joinPlatoon}
	\addcontentsline{toc}{subsection}{\nameref{UC:joinPlatoon}}
	Dieser Use-Case dient dazu, weitere Fahrzeuge in eine Kolonne aufzunehmen. Gegebenenfalls wird vorher eine Kolonne erstellt, falls noch keine existiert.
	Mehrere Fahrzeuge (mind. 2) erkennen sich gegenseitig und beginnen zu kommunizieren.
	Dabei können nur Fahrzeuge, die direkt hinter der Kolonne fahren, in diese aufgenommen werden.
	Weitere Informationen sind in Tabelle~\ref{tab:UC:joinPlatoon} zu finden.
	\begin{table}[H] \centering
		\rowcolors{1}{light-gray}{white}
		\begin{tabularx}{\textwidth}{|c|X|} \hline
			\tabHead{Id} & 
			\tabBody{\nameref{UC:joinPlatoon}} \\ \hline
			
			\tabHead{Vorbed.} & 
			\tabBody{
			\begin{enumerate}
			\item[a)] Es existieren mindestens 2 Fahrzeuge, die eine Kolonne bilden wollen.
			\item[b)] Ein einzelnes Fahrzeug (\gls{PFV}) fährt hinter einer bestehenden Kolonne (ein \gls{LV} und mindestens ein \gls{FV}) und will dieser beitreten.
			\end{enumerate}} \\ \hline
			
			\tabHead{Nachbed.} & 
			\tabBody{
			\begin{enumerate}
			\item[a)] Die Fahrzeuge kommunizieren miteinander und die Rollenverteilung hat statt gefunden.
			\item[b)] Das Fahrzeug fährt als \gls{FV} an hinterster Position als Teil der Kolonne.
			\end{enumerate}} \\ \hline
			
			\tabHead{Akteure} & 
			\tabBody{
			\begin{enumerate}
			\item[a)] Operator, 2 \gls{PFV}
			\item[b)] \gls{LV}, mindestens ein \gls{FV}, \gls{PFV}
			\end{enumerate}} \\ \hline
			
			\tabHead{Ablauf} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item[a)] Es existiert noch keine Kolonne:
					\begin{enumerate}
					\item[1.] Die \gls{PFV} erhalten die Ausgabe, sich zu einer Kolonne zusammenzuschließen.
					\item[2.] Die Kommunikation zwischen den \gls{PFV} wird aufgenommen.
					\item[3.] Die \gls{PFV} legen selbständig fest, welches der Fahrzeuge das \gls{LV} und welches das \gls{FV} wird.
					\item[4.] Der Kolonnenstatus wird im Log festgehalten.
					\item[5.] Die nun erstellte Kolonne kann mit \nameref{UC:showStatus} überprüft werden.
				\end{enumerate}
					\item[b)] Es existiert bereits eine Kolonne.
					\begin{enumerate}
					\item[1.] \gls{PFV} sendet seinen Beitrittswunsch als eine Nachricht.
					\item[2.] \gls{LV} sendet Antwort mit der Kennung\footnote{In der Gruppe wurden QR Codes als Kennung diskutiert. Dies gehört jedoch nicht in die Use Case Beschreibung.} des letzten \gls{FV}.
					\item[3.] \gls{PFV} prüft die Kennung des voranfahrenden Fahrzeugs.			
					\begin{enumerate}
						\item[a)] Kennung passt, dann weiter mit \ref{it:afterIdMatch}.
						\item[b)] \label{it:idMissmatch}Kennung passt nicht, dann Abbruch.
					\end{enumerate}
					\item[4.] \label{it:afterIdMatch}\gls{PFV} erhält die nächsten \gls{PS} und \gls{IPD} vom \gls{LV}.
					\item[5.] \gls{PFV} passt den Abstand zum letzen \gls{FV} an.
					\item[6.] \gls{PFV} passt die eigene Geschwindigkeit an.
					\item[7.] \gls{PFV} bestätigt erfolgreiche Umsetzung in einer Nachricht.
					\item[8.] \gls{LV} passt sein Wissen über die Kennung des letzen \gls{FV} an.
					\item[9.] Der Kolonnenstatus wird im Log festgehalten.
				\end{enumerate}
				\end{enumerate}
			} \\ \hline
			
			\tabHead{alt. Ende} &
			\tabBody{Abbruch in \ref{it:idMissmatch} - Fahrzeug wird nicht in die Kolonne aufgenommen.} \\ \hline
			
			\tabHead{für \gls{AS}} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \nameref{AS:min}
					\item \nameref{AS:setupDist}
					\item \nameref{AS:stopCar}
					\item \nameref{AS:changeDist}
					\item \nameref{AS:asynStart-2}
					\item \nameref{AS:circle}
					\item \nameref{AS:changeSpeed}
					\item \nameref{AS:RCcontrol}
				\end{enumerate}
			} \\ \hline
			
			%\tabHead{nutzt \gls{RQ}}  &
			%\tabBody{
				%\begin{enumerate}[leftmargin=*]
					%\item Hier stehen Anforderungen mit **nameref**
				%\end{enumerate}
			%}\\ \hline
			
		\end{tabularx}
		\caption{Details zum UC - 30 Kolonne beitreten} \label{tab:UC:joinPlatoon}
	\end{table}
	
	\subsection*{UC - 40 Kolonne verlassen}\label{UC:leavePlatoon}
	\addcontentsline{toc}{subsection}{\nameref{UC:leavePlatoon}}
	
	Dieser Use-Case dient dazu, als \gls{FV} aus der Kolonne auszutreten. Dabei können nur \gls{FV}, welche an letzter Stelle der Kolonne fahren, diese regulär verlassen.
	Falls sich in der Kolonne nur noch das \gls{LV} und ein \gls{FV} befinden, wird die Kolonne aufgelöst.
	Weitere Informationen sind in Tabelle~\ref{tab:UC:leavePlatoon} zu finden.
	
	\begin{table}[H] \centering
		\rowcolors{1}{light-gray}{white}
		\begin{tabularx}{\textwidth}{|c|X|} \hline
			\tabHead{Id} & 
			\tabBody{\nameref{UC:leavePlatoon}} \\ \hline
			
			\tabHead{Vorbed.} & 
			\tabBody{Eine Kolonne existiert. Fahrzeug fährt an letzter Position.} \\ \hline
			
			\tabHead{Nachbed.} & 
			\tabBody{
			Fahrzeug ist nicht mehr in der Kolonne. 
			\gls{LV} hat aktualisierte Platoon-Statusdaten.} \\ \hline
			
			\tabHead{Akteure} & 
			\tabBody{\gls{LV}, \gls{PFV}, \gls{FV}} \\ \hline
			
			\tabHead{Ablauf} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item Letztes \gls{FV} signalisiert Austrittswunsch und wird zu einem \gls{PFV}
					\item \gls{LV} aktualisiert Platoon-Statusdaten
					\item \gls{LV} signalisiert \gls{PFV}, dass es nicht mehr Teil des Platoons ist
					\item Der Kolonnenstatus wird im Log festgehalten.
					\item \gls{PFV} schert aus
					\item \label{it:disperse} Falls nur noch das \gls{LV} in der Kolonnen ist, löst es die Kolonne auf.
					\item Der Kolonnenstatus wird im Log festgehalten.
				\end{enumerate}
			} \\ \hline
			
			\tabHead{alt. Ende} &
			\tabBody{Weitere Schritte in \ref{it:disperse} - Kolonne wurde aufgelöst. Alle teilnehmenden Fahrzeuge treffen ihre Entscheidungen nun selbstständig.} \\ \hline
			
			\tabHead{für \gls{AS}} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \nameref{AS:stopCar}
				\end{enumerate}} \\ \hline
			
			%\tabHead{nutzt \gls{RQ}}  &
			%\tabBody{
				%\begin{enumerate}[leftmargin=*]
					%\item \nameref{RQ:leaveMsg}
					%\item \nameref{RQ:mngPlatState}
				%\end{enumerate}
			%}\\ \hline
			
		\end{tabularx}
		\caption{Details zum UC - 40 Kolonne verlassen} \label{tab:UC:leavePlatoon}
	\end{table}
	
	\subsection*{UC - 50 Kolonnendaten ändern}\label{UC:changePlatoonData}
	\addcontentsline{toc}{subsection}{\nameref{UC:changePlatoonData}}
	Weitere Information sind in Tabelle~\ref{tab:UC:changePlatoonData} zu finden.
	\begin{table}[H] \centering
		\rowcolors{1}{light-gray}{white}
		\begin{tabularx}{\textwidth}{|c|X|} \hline
			\tabHead{Id} & 
			\tabBody{\nameref{UC:changePlatoonData}} \\ \hline
			
			\tabHead{Vorbed.} & 
			\tabBody{} \\ \hline
			
			\tabHead{Nachbed.} & 
			\tabBody{} \\ \hline
			
			\tabHead{Akteure} & 
			\tabBody{Operator, \gls{LV}} \\ \hline
			
			\tabHead{Ablauf} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item	Operator sendet neue IPD und PS Werte an das \gls{LV}.
					\item Die Kolonne f\"ahrt mit den \"ubermittelten IPD und PS Werten. 
				\end{enumerate}
			} \\ \hline
			
			\tabHead{für \gls{AS}} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \nameref{AS:changeDist}
				\end{enumerate}
			} \\ \hline
			
			%\tabHead{nutzt \gls{RQ}}  &
			%\tabBody{
				%\begin{enumerate}[leftmargin=*]
					%\item Hier stehen Anforderungen mit **nameref**
				%\end{enumerate}
			%}\\ \hline
			
		\end{tabularx}
		\caption{Details zum UC - 50 Kolonnendaten ändern} \label{tab:UC:changePlatoonData}
	\end{table}
	
	\subsection*{UC - 60 Geschwindigkeit ändern}\label{UC:changeSpeed}
	\addcontentsline{toc}{subsection}{\nameref{UC:changeSpeed}}
	Weitere Information sind in Tabelle~\ref{tab:UC:changeSpeed} zu finden.
	\begin{table}[H] \centering
		\rowcolors{1}{light-gray}{white}
		\begin{tabularx}{\textwidth}{|c|X|} \hline
			\tabHead{Id} & 
			\tabBody{\nameref{UC:changeSpeed}} \\ \hline
			
			\tabHead{Vorbed.} & 
			\tabBody{} \\ \hline
			
			\tabHead{Nachbed.} & 
			\tabBody{} \\ \hline
			
			\tabHead{Akteure} & 
			\tabBody{Operator, ein nicht \gls{FV}} \\ \hline
			
			\tabHead{Ablauf} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item	Operator sendet eine neue Sollgeschwindigkeit an das Fahrzeug.
					\item Das Fahrzeug passt seine Geschwindigkeit an die Sollgeschwindigkeit an, sofern der Sicherheitsabstand nach vorne eingehalten wird.
				\end{enumerate}
			} \\ \hline
			
			\tabHead{für \gls{AS}} &
			\tabBody{
				\begin{enumerate}[leftmargin=*]
					\item \nameref{AS:changeSpeed}
				\end{enumerate}
			} \\ \hline
			
			%\tabHead{nutzt \gls{RQ}}  &
			%\tabBody{
				%\begin{enumerate}[leftmargin=*]
					%\item Hier stehen Anforderungen mit **nameref**
				%\end{enumerate}
			%}\\ \hline
			
		\end{tabularx}
		\caption{Details zum UC - 60 Geschwindigkeit ändern} \label{tab:UC:changeSpeed}
	\end{table}
	
\end{document}