Skip to content
Snippets Groups Projects
architektur.tex 5.6 KiB
Newer Older
\documentclass[../mainDocument.tex]{subfiles}
\begin{document}
\section{Architektur und Integrationstests}

\subsection{Systemarchitektur}
\subsection{Odroid}

\begin{landscape}
  \begin{figure}[h]
    \begin{center}
      \includegraphics[scale=0.45]{Odroid}
    \end{center}
    \caption{Odriod-System}
    \label{fig:odriod-sys}
  \end{figure}
  \begin{figure}[h]
    \begin{center}
      \includegraphics[scale=0.5]{SystemArchitektur}
    \end{center}
    \caption{Odriod-System}
    \label{fig:hardware-sys}
  \end{figure}
\end{landscape}
  



\subsection{Object Oriented Analysis}
\begin{tikzpicture}
	\begin{umlpackage}{Car}
		\begin{umlpackage}{Odroid}
			% classes
			\umlclass[scale = 0.5]
				{MAV-Link}
				{
					- $v_{new}$ : Integer\\
					- $\alpha_{new}$ : Integer\\
					- $v_O$ : Interger\\
					- $\alpha_O$ : Integer\\
					- RC-State : Integer
				}
				{
					+ set($v_{new}$, $\alpha_{new}$)\\
					+ RequestNewState(RC-State)\\
					+ updateOwn() : (Integer, Integer)
				}
			\umlclass[scale = 0.5, xshift = -8cm]
				{Lane-Keeping}
				{
					- Image/Path : ?\\
					- $\alpha_{new}$ : Integer
				}
				{
					+ Lanekeeping() : ?
				}
			\umlclass[scale = 0.5, xshift = 8cm, yshift = -4cm]
				{Cruise-Control}
				{
					- $d_O$ : Integer\\
					- $v_P$ : Integer\\
					- $IPD$ : Integer\\
					- $PS$ : Integer\\
					- PlatoonState : Integer\\
					- $v_s$ : Integer\\
					- $d_s$ : Integer\\
					+ $v_{new}$ Integer
				}
				{
					- CACC($d_O, v_P, IPD, PS$) : Integer\\
					- ACC($d_O, v_P, v_s, d_s$) : Integer\\
					- calcNewOptimalDistance($v_s$) : Integer\\
					+ setNewSpeed($v_{new}$)
				} (CruiseConrol)
			\umlclass[scale = 0.5, xshift = -5.5cm, yshift = -9cm]
				{Egomotion}
				{
					- $d_O$ : Integer\\
					- $v_O$ : Integer\\
					- $v_R$ : Integer\\
					- $v_P$ : Integer\\
					- $\alpha_O$ : Integer\\
					- Path : ?\\
					+ $\alpha_{new}$ : Integer\\
					+ $v_{new}$ : Integer\\
				}
				{
					- calc\_$v_P$($v_R$) : Integer\\
					%- getEnvironment() : (Integer, Integer)\\
					%- getMavLink() : (Integer, Integer)\\
					%- getCurseControl : Integer
				} (EgoMotion)
			\umlclass[scale = 0.5, xshift = 6.7cm, yshift = -14cm]
				{PlatoonController}
				{
					- $IPD$ : Integer\\
					- $PS$ : Integer\\
					- PlatoonState : ENUM\\
					- $v_s$ : Integer\\
					- $CarID$ : Integer\\
					- PlatoonMemberList : ?\\
					- PlatoonPos : Integer\\
					- PlatoonPrevID : ?\\
					+ WantsPlatton : Boolean
				}
				{
					- evaluate\_PlatoonState(PlatoonState : Integer) : ?\\
					- determine\_LV\_IPD-PS() : (Integer, Integer)\\
					- handle\_PBM() : ?\\
					- handle\_PCM() : ?\\
					- handle\_PHM() : ?\\
					- send\_PBM() : ?\\
					- send\_PCM() : ?\\
					- send\_PHM() : ?
				}
			\umlclass[scale = 0.5, xshift = -9cm, yshift = -20cm]
				{
					- USS-Data : Integer\\
					+ $d_O$ : Integer\\
					+ $v_R$ : Integer\\
					+ PlatoonPrevID : ?
				}
				{
					- calc\_$v_R$
				}
			\umlclass[scale = 0.5, xshift = -4cm, yshift = -23cm]
				{Logging}
				{
					+ $d_O$ : Integer\\
					+ $v_O$ : Integer\\
					+ $\alpha_O$ : Integer\\
					+ $v_R$ : Integer\\
					+ $v_P$ : Integer\\
					+ Path : ?\\
					+ $\alpha_{new}$ : Integer\\
					+ $v_{new}$ : Integer\\
					+ WantsPlatton : Boolean\\
					+ UpdateReady : Boolean\\
					+ $IPD$ : Integer\\
					+ $PS$ : Integer\\
					+ PlatoonState : ENUM\\
					+ $v_s$ : Integer\\
					+ $CarID$ : Integer\\
					+ PlatoonMemberList : ?\\
					+ PlatoonPos : Integer\\
					+ PlatoonPrevID : Integer
				}
				{
					- cacheDate() : ?\\
					+ sendToPC(ALL)
				}
			\umlclass[scale = 0.5, xshift = -11.5cm, yshift = -25cm]
				{Camera}
				{}
				{}
			\umlclass[scale = 0.5, xshift = -11.2cm, yshift = -28cm]
				{Ultrasonic}
				{}
				{}
			\umlclass[scale = 0.5, xshift = 9.5cm, yshift = -25cm]
				{Network}
				{
					+ $IPD$ : Integer\\
					+ $PS$ : Integer
				}
				{
					+ send\_PBM()\\
					+ send\_PCM()\\
					+ send\_PHM()\\
					+ send\_PLM()\\
					+ handle\_PBM()\\
					+ handle\_PCM()\\
					+ handle\_PHM()\\
					+ handle\_PLM()\\
					+ Car2PC-MSGs.
				}
			
			%arrows
			\umlinherit	[geometry=-| ,anchors=   0 and 250]	{Camera}{Environment}
			\umlinherit	[geometry=|- ,anchors=  90 and 180]	{Camera}{Lane-Keeping}
			\umlinherit	[geometry=|- ,anchors=  90 and  25]	{Cruise-Control}{MAV-Link}
			\umlinherit	[geometry=|- ,anchors= 217 and  50]	{Cruise-Control}{Egomotion}
			\umlinherit	[geometry=|- ,anchors=  50 and 217]	{Egomotion}{Cruise-Control}
			\umlinherit	[geometry=|- ,anchors= -35 and 152]	{Egomotion}{PlatoonController}
			\umlinherit	[geometry=-| ,anchors= 115 and 300]	{Egomotion}{Lane-Keeping}
			\umlinherit	[geometry=-|]						{Egomotion}{Logging}
			\umlinherit	[geometry=|-|,anchors=90 and 245]	{Environment}{Egomotion}
			\umlinherit	[geometry=--]						{Lane-Keeping}{MAV-Link}
			\umlinherit	[geometry=-| ,anchors= 300 and 115]	{Lane-Keeping}{Egomotion}
			\umlinherit	[geometry=|- ,anchors= -55 and 222]	{Logging}{Network}
			\umlinherit	[geometry=|-|,anchors= 235 and  70]	{MAV-Link}{Egomotion}
			\umlinherit	[geometry=-| ,anchors= 180 and 270]	{Network}{MAV-Link}
			\umlinherit	[geometry=-|]						{PlatoonController}{Cruise-Control}
			\umlinherit	[geometry=|- ,anchors= 240 and  25]	{PlatoonController}{Logging}
			\umlinherit	[geometry=-|, anchors= 300 and  85]	{PlatoonController}{Network}
			\umlinherit	[geometry=-|, anchors=  85 and 300]	{Network}{PlatoonController}
			\umlinherit	[geometry=-| ,anchors= 0 and 290]	{Ultrasonic}{Environment}
		\end{umlpackage}
	\end{umlpackage}
\end{tikzpicture}

\subsection{Softwarearchitktur}
%tikz oder drawio
\includegraphics[width=\textwidth]{SoftwareArchitektur}
\end{document}