X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=Tasks%2FExamples.icl;h=b0ae530e4cf548c4419380ffc9cd870aec8ecd51;hb=09b207a39b7791098daafd7d87c3ad9d3db3e19f;hp=b2a79de52baa9dfe21483d13f2b387c0650abee5;hpb=547eb2278f48ab8b94e70ef4a1fc2bf5093bdfb2;p=mTask.git diff --git a/Tasks/Examples.icl b/Tasks/Examples.icl index b2a79de..b0ae530 100644 --- a/Tasks/Examples.icl +++ b/Tasks/Examples.icl @@ -6,7 +6,8 @@ import mTask import Devices.mTaskDevice import iTasks._Framework.Serialization -derive class iTask UserLED +count :: Main (ByteCode () Stmt) +count = sds \x=0 In {main = x =. x +. lit 1 :. pub x :. noOp} countAndLed :: Main (ByteCode () Stmt) countAndLed = sds \x=1 In sds \pinnetje=1 In {main = @@ -17,35 +18,53 @@ countAndLed = sds \x=1 In sds \pinnetje=1 In {main = noOp ) :. IF (pinnetje ==. lit 1) ( - ledOn LED1 + ledOn (lit LED1) ) ( IF (pinnetje ==. lit 2) ( - ledOn LED2 + ledOn (lit LED2) ) ( - ledOn LED3 + ledOn (lit LED3) ) )} -blink :: UserLED -> Main (ByteCode () Stmt) -blink led = sds \x=1 In {main = +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 d} +ledtOn d = {main = ledOn (lit d) :. noOp} ledtOff :: UserLED -> Main (ByteCode () Stmt) -ledtOff d = {main = ledOff d} +ledtOff d = {main = ledOff (lit d) :. noOp} + +readDPin :: DigitalPin -> Main (ByteCode () Stmt) +readDPin d = sds \pin=False In {main=pin =. digitalRead d :. pub pin :. noOp} ledSelection :: Task UserLED ledSelection = enterInformation "Select LED" [] +pinSelection :: Task DigitalPin +pinSelection = enterInformation "Select digital pin" [] + allmTasks :: Map String (Task (Main (ByteCode () Stmt))) -allmTasks = 'DM'.fromList [ - ("countAndLed", treturn countAndLed), - ("ledOn", ledSelection @ ledtOn), - ("ledOff", ledSelection @ ledtOff), - ("blink", ledSelection @ blink)] +allmTasks = 'DM'.fromList + [("countAndLed", treturn countAndLed) + ,("ledOn", ledSelection @ ledtOn) + ,("ledOff", ledSelection @ ledtOff) + ,("readDPin", pinSelection @ readDPin) + ,("blink", ledSelection @ blink) + ,("blinkShare", treturn blinkShare) + ,("count", treturn count) + ]