Newer
Older
\documentclass[../mainDocument.tex]{subfiles}
\begin{document}
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
\begin{figure}
\caption{Use Case Diagramm 2. Version}
\input{tikzImgs/uc_diagram_2.tex}
\end{figure}
\clearpage
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
\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}
\subsection*{UC - 20 Kolonnenfahren}\label{UC:runPlatoon}
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
%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
\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
\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:
\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.
\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}
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
\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}
\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.
\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}
\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}
\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}