\pagenumbering{arabic}
}{}
-\chapter{Introduction to \texorpdfstring{\glsxtrshort{IOT}}{IoT} device programming}%
+\chapter{Edge device programming}%
\label{chp:top4iot}
\todo{betere chapter naam}
\begin{chapterabstract}
This chapter introduces \gls{MTASK} and puts it into perspective compared to traditional microprocessor programming.
+ It does so by showing how to program microprocessors using \gls{ARDUINO}, a popular microprocessor framework, and the equivalent \gls{MTASK} programs.
\end{chapterabstract}
The edge layer of \gls{IOT} system mostly consists of microprocessors that require a different method of programming.
In {main=count d3 .||. count d5}
\end{lstClean}
-\chapter{Green computing with \texorpdfstring{\gls{MTASK}}{mTask}}%
-\label{chp:green_computing_mtask}
-
-\section{Green \texorpdfstring{\glsxtrshort{IOT}}{IoT} computing}
-
-\section{Task scheduling}
-\subsection{Language}
-\subsection{Device}
-
-\section{Interrupts}
-
\chapter{Integration with \texorpdfstring{\gls{ITASK}}{iTask}}%
\label{chp:integration_with_itask}
+\begin{chapterabstract}
+ This chapter shows the integration with \gls{ITASK}.
+ It gives an intuition for the architecture of the \gls{IOT} systems.
+ The interface for connecting devices, lifting \gls{MTASK} tasks to \gls{ITASK} tasks and lifting \gls{ITASK} \glspl{SDS} to \gls{MTASK} \glspl{SDS} is shown.
+\end{chapterabstract}
+
The \gls{MTASK} language is a multi-view \gls{DSL}, i.e.\ there are multiple interpretations possible for a single \gls{MTASK} term.
-Using the byte code compiler (\cleaninline{BCInterpret}) \gls{DSL} interpretation, \gls{MTASK} tasks are fully integrated in \gls{ITASK} and executed as if they were regular \gls{ITASK} tasks and communicate using \gls{ITASK} \glspl{SDS}.
-\Gls{MTASK} devices contain a domain-specific \gls{OS} (\gls{RTS}) and are little \gls{TOP} servers in their own respect, being able to execute tasks.
+Using the byte code compiler (\cleaninline{BCInterpret}) \gls{DSL} interpretation, \gls{MTASK} tasks can be fully integrated in \gls{ITASK}.
+They are executed as if they are regular \gls{ITASK} tasks and they communicate may access \glspl{SDS} from \gls{ITASK} as well.
+\Gls{MTASK} devices contain a domain-specific \gls{OS} (\gls{RTS}) and are little \gls{TOP} engines in their own respect, being able to execute tasks.
\Cref{fig:mtask_integration} shows the architectural layout of a typical \gls{IOT} system created with \gls{ITASK} and \gls{MTASK}.
The entire system is written as a single \gls{CLEAN} specification where multiple tasks are executed at the same time.
Tasks can access \glspl{SDS} according to many-to-many communication and multiple clients can work on the same task.
-Devices are integrated into the system using the \cleaninline{widthDevice} function (see \cref{sec:withdevice}).
+Devices are integrated into the system using the \cleaninline{withDevice} function (see \cref{sec:withdevice}).
Using \cleaninline{liftmTask}, \gls{MTASK} tasks are lifted to a device (see \cref{sec:liftmtask}).
\Gls{ITASK} \glspl{SDS} are lifted to the \gls{MTASK} device using \cleaninline{liftsds} (see \cref{sec:liftmtask}).
\end{figure}
\section{Devices}\label{sec:withdevice}
-\Gls{MTASK} tasks in the byte code compiler view are always executed on a certain device.
+When interpreted by the byte code compiler view, an \gls{MTASK} task produces a compiler.
+This compiler is exceuted at run time so that the resulting byte code can be sent to an edge device.
All communication with this device happens through a so-called \emph{channels} \gls{SDS}.
The channels contain three fields, a queue of messages that are received, a queue of messages to send and a stop flag.
Every communication method that implements the \cleaninline{channelSync} class can provide the communication with an \gls{MTASK} device.
\chapter{Implementation}%
\label{chp:implementation}
+\begin{chapterabstract}
+ This chapter shows the implementation of the \gls{MTASK} system.
+ It is threefold: first it shows the implementation of the byte code compiler for \gls{MTASK}'s \gls{TOP} language, then is details of the implementation of \gls{MTASK}'s \gls{TOP} engine that executes the \gls{MTASK} tasks on the microprocessor, and finally it shows how the integration of \gls{MTASK} tasks and \glspl{SDS} is implemented both on the server and on the device.
+\end{chapterabstract}
IFL19 paper, bytecode instructieset~\cref{chp:bytecode_instruction_set}
\section{Integration with \texorpdfstring{\gls{ITASK}}{iTask}}
IFL18 paper stukken
+\chapter{Green computing with \texorpdfstring{\gls{MTASK}}{mTask}}%
+\label{chp:green_computing_mtask}
+\begin{chapterabstract}
+ This chapter demonstrate the energy saving features of \gls{MTASK}.
+ First it gives an overview of general green computing measures for edge devices.
+ Then \gls{MTASK}'s task scheduling is explained and it is shown how to customise it so suit the applications and energy needs.
+ Finally it shows how to use interrupts in \gls{MTASK} to reduce the need for polling.
+\end{chapterabstract}
+
+\section{Green \texorpdfstring{\glsxtrshort{IOT}}{IoT} computing}
+
+\section{Task scheduling}
+\subsection{Language}
+\subsection{Device}
+
+\section{Interrupts}
+
\input{subfilepostamble}
\end{document}