add memory reset when resetting, add debug for share writes and add live share changi...
[mTask.git] / miTask.icl
index c7b68dd..cafbffa 100644 (file)
@@ -24,21 +24,31 @@ import iTasks._Framework.Serialization
 
 import TTY, iTasksTTY
 
-//derive class iTask ByteSize, Parity, BaudRate, TTYSettings, TCPSettings
-//derive class iTask MTaskDeviceSpec, MTaskResource, MTaskTask, MTaskDevice
+Start world = startEngine [
+               publish "/manage" $ const $ mTaskManager
+                       >>* [OnAction (Action "Shutdown") (always $ shutDown)],
+               publish "/" $ const demo
+       ] world
 
-Start world = startEngine (mTaskManager
-       >>* [OnAction (Action "Shutdown") (always $ shutDown)]) 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
@@ -65,8 +75,8 @@ 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 ()