implementation module Tasks.Examples import qualified Data.Map as DM import mTask import iTasks._Framework.Serialization derive class iTask UserLED, Main, ByteCode, Stmt, BC, BCState countAndLed :: Main (ByteCode () Stmt) countAndLed = sds \x=1 In sds \pinnetje=1 In {main = IF (digitalRead D3) ( x =. x +. lit 1 :. pub x ) ( noOp ) :. IF (pinnetje ==. lit 1) ( ledOn LED1 ) ( IF (pinnetje ==. lit 2) ( ledOn LED2 ) ( ledOn LED3 ) )} blink :: UserLED -> Main (ByteCode () Stmt) blink led = sds \x=1 In {main = IF (x ==. lit 1) ( ledOn led ) ( ledOff led ) :. x =. lit 1 -. x :. noOp } ledtOn :: UserLED -> Main (ByteCode () Stmt) ledtOn d = {main = ledOn d} ledtOff :: UserLED -> Main (ByteCode () Stmt) ledtOff d = {main = ledOff d} ledSelection :: Task UserLED ledSelection = enterInformation "Select LED" [] allmTasks :: Map String (Task (Main (ByteCode () Stmt))) allmTasks = 'DM'.fromList [ ("countAndLed", treturn countAndLed), ("ledOn", ledSelection @ ledtOn), ("ledOff", ledSelection @ ledtOff), ("blink", ledSelection @ blink)]