derive class iTask MTaskTask, MTaskInterval, Main, ByteCode, Stmt, Expr, BC, BCState, RWST, Identity
makeTask :: String Int -> Task MTaskTask
-makeTask name ident = get currentDateTime
+makeTask name ident = get currentDateTime
@ \dt->{MTaskTask | name=name,ident=ident,dateAdded=dt}
+import StdDebug
+import StdMisc
sendTaskToDevice :: String (Main (ByteCode a Stmt)) (MTaskDevice, MTaskInterval) -> Task [MTaskDevice]
sendTaskToDevice wta mTask (device, timeout)
-# (msgs, newState) = toMessages timeout mTask device.deviceState
-# shares = [makeShare wta sdsi sdsval\\{sdsi,sdsval}<-newState.sdss, (MTSds sdsi` _)<-msgs | sdsi == sdsi`]
+| not (trace_tn "compiling task") = undef
+# (msgs, newState=:{sdss}) = toMessages timeout mTask device.deviceState
+| not (trace_tn "Done compiling task") = undef
+# shares = [makeShare wta "" sdsi sdsval\\{sdsi,sdsval}<-sdss, (MTSds sdsi` _)<-msgs | sdsi == sdsi`]
= updateShares device ((++) shares)
>>| sendMessages msgs device
>>| makeTask wta -1
addTaskUpState :: BCState MTaskTask MTaskDevice -> MTaskDevice
addTaskUpState st task device = { MTaskDevice | device &
deviceState=st, deviceTasks=[task:device.deviceTasks]}
+
+//liftmTask :: String (Main (ByteCode a Stmt)) (MTaskDevice, MTaskInterval) -> Task a
+//liftmTask wta mTask (device, timeout)
+// = sendTaskToDevice wta mTask (device, timeout)
+// >>| wait "waiting for task to return" $ sdsFocus
+// >>| treturn