X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=mTaskSimulation.icl;h=e158002875eac94b8efbba0f6adccc12f852d1bf;hb=a2b8b2a0de173f92092bf6cbbed23551e674ca3c;hp=6fed0842fcc164b0c2459571d06dd73031717ccb;hpb=7a67ef5e2af69cb14011be201fe67f755b91a788;p=mTask.git diff --git a/mTaskSimulation.icl b/mTaskSimulation.icl index 6fed084..e158002 100644 --- a/mTaskSimulation.icl +++ b/mTaskSimulation.icl @@ -1,8 +1,12 @@ implementation module mTaskSimulation +import Generics.gdynamic +import Generics.gCons + import iTasks -import gdynamic, gCons, GenEq, StdMisc, StdArray +import GenEq, StdMisc, StdArray import mTask +derive class iTask Display eval :: (Main (Eval t p)) -> [String] | toString t eval {main=(E f)} = [toString (fst (f Rd zero))] @@ -73,6 +77,7 @@ defEval2 v f = instance sds Eval where sds f = defEval f con f = defEval f + pub _ = undef defEval :: ((Eval t p)->In t (Main (Eval u q))) -> (Main (Eval u q)) | dyn t defEval f = @@ -155,22 +160,22 @@ derive class iTask DigitalPin, AnalogPin, Dyn, StateInterface, DisplayVar, Pin simulate :: (Main (Eval a p)) -> Task () simulate {main=(E f)} = setup zero where setup s = - updateInformation "State" [] (toView s) - >>* [ OnAction ActionFinish (always shutDown) - , OnAction (Action "setup" []) (hasValue - (\si.simloop (snd (f Rd (mergeView s si))))) - ] + updateInformation "State" [] (toView s) @! () +// >>* [ OnAction ActionFinish (always shutDown) +// , OnAction (Action "setup" []) (hasValue +// (\si.simloop (snd (f Rd (mergeView s si))))) +// ] simloop s = - updateInformation "State" [] (toView s) - >>* [ OnAction ActionFinish (always shutDown) - , OnAction (Action "clear serial" []) (always (simloop {s & serial = []})) - , OnAction ActionNew (always (setup zero)) - : if (isEmpty s.tasks) - [] - [OnAction (Action "loop" []) (hasValue - \si.simloop (step` (mergeView s si))) - ] - ] + updateInformation "State" [] (toView s) @!() +// >>* [ OnAction ActionFinish (always shutDown) +// , OnAction (Action "clear serial" []) (always (simloop {s & serial = []})) +// , OnAction ActionNew (always (setup zero)) +// : if (isEmpty s.tasks) +// [] +// [OnAction (Action "loop" []) (hasValue +// \si.simloop (step` (mergeView s si))) +// ] +// ] toView :: State` -> StateInterface toView s =