Skip to content
Snippets Groups Projects
Commit 10b8b8d9 authored by Steven Lange's avatar Steven Lange
Browse files

Added OOD draft.

OOD draft follows the ideas written on the whiteboard.
Needs now to get fill by interfaces, ROS-Nodes, Threads and anything
else to get this code running.
parent 56fccb33
Branches
No related merge requests found
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
+ set($v_{new}$, $\alpha_{new}$)\\ + set($v_{new}$, $\alpha_{new}$)\\
+ RequestNewState(RC-State)\\ + RequestNewState(RC-State)\\
+ updateOwn() : (Integer, Integer) + updateOwn() : (Integer, Integer)
} (MAVLink) }
\umlclass[scale = 0.5, xshift = -8cm] \umlclass[scale = 0.5, xshift = -8cm]
{Lane-Keeping} {Lane-Keeping}
{ {
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
} }
{ {
+ Lanekeeping() : ? + Lanekeeping() : ?
} (LaneKeeping) }
\umlclass[scale = 0.5, xshift = 8cm, yshift = -4cm] \umlclass[scale = 0.5, xshift = 8cm, yshift = -4cm]
{Cruise-Control} {Cruise-Control}
{ {
...@@ -116,7 +116,7 @@ ...@@ -116,7 +116,7 @@
{ {
+ $d_O$ : Integer\\ + $d_O$ : Integer\\
+ $v_O$ : Integer\\ + $v_O$ : Integer\\
+ $\alpha_O$ : Interger\\ + $\alpha_O$ : Integer\\
+ $v_R$ : Integer\\ + $v_R$ : Integer\\
+ $v_P$ : Integer\\ + $v_P$ : Integer\\
+ Path : ?\\ + Path : ?\\
......
\documentclass[a4paper,12pt]{article}
\usepackage{geometry}
\geometry{scale = 0.5}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[french]{babel}
\usepackage{fullpage}
\usepackage{ifthen, tikz, xstring, calc, pgfopts} % required for tikz-uml
\usepackage{../tikz-uml}
\sloppy
\hyphenpenalty 10000000
\begin{document}
\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\\
+ WantsPlatton : Boolean\\
+ UpdateReady : Boolean
}
{
- calc\_$v_P$($v_R$) : Integer\\
- getEnvoirment() : (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 : ?\\
+ isUpdated : Boolean
}
{
- evaluate\_PlatoonState(PlatoonState : Integer) : ?\\
- determine\_LV\_IPD-PS() : (Integer, Integer)\\
- handle\_PBM() : ?\\
- handle\_PCM() : ?\\
- handle\_PHM() : ?\\
- send\_PBM() : ?\\
- send\_PCM() : ?\\
- send\_PHM() : ?\\
+ isIdle() : Boolean
}
\umlclass[scale = 0.5, xshift = -9cm, yshift = -20cm]
{Envoirment}
{
- USS-Data : Integer\\
+ $d_O$ : Interger\\
+ $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\\
+ isUpdated : Boolean
}
{
- 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}{Envoirment}
\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] {Envoirment}{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}{Envoirment}
\end{umlpackage}
\end{umlpackage}
\end{tikzpicture}
\end{document}
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment