\documentclass[../mainDocument.tex]{subfiles} \begin{document} \section{Use-Cases} \input{tikzImgs/uc_diagram.tex} %TO DO Reihenfolge ändern ??? \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 - Ausgeben des aktuellen Status} \label{tab:UC:showStatus} \end{table} \subsection*{UC - 20 Kolonne erstellen}\label{UC:createPlatoon} \addcontentsline{toc}{subsection}{\nameref{UC:createPlatoon}} Dieser Use-Case dient dazu, eine Kolonne zu erstellen. Mehrere Fahrzeuge ( mind. 2 ) erkennen sich gegenseitig und beginnen zu kommunizieren. Weitere Informationen sind in Tabelle~\ref{tab:UC:createPlatoon} zu finden. \begin{table}[H] \centering \rowcolors{1}{light-gray}{white} \begin{tabularx}{\textwidth}{|c|X|} \hline \tabHead{Id} & \tabBody{\nameref{UC:createPlatoon}} \\ \hline \tabHead{Vorbed.} & \tabBody{Es existieren mindestens 2 Fahrzeuge, die eine Kolonne bilden wollen.} \\ \hline \tabHead{Nachbed.} & \tabBody{Die Fahrzeuge kommunizieren miteinander und die Rollenverteilung hat statt gefunden.} \\ \hline \tabHead{Akteure} & \tabBody{Operator, 2 \gls{PFV}} \\ \hline \tabHead{Ablauf} & \tabBody{\begin{enumerate}[leftmargin=*] \item Die \gls{PFV} erhalten die Ausgabe, sich zu einer Kolonne zusammenzuschließen. \item Die Kommunikation zwischen den \gls{PFV} wird aufgenommen. \item Die \gls{PFV} legen selbständig fest, welches der Fahrzeuge das \gls{LV} und welches das \gls{FV} wird. \item Der Kolonnenstatus wird im Log festgehalten. \item Die nun erstellte Kolonne kann mit \nameref{UC:showStatus} überprüft werden. \end{enumerate}} \\ \hline \tabHead{für \gls{AS}} & \tabBody{\begin{enumerate}[leftmargin=*] \item \nameref{AS:circle} \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 - Kolonne erstellen} \label{tab:UC:createPlatoon} \end{table} \subsection*{UC - 30 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 - Kolonnenfahren} \label{tab:UC:runPlatoon} \end{table} \footnotetext{{Details dazu folgen in der Modulbeschreibung zum (C)ACC.}} \subsection*{UC - 40 Kolonne beitreten}\label{UC:joinPlatoon} \addcontentsline{toc}{subsection}{\nameref{UC:joinPlatoon}} Dieser Use-Case dient dazu, weitere Fahrzeuge in eine bereits existierende Kolonne aufzunehmen. 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{Ein einzelnes Fahrzeug (\gls{PFV}) fährt hinter einer bestehenden Kolonne (ein \gls{LV} und mindestens ein \gls{FV}) und will dieser beitreten.} \\ \hline \tabHead{Nachbed.} & \tabBody{Das Fahrzeug fährt als \gls{FV} an hinterster Position als Teil der Kolonne.} \\ \hline \tabHead{Akteure} & \tabBody{\gls{LV}, mindestens ein \gls{FV}, \gls{PFV}} \\ \hline \tabHead{Ablauf} & \tabBody{\begin{enumerate}[leftmargin=*] \item \gls{PFV} sendet seinen Beitrittswunsch als eine Nachricht. \item \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 \gls{PFV} prüft die Kennung des voranfahrenden Fahrzeugs. \begin{enumerate} \item Kennung passt, dann weiter mit \ref{it:afterIdMatch}. \item \label{it:idMissmatch}Kennung passt nicht, dann Abbruch. \end{enumerate} \item \label{it:afterIdMatch}\gls{PFV} erhält die nächsten \gls{PS} und \gls{IPD} vom \gls{LV}. \item \gls{PFV} passt den Abstand zum letzen \gls{FV} an. \item \gls{PFV} passt die eigene Geschwindigkeit an. \item \gls{PFV} bestätigt erfolgreiche Umsetzung in einer Nachricht. \item \gls{LV} passt sein Wissen über die Kennung des letzen \gls{FV} an. \item Der Kolonnenstatus wird im Log festgehalten. \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 - Kolonne beitreten} \label{tab:UC:joinPlatoon} \end{table} \subsection*{UC - 50 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. 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 Letzte \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 \end{enumerate}} \\ \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 - Kolonne verlassen} \label{tab:UC:leavePlatoon} \end{table} \subsection*{UC - 60 Kolonne auflösen}\label{UC:deletePlatoon} % in CrRESt stand dissolvePlatoon \addcontentsline{toc}{subsection}{\nameref{UC:deletePlatoon}} % in CrRESt stand dissolvePlatoon Dieser Use-Case dient dazu, eine existierende Kolonne aufzulösen, wenn \nameref{UC:leavePlatoon} eintritt und sich in der Kolonne nur noch das \gls{LV} und ein \gls{FV} befinden. Weitere Informationen sind in Tabelle~\ref{tab:UC:deletePlatoon} zu finden. \begin{table}[H] \centering \rowcolors{1}{light-gray}{white} \begin{tabularx}{\textwidth}{|c|X|} \hline \tabHead{Id} & \tabBody{\nameref{UC:deletePlatoon}} \\ \hline \tabHead{Vorbed.} & \tabBody{Ein Kolonne aus einem \gls{LV} und einem \gls{FV} existiert. } \\ \hline \tabHead{Nachbed.} & \tabBody{Kolonne wurde aufgelöst. Alle teilnehmenden Fahrzeuge treffen ihre Entscheidungen nun selbstständig.} \\ \hline \tabHead{Akteure} & \tabBody{LV, FV} \\ \hline \tabHead{Ablauf} & \tabBody{\begin{enumerate}[leftmargin=*] \item \gls{LV} sendet an das \gls{FV} die Information, die Kolonne zu verlassen. \item \gls{LV} löst Kolonne auf. \item Der Kolonnenstatus wird im Log festgehalten. \end{enumerate}} \\ \hline \tabHead{für \gls{AS}} & \tabBody{\begin{enumerate}[leftmargin=*] \item keine \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 - Kolonne auflösen} \label{tab:UC:deletePlatoon} \end{table} \subsection*{UC - 70 Fahrbahn folgen}\label{UC:laneKeeping} \addcontentsline{toc}{subsection}{\nameref{UC:laneKeeping}} Dieser Use-Case dient dazu, ein automatisch agierendes Fahrzeug auf einer vorgegeben Fahrbahn zu halten. Weitere Information sind in Tabelle~\ref{tab:UC:laneKeeping} zu finden. \begin{table}[H] \centering \rowcolors{1}{light-gray}{white} \begin{tabularx}{\textwidth}{|c|X|} \hline \tabHead{Id} & \tabBody{\nameref{UC:laneKeeping}} \\ \hline \tabHead{Vorbed.} & \tabBody{Ein Fahrzeug befindet sich auf einer Fahrbahn.} \\ \hline \tabHead{Nachbed.} & \tabBody{Das Fahrzeug befindet sich auf einem späteren Teil der Fahrbahn.} \\ \hline \tabHead{Akteure} & \tabBody{Ein allgemeines Fahrzeug (\gls{GV}).} \\ \hline \tabHead{Ablauf} & \tabBody{\begin{enumerate}[leftmargin=*] \item Das \gls{GV} fährt auf der Fahrbahn. \item Das \gls{GV} erkennt den Streckenverlauf. \item Das \gls{GV} passt seine Geschwindigkeit und seine Radstellung dem Streckenverlauf an. \end{enumerate}} \\ \hline \tabHead{für \gls{AS}} & \tabBody{\begin{enumerate}[leftmargin=*] \item \nameref{AS:circle} \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 - Fahrbahn folgen} \label{tab:UC:laneKeeping} \end{table} \subsection*{UC - 80 Abstand halten}\label{UC:distKeeping} \addcontentsline{toc}{subsection}{\nameref{UC:distKeeping}} Weitere Information sind in Tabelle~\ref{tab:UC:distKeeping} zu finden. \begin{table}[H] \centering \rowcolors{1}{light-gray}{white} \begin{tabularx}{\textwidth}{|c|X|} \hline \tabHead{Id} & \tabBody{\nameref{UC:distKeeping}} \\ \hline \tabHead{Vorbed.} & \tabBody{} \\ \hline \tabHead{Nachbed.} & \tabBody{} \\ \hline \tabHead{Akteure} & \tabBody{} \\ \hline \tabHead{Ablauf} & \tabBody{\begin{enumerate}[leftmargin=*] \item \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 - 80 Abstand halten} \label{tab:UC:distKeeping} \end{table} \subsection*{UC - 90 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{} \\ \hline \tabHead{Ablauf} & \tabBody{\begin{enumerate}[leftmargin=*] \item \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 - 90 Kolonnendaten ändern} \label{tab:UC:changePlatoonData} \end{table} \subsection*{UC - 100 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{} \\ \hline \tabHead{Ablauf} & \tabBody{\begin{enumerate}[leftmargin=*] \item \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 - 100 Geschwindigkeit ändern} \label{tab:UC:changeSpeed} \end{table} \end{document}