Merge branch 'master' of git.martlubbers.net:msc-thesis1617
[msc-thesis1617.git] / results.mtask.tex
index 0c50555..c32f7ac 100644 (file)
@@ -6,9 +6,24 @@ does not have to implement all the available classes. Moreover, classes can be
 added at will without interfering with the existing views.
 
 \section{Semantics}
-\todo{semantics}
-
-\section{Bytecode compilation}
+\subsection{\glspl{mTask}}
+The current \gls{mTask} engine for devices does not support \glspl{Task} in the
+sense that the \gls{C}-view it does. \glspl{Task} in the new system are are
+\CI{Main} objects with a program inside. A \gls{Task} runs periodically, on
+interrupt or one-shot. 
+\todo{elaborate}
+
+\subsection{\glspl{SDS}}
+\glspl{SDS} behave a little bit differently on an \gls{mTask} device than in
+the \gls{iTasks} system. In an \gls{iTasks} system, when the \gls{SDS} is
+updated, a broadcast to everyone in the system watching is made to notify them
+of an update. \glspl{SDS} on the device can update very often and the update
+might not be the final value it will get. Therefore a device must publish the
+\gls{SDS} explicitly to save bandwidth. This means that an extra function is
+added to the \CI{sds} class that adds the \CI{pub} function.
+\todo{elaborate}
+
+\section{Bytecode compilation}\label{sec:compiler}
 The \glspl{mTask} are sent to the device in bytecode and are saved in the
 memory of the device. To compile the \gls{EDSL} code to bytecode, a view is
 added to the \gls{mTask}-system called \CI{ByteCode}. As shown in
@@ -271,3 +286,5 @@ position in the program memory.
 17-19: BCPush (Bool 0)             //Else label
 20   : BCDigitalWrite (Digital D0)
 \end{lstlisting}
+
+\todo{add more elaborate example?}