The client code for the devices is compiled from one codebase. For a device to
be eligible for \glspl{mTask} it must be able to compile the shared codebase
and implement (part of) the device specific interface. The shared codebase only
-uses standard \gls{C} and no special libraries or tricks are used. Therefore
-the code is compilable for almost any device or system. Note that it is not
-needed to implement a full interface\todo{handshake}. The full interface,
-listed in Appendix~\label{app:device-interface}, also includes functions for
-accessing the peripherals that not every device might have.
+uses standard \gls{C} and no special libraries. Therefore the code is
+compilable for almost any device or system. Note that it is not needed to
+implement a full interface. The full interface, listed in
+Appendix~\label{app:device-interface}, also includes functions for accessing
+the peripherals that not every device might have. The interface headers also
+show which functionality is implemented and which functionality is not
+available. This information is exchanged during the setup of the communication.
\subsection{Specification}
Devices are stored in a record type and all devices in the system are stored in
a \gls{SDS} containing all devices.
\subsection{Communication}
-
+\todo{Handshake, device specification sending, spec.c}
+\todo{mTaskDevice class interface}
\section{mTasks}
\subsection{\gls{EDSL}}
+\todo{Show the classes}
\subsection{Shares}
+\todo{Show the types and why}
+
+Shares are used to store the values
+
+Shares all have
%\subsection{Serial port communication in Clean and iTasks}
%In the first exploration stage I added duplex serial port communication to
%iTasks in the same way as TCP is added. To make it work several changes had to