The \emph{Request} header means that the server is sending to the client. The
\emph{Response} header means that the client is sending to the server. In some
cases either the \emph{Request} or \emph{Response} is empty. This means that
-the message is not acknowledged or responded upon.
+the message is not acknowledged or responded upon. Multibyte values are
+interpreted as \gls{MSB} first integers.
\section{Handshake}
-\todo{Handshake, here the client tells the server what they can do}
+\begin{table}[!ht]
+ \centering
+ \begin{subfigure}[t]{.48\textwidth}
+ \begin{tabular}{ll}
+ \toprule
+ \multicolumn{2}{c}{Request}\\
+ byte & value\\
+ \midrule
+ 1 & \texttt{'c'}\\
+ \midrule\midrule
+ \multicolumn{2}{c}{Response}\\
+ byte & value\\
+ \midrule
+ 1 & \texttt{'c'}\\
+ 2 & Peripheral bitmask\\
+ 3,4 & Bytes of memory\\
+ 5,6 & Size of the stack\\
+ 7 & Number of analog pins\\
+ 8 & Number of digital pins\\
+ \bottomrule
+ \end{tabular}
+ \caption{Send a device specification}
+ \end{subfigure}
+\end{table}
\newpage
\section{mTasks}
\newglossacr{SDS} {Shared Data Source}
\newglossacr{TCP} {Transmission Control Protocol}
\newglossacr{TOP} {Task Oriented Programming}
+\newglossacr{MSB} {Most Significant Byte}
specification and send it to the server so that the server knows what the
client is capable of. The exact specification is shown in
Listing~\ref{lst:devicespec} and stores the peripheral availability, the memory
-available for storing \glspl{Task} and \glspl{SDS}.
+available for storing \glspl{Task} and \glspl{SDS} and the size of the stack.
\begin{lstlisting}[label={lst:devicespec},
caption={Device specification for \glspl{mTask}}]
{ haveLed :: Bool
, haveAio :: Bool
, haveDio :: Bool
+ , bytesMemory :: Int
+ , stackSize :: Int
, aPins :: Int
, dPins :: Int
- , bytesMemory :: Int
}
\end{lstlisting}