add parametric lens reference and todo
[msc-thesis1617.git] / results.arch.tex
index 30fbc7a..24abb0f 100644 (file)
@@ -34,13 +34,13 @@ the device software.
 \section{Specification}
 Devices are stored in a record type and all devices in the system are stored in
 a \gls{SDS} containing all devices. From the macro settings in the interface
-file a profile is created for the device that describes the specification. When
+file, a profile is created for the device that describes the specification. When
 a connection between the server and a client is established the server will
 send a request for specification. The client will serialize his specification
 and send it to the server so that the server knows what the client is capable
 of. The exact specification is listed in Listing~\ref{lst:devicespec}
 
-\begin{lstlisting}[language=Clean,label={lst:devicespec},
+\begin{lstlisting}[label={lst:devicespec},
        caption={Device specification for \glspl{mTask}}]
 :: MTaskDeviceSpec =
        {haveLed     :: Bool
@@ -68,16 +68,18 @@ device type the \gls{Task} is just a simple wrapper around the existing
 uses the newly developed serial port library of \gls{Clean}\footnote{\url{%
 https://gitlab.science.ru.nl/mlubbers/CleanSerial}}.
 
-Besides all the communication information the record also keeps track of the
-\glspl{Task} currently on the device and the according \glspl{SDS}. Finally it
-stores the specification of the device that is received when connecting.
-All of this is listed in Listing~\ref{lst:mtaskdevice}. The definitions of the
-message format are explained in the following section.
+Besides all the communication information, the record also keeps track of the
+\glspl{Task} currently on the device, the compiler state (see
+Section~\ref{sec:compiler}) and the according \glspl{SDS}. Finally it stores
+the specification of the device that is received when connecting.  All of this
+is listed in Listing~\ref{lst:mtaskdevice}. The definitions of the message
+format are explained in the following section.
 
-\begin{lstlisting}[language=Clean,caption={Device type},label={lst:mtaskdevice}]
+\begin{lstlisting}[caption={Device type},label={lst:mtaskdevice}]
 deviceStore :: Shared [MTaskDevice]
 
 :: Channels :== ([MTaskMSGRecv], [MTaskMSGSend], Bool)
+:: BCState = ... // Compiler state, explained in later sections
 :: MTaskResource 
        = TCPDevice TCPSettings
        | SerialDevice TTYSettings
@@ -86,6 +88,7 @@ deviceStore :: Shared [MTaskDevice]
                , deviceError :: Maybe String
                , deviceChannels :: String
                , deviceName :: String
+               , deviceState :: BCState
                , deviceTasks :: [MTaskTask]
                , deviceData :: MTaskResource
                , deviceSpec :: Maybe MTaskDeviceSpec
@@ -101,7 +104,7 @@ class MTaskDuplex a where
 \section{Communication}
 All \gls{mTask} messages are encoded following the specification given in
 Appendix~\ref{app:communication-protocol}. Available messages are:
-\begin{lstlisting}[language=Clean,caption={Available messages}]
+\begin{lstlisting}[caption={Available messages}]
 :: MTaskMSGRecv
        = MTTaskAck Int Int           | MTTaskDelAck Int
        | MTSDSAck Int                | MTSDSDelAck Int
@@ -130,7 +133,7 @@ their channels. This allows you to give an old device record to the function
 and still update the latest instance. Listing~\ref{lst:connectDevice} shows the
 connection function.
 
-\begin{lstlisting}[language=Clean,label={lst:connectDevice},%
+\begin{lstlisting}[label={lst:connectDevice},%
        caption={Connect a device}]
 withDevices :: MTaskDevice (MTaskDevice -> MTaskDevice) -> Task [MTaskDevice]
 
@@ -150,14 +153,14 @@ function and the record is updated accordingly.
 
 \begin{figure}[H]
        \begin{sequencediagram}
-               \newthread{c}{Server}
-               \newinst[4]{s}{Client}
-               \mess{c}{MTSpec}{s}
-               \mess{s}{MTDevSpec d}{c}
+               \newthread{s}{Server}
+               \newinst[4]{c}{Client}
+               \begin{call}{s}{MTSpec}{c}{MTDevSpec}
+               \end{call}
        \end{sequencediagram}
        \caption{Connect a device}\label{fig:handshake}
 \end{figure}
 
 \subsection{\glspl{Task}}
 \subsection{\glspl{SDS}}
-\todo{Connectie, hoe gaat dat in zijn werk}
+\todo{Connectie, hoe gaat dat in zijn werk, andere berichtenuitwisselingen}