-\section{Server to Client}
+\section{General message format}
Messages are delimited by newlines to make processing by line based devices
-more easy.
-\todo{Handshake}
-\begin{table}[ht]
- \centering
- \begin{tabular}{ll}
- \toprule
- byte & value\\
- \midrule
- 1 & \texttt{'t'}\\
- 2,3 & interval\\
- 4,5 & length (\texttt{n})\\
- 6 to n+6 & bytecode\\
- \bottomrule
- \end{tabular}
- \caption{Send a task}
-\end{table}
-
-\begin{table}[ht]
- \centering
- \begin{tabular}{ll}
- \toprule
- byte & meaning\\
- \midrule
- 1 & \texttt{'d'}\\
- 2,3 & task id\\
- \bottomrule
- \end{tabular}
- \caption{Delete a task}
-\end{table}
+easier. Message exchanges have a \emph{Request} and \emph{Response} header.
+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. Multibyte values are
+interpreted as \gls{MSB} first integers.
-\begin{table}[ht]
+\section{Handshake}
+\begin{table}[H]
\centering
- \begin{tabular}{ll}
- \toprule
- byte & meaning\\
- \midrule
- 1 & \texttt{'s'}\\
- 2,3 & identifier\\
- 4,5 & value\\
- \bottomrule
- \end{tabular}
- \caption{Send an SDS specification}
+ \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}
-\begin{table}[ht]
+\newpage
+\section{mTasks}
+\begin{table}[H]
\centering
- \begin{tabular}{ll}
- \toprule
- byte & meaning\\
- \midrule
- 1 & \texttt{'u'}\\
- 2,3 & sdsid\\
- 4,5 & value\\
- \bottomrule
- \end{tabular}
- \caption{SDS update}
+ \begin{subfigure}[t]{.48\textwidth}
+ \begin{tabular}{ll}
+ \toprule
+ \multicolumn{2}{c}{Request}\\
+ byte & value\\
+ \midrule
+ 1 & \texttt{'t'}\\
+ 2,3 & interval or interrupt\\
+ 4,5 & length (\texttt{n})\\
+ 6 to n+6 & bytecode\\
+ \midrule\midrule
+ \multicolumn{2}{c}{Response}\\
+ byte & value\\
+ \midrule
+ 1 & \texttt{'t'}\\
+ 2,3 & \gls{Task} id\\
+ \bottomrule
+ \end{tabular}
+ \caption{Send a \gls{Task}}
+ \end{subfigure}
+ \quad%
+ \begin{subfigure}[t]{.48\textwidth}
+ \begin{tabular}{ll}
+ \toprule
+ \multicolumn{2}{c}{Request}\\
+ byte & meaning\\
+ \midrule
+ 1 & \texttt{'d'}\\
+ 2,3 & \gls{Task} id\\
+ \midrule\midrule
+ \multicolumn{2}{c}{Response}\\
+ byte & value\\
+ \midrule
+ 1 & \texttt{'d'}\\
+ 2,3 & \gls{Task} id\\
+ \bottomrule
+ \end{tabular}
+ \caption{Delete a \gls{Task}}
+ \end{subfigure}
+ \caption{Message protocol for exchanging \glspl{Task}}
\end{table}
-\section{Client to Server}
-\todo{Handshake reply}
-\begin{table}[ht]
+\section{SDSs}
+\begin{table}[H]
\centering
- \begin{tabular}{ll}
- \toprule
- byte & value\\
- \midrule
- 1 & \texttt{'t'}\\
- 2,3 & task id\\
- \bottomrule
- \end{tabular}
- \caption{Task acknowledgement}
+ \begin{subfigure}[t]{.2\textwidth}
+ \begin{tabular}{ll}
+ \toprule
+ \multicolumn{2}{c}{Request}\\
+ byte & meaning\\
+ \midrule
+ 1 & \texttt{'s'}\\
+ 2,3 & identifier\\
+ 4,5 & value\\
+ \midrule\midrule
+ \multicolumn{2}{c}{Response}\\
+ byte & meaning\\
+ \midrule
+ 1 & \texttt{'s'}\\
+ 2,3 & identifier\\
+ \bottomrule
+ \end{tabular}
+ \caption{Send an SDS specification}
+ \end{subfigure}
+ \quad%
+ \begin{subfigure}[t]{.2\textwidth}
+ \begin{tabular}{ll}
+ \toprule
+ \multicolumn{2}{c}{Response}\\
+ byte & value\\
+ \midrule
+ 1 & \texttt{'a'}\\
+ 2,3 & SDS id\\
+ \midrule\midrule
+ \multicolumn{2}{c}{Request}\\
+ byte & value\\
+ \midrule
+ 1 & \texttt{'a'}\\
+ 2,3 & SDS id\\
+ \bottomrule
+ \end{tabular}
+ \caption{Delete a SDS}
+ \end{subfigure}
+ \quad%
+ \begin{subfigure}[t]{.2\textwidth}
+ \begin{tabular}{ll}
+ \toprule
+ \multicolumn{2}{c}{Request}\\
+ byte & meaning\\
+ \midrule
+ 1 & \texttt{'u'}\\
+ 2,3 & sdsid\\
+ 4,5 & value\\
+ \midrule\midrule
+ \multicolumn{2}{c}{Response}\\
+ \bottomrule
+ \end{tabular}
+ \caption{SDS update}
+ \end{subfigure}
+ \quad%
+ \begin{subfigure}[t]{.2\textwidth}
+ \begin{tabular}{ll}
+ \toprule
+ \multicolumn{2}{c}{Response}\\
+ \midrule\midrule
+ \multicolumn{2}{c}{Request}\\
+ byte & value\\
+ \midrule
+ 1 & \texttt{'p'}\\
+ 2,3 & SDS id\\
+ 4,5 & value\\
+ \bottomrule
+ \end{tabular}
+ \caption{SDS publish}
+ \end{subfigure}
+ \caption{Message protocol for exchanging SDSs}
\end{table}
-
-\begin{table}[ht]
- \centering
- \begin{tabular}{ll}
- \toprule
- byte & value\\
- \midrule
- 1 & \texttt{'u'}\\
- 2,3 & SDS id\\
- 4,5 & value\\
- \bottomrule
- \end{tabular}
- \caption{SDS publish}
-\end{table}
-
-\todo{SDS acknowledgement}