more comments
[msc-thesis1617.git] / mtask.examples.tex
index 9277ec6..9369eec 100644 (file)
@@ -1,28 +1,32 @@
 Some example \gls{mTask}-\glspl{Task} --- using almost all of their
-functionality --- are shown in Listing~\ref{lst:exmtask}. The
-\gls{mTask}-\glspl{Task} shown in the example do not belong to a particular
-view and therefore are of the type \CI{View t r}.  The \CI{blink} \gls{mTask}
-show the classic \gls{Arduino} blinking \gls{LED} application that blinks a
-certain \gls{LED} every second. The \CI{thermostat} expression will enable a
-digital pin powering a cooling fan when the analog pin representing a
-temperature sensor is too high.  \CI{thermostat`} shows the same expression but
+functionality --- are shown in Listing~\ref{lst:exmtask}. The \CI{blink}
+\gls{mTask} show the classic \gls{Arduino} blinking \gls{LED} application that
+blinks a certain \gls{LED} every second. The \CI{thermostat} expression will
+enable a digital pin powering a cooling fan when the analog pin representing a
+temperature sensor is too high. \CI{thermostat`} shows the same expression but
 now using the assignment style \gls{GPIO} technique. The \CI{thermostat}
 example also shows that it is not necessary to run everything as a \CI{task}.
 The main program code can also just consist of the contents of the root
-\CI{main} itself.
+\CI{main} itself. Finally a thermostat example is shown that also displays the
+temperature on its \gls{LCD} while regulating the temperature.
 
 \begin{lstlisting}[%
        label={lst:exmtask},caption={Some example \gls{mTask}-\glspl{Task}}]
-blink = task \blink=(\x.
+a0 = aIO A0
+d0 = dIO D0
+
+blink = task \blink.(\x.
                IF (x ==. lit True) (ledOn led) (ledOff led) :.
                blink (lit 1000) (Not x)
        In {main=blink (lit 1000) True}
 
-thermostat :: Main (View () Stmt)
 thermostat = {main = digitalWrite D0 (analogRead A0 >. lit 50) }
 
-thermostat` :: Main (View () Stmt)
-thermostat` = let
-  a0 = aIO A0
-  d0 = dIO D0 in {main = d0 =. a0 > lit 50 }
+thermostat` = {main = d0 =. a0 > lit 50 }
+
+thermostat`` = task \th.(\lcd.
+               d0 =. a0 > lit 50 :.
+               print lcd a0      :.
+               th (lit 1000) lim   ) In
+       LCD 16 12 [] \lcd.{main = th (lit 1000) lim }
 \end{lstlisting}