1 implementation module Tasks.Examples
3 import qualified Data.Map as DM
6 import Devices.mTaskDevice
7 import iTasks._Framework.Serialization
9 countAndLed :: Main (ByteCode () Stmt)
10 countAndLed = sds \x=1 In sds \pinnetje=1 In {main =
17 IF (pinnetje ==. lit 1) (
20 IF (pinnetje ==. lit 2) (
27 blinkShare :: Main (ByteCode () Stmt)
28 blinkShare = sds \x=1 In sds \led=LED1 In {main =
32 x =. lit 1 -. x :. noOp
35 blink :: UserLED -> Main (ByteCode () Stmt)
36 blink l = sds \x=1 In {main =
40 x =. lit 1 -. x :. noOp
43 ledtOn :: UserLED -> Main (ByteCode () Stmt)
44 ledtOn d = {main = ledOn (lit d) :. noOp}
46 ledtOff :: UserLED -> Main (ByteCode () Stmt)
47 ledtOff d = {main = ledOff (lit d) :. noOp}
49 readDPin :: DigitalPin -> Main (ByteCode () Stmt)
50 readDPin d = sds \pin=False In {main=pin =. digitalRead d :. noOp}
52 ledSelection :: Task UserLED
53 ledSelection = enterInformation "Select LED" []
55 pinSelection :: Task DigitalPin
56 pinSelection = enterInformation "Select digital pin" []
58 allmTasks :: Map String (Task (Main (ByteCode () Stmt)))
59 allmTasks = 'DM'.fromList
60 [("countAndLed", treturn countAndLed)
61 ,("ledOn", ledSelection @ ledtOn)
62 ,("ledOff", ledSelection @ ledtOff)
63 ,("readDPin", pinSelection @ readDPin)
64 ,("blink", ledSelection @ blink)
65 ,("blinkShare", treturn blinkShare)