X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=miTask.icl;h=cafbffa0628e9fb05adf7d5c2e44eef37dba00fd;hb=7d9088b54956fe56c36ca8d01ec386b48f0a1c47;hp=e14f9e323d9e33eb7dd3cac7cdb1ac50bb7fa524;hpb=ff14654a72e483d14807272de58c21ad03677177;p=mTask.git diff --git a/miTask.icl b/miTask.icl index e14f9e3..cafbffa 100644 --- a/miTask.icl +++ b/miTask.icl @@ -24,19 +24,31 @@ import iTasks._Framework.Serialization import TTY, iTasksTTY -Start :: *World -> *World -Start world = startEngine (mTaskManager - >>* [OnAction (Action "Shutdown") (always $ shutDown)]) world +Start world = startEngine [ + publish "/manage" $ const $ mTaskManager + >>* [OnAction (Action "Shutdown") (always $ shutDown)], + publish "/" $ const demo + ] world + +demo = viewSharedInformation "Devices" [] deviceStore + >>* [OnValue $ ifValue pred (cont o hd)] + where + pred [] = False + pred [x:_] = not $ isEmpty x.deviceShares + + cont :: MTaskDevice -> Task () + cont dev = updateSharedInformation "Blinkyblink" [] (getRealShare dev (hd dev.deviceShares)) + >>| cont dev + mTaskManager :: Task () mTaskManager = startupDevices >>| anyTask [ viewmTasks @! () - , whileUnchanged sdsStore manageShares + , manageShares @! () , whileUnchanged deviceStore $ manageDevices process - ] <<@ ApplyLayout (sequenceLayouts - [ arrangeWithSideBar 0 LeftSide 260 True - , arrangeSplit Vertical True - ]) + ] <<@ ApplyLayout (foldl1 sequenceLayouts + [arrangeWithSideBar 0 LeftSide 260 True + ,arrangeSplit Vertical True]) where viewmTasks :: Task String viewmTasks = enterChoiceWithShared "Available mTasks" [ChooseFromList id] mTaskTaskStore @@ -48,7 +60,7 @@ mTaskManager = startupDevices >>| anyTask ds = fromJust ('DM'.get mTaskTask allmTasks) >>= \bc->(enterChoice "Choose Device" [ChooseFromDropdown \t->t.deviceName] ds -&&- enterInformation "Timeout" [] - ) >>* [OnAction (Action "Send") (withValue $ Just o sendToDevice mTaskTask bc)] + ) >>* [OnAction (Action "Send") (withValue $ Just o sendTaskToDevice mTaskTask bc)] @! () ) @@ -63,8 +75,9 @@ mTaskManager = startupDevices >>| anyTask proc [m:ms] = traceValue (toString m) >>| (case m of // MTSDSAck i = traceValue (toString m) @! () // MTSDSDelAck i = traceValue (toString m) @! () - MTPub i val = updateShare i val - MTTaskAck i = deviceTaskAcked device i + MTPub i val = updateShareFromPublish device i val @! () + MTTaskAck i mem = deviceTaskAcked device i mem MTTaskDelAck i = deviceTaskDeleteAcked device i @! () + MTDevSpec s = deviceAddSpec device s @! () _ = treturn () ) >>| proc ms