implementation module Tasks.Examples import qualified Data.Map as DM import mTask import Devices.mTaskDevice import iTasks._Framework.Serialization 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 (lit LED1) ) ( IF (pinnetje ==. lit 2) ( ledOn (lit LED2) ) ( ledOn (lit LED3) ) )} blinkShare :: Main (ByteCode () Stmt) blinkShare = sds \x=1 In sds \led=LED1 In {main = IF (x ==. lit 1) ( ledOn led ) ( ledOff led ) :. x =. lit 1 -. x :. noOp } blink :: UserLED -> Main (ByteCode () Stmt) blink l = sds \x=1 In {main = IF (x ==. lit 1) ( ledOn (lit l) ) ( ledOff (lit l) ) :. x =. lit 1 -. x :. noOp } ledtOn :: UserLED -> Main (ByteCode () Stmt) ledtOn d = {main = ledOn (lit d) :. noOp} ledtOff :: UserLED -> Main (ByteCode () Stmt) ledtOff d = {main = ledOff (lit d) :. noOp} 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) ,("blinkShare", treturn blinkShare) ]