\frametitle{Example, blink}
\begin{lstlisting}[language=Clean]
blink :: Task ()
-blink = makeDevice "stm32" stm32 >>= connectDevice
- >>= \stm-> sendTaskToDevice "blink" blinkTask (stm, OnInterval 1000)
- >>= \(st, [t:_])->forever (
+blink = addDevice
+ >>= connectDevice
+ >>= \stm->sendTaskToDevice "blink" blinkTask (stm, OnInterval 1000)
+ >>= \(st, [_,t])->forever (
updateSharedInformation "Which led to blink" [] (shareShare stm t)
) >>* [OnAction (Action "Shutdown") $ always
$ deleteDevice stm >>| shutDown 0
]
where
- stm32 = makeDevice "Stm32"
- (SerialDevice {devicePath="/dev/ttyUSB0", baudrate=B9600, ...}
blinkTask = sds \led=LED1 In sds \x=True In {main =
- ledOn LED1 :. ledOn LED2 :. ledOn LED3 :.
- IF x (ledOff led) (ledOn led) :.
- x =. Not x
- }
-
+ ledOff led1 :. ledOff led2 :. ledOff led3 :.
+ IF x (ledOff led) (ledOn led) :.
+ x =. Not x}
\end{lstlisting}
\end{frame}