final commit
[des2015.git] / marsrover / document / robot.tex
index 028b495..27efa44 100644 (file)
@@ -119,9 +119,9 @@ use of a \texttt{suppressed} flag in every behaviour. The \texttt{suppressed}
 flag that is set when the \texttt{suppress} function is called and the
 \texttt{action} function will monitor said variable to be able to stop when it
 is suppressed. The entire action will always finish, however when the flag is
-set all loops are terminated immediatly leaving only atomic actions which are
+set all loops are terminated immediately leaving only atomic actions which are
 executed almost always asychronously. Therefore the action will stop almost
-immediatly after suppress is called.
+immediately after suppress is called.
 
 Since the task of the robot is to perform certain missions in sequence we also
 added a special kind of behaviour to the standard architecture. This behaviour,
@@ -167,12 +167,12 @@ mapping is described in \autoref{tab:mapping}.
 A domain-specific language (DSL) is a programming language or executable
 specification language that offers, through appropriate notations and
 abstractions, expressive power focused on, and usually restricted to, a
-particular problem domain~\cite{van2002domain}. The DSL for the robot is designed so that the
-robot is able to perform multiple missions consisting of behaviours. A mission
-is basically a set of behaviours operating following the subsumption
-architecture assisted by a special purpose behaviour that shuts down the
-runtime to make room for a new mission. The complete grammar of the DSL can be
-found in \autoref{lst:grammar}.
+particular problem domain~\cite{van2002domain}. The DSL for the robot is
+designed so that the robot is able to perform multiple missions consisting of
+behaviours. A mission is basically a set of behaviours operating following the
+subsumption architecture assisted by a special purpose behaviour that shuts
+down the runtime to make room for a new mission. The complete grammar of the
+DSL can be found in \autoref{lst:grammar}.
 
 \autoref{fig:dsl} describes the hierarchy of the grammar. A \emph{Robot} is a
 set of constants combined with a list of \emph{Behaviour}s and a list of
@@ -184,7 +184,7 @@ and a sequence of \emph{Action}s.
 \emph{Action}s represent the real action the robot will perform. This can be an
 external action such as moving motors but also an internal action such as
 waiting or set something in memory.
-\emph{StopppingConditon}s are logical expression that can contain values from
+\emph{StopppingCondition}s are logical expression that can contain values from
 sensors or queries on the memory. To limit the complexity of the grammar a
 prefix notation is used for binary and unary operators.
 
@@ -201,6 +201,15 @@ prefix notation is used for binary and unary operators.
        \caption{Robot Domain Specific Language}\label{fig:dsl}
 \end{figure}
 
+To assist the user programming in the DSL small validation mechanism have been
+added. It could happen that the user specifies a mission that contains two
+behaviours both want control at all times. A behaviour that wants control at
+all times can be a valid design but when there are two with that property, only
+one will be used. To avoid such situations the IDE will warn the user when this
+is the case. The full code for the code validation can be found in
+\autoref{lst:val}. The full DSL instance used in the demonstration can be found
+in \autoref{lst:inst}.
+
 \subsection{Code Structure}
 The complete code generation code can be found in \autoref{lst:gen}. The
 following enumeration shows what is specifically generated per grammar object.