\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] {Environment} { - 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]{SoftwareArch} \end{document}