\begin{document}
\input{subfileprefix}
-\chapter{Auxiliary \texorpdfstring{\glsentrytext{MTASK}}{mTask} type classes}%
+\ifSubfilesClassLoaded{\appendix\setcounter{chapter}{1}}{}
+\chapter{Auxiliary mTask type classes}%
\label{chp:mtask_aux}
\lstset{basicstyle=\tt\footnotesize}
\section{Peripherals}\label{sec:aux_peripherals}
soundLevel :: (v SoundDetector) -> MTask v Bool | tupl, aio v
\end{lstClean}
-\subsection{\texorpdfstring{\gls{I2C}}{I\textsuperscript{2}C} buttons}
+\subsection{\IIC{} buttons}
The \gls{MTASK} language supports one type of \gls{I2C} buttons (the \gls{I2C} buttons from the \gls{WEMOS} d1 mini \gls{OLED} shield).
The buttons from this shield provide more information than just the status (see \cleaninline{ButtonStatus}).
The complete interface containing the constructor and the measurement tasks is shown in \cref{lst:mtask_i2cbutton}.
BButton :: (v I2CButton) -> MTask v ButtonStatus
\end{lstClean}
-\subsection{\texorpdfstring{\gls{LED}}{LED} matrix}
+\subsection{LED matrix}
The \gls{MTASK} language supports one type of \gls{LED} matrix (the $8\times8$ \gls{LED} matrix shield for the \gls{WEMOS} d1 mini).
Instead of containing a \gls{TOP}-like interface, the \gls{ARDUINO} interface is directly translated to \gls{MTASK}.
As a result, every task immediately returns a stable value indicating the result.
\subsection{Connection types}\label{lst:connection_types}
\begin{lstClean}[caption={}]
:: TCPSettings =
- { host :: String
- //** host name
- , port :: Int
- //** port number
+ { host :: String
+ , port :: Int
, pingTimeout :: ?Int
- //** Require a ping signal every so many seconds
}
:: MQTTSettings =
- { host :: String
- //** Host name
- , port :: Int
- //** Port number
- , mcuId :: String
- //** Identifier for the device
+ { host :: String
+ , port :: Int
+ , mcuId :: String
, serverId :: String
- //** Identifier for the server
- , auth :: MQTTAuth
- //** Authentication type
+ , auth :: MQTTAuth
}
:: TTYSettings = {
devicePath :: String,
- //* Path of the device, e.g. /dev/ttyACM0
- baudrate :: BaudRate,
- //* Baudrate
- bytesize :: ByteSize,
- //* Parity
- parity :: Parity,
- //* stop2bits
- stop2bits :: Bool,
- //* xonxoff flow control
- xonxoff :: Bool,
- //* Time in seconds to wait after opening the devices. Set this to 2 if you want to connect to a borked arduino
- sleepTime :: Int
+ baudrate :: BaudRate,
+ bytesize :: ByteSize,
+ parity :: Parity,
+ stop2bits :: Bool,
+ xonxoff :: Bool,
+ sleepTime :: Int
}
\end{lstClean}