X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=Tasks%2FmTaskTask.icl;h=27edc82a3658d62e1c7013e45d0736c9dd6a8450;hb=7d9088b54956fe56c36ca8d01ec386b48f0a1c47;hp=3e209da599fabb0ac40b23e26461fdcceefc65e2;hpb=8155b7e2298e78fd53fc17df35d940472dcf8661;p=mTask.git diff --git a/Tasks/mTaskTask.icl b/Tasks/mTaskTask.icl index 3e209da..27edc82 100644 --- a/Tasks/mTaskTask.icl +++ b/Tasks/mTaskTask.icl @@ -4,7 +4,6 @@ import mTask import iTasks import Devices.mTaskDevice - import iTasks._Framework.Serialization derive class iTask MTaskTask, MTaskInterval, Main, ByteCode, Stmt, Expr, BC, BCState, RWST, Identity @@ -13,12 +12,12 @@ makeTask :: String Int -> Task MTaskTask makeTask name ident = get currentDateTime @ \dt->{MTaskTask | name=name,ident=ident,dateAdded=dt} -sendTaskToDevice :: String (Main (ByteCode () Stmt)) (MTaskDevice, MTaskInterval) -> Task () +sendTaskToDevice :: String (Main (ByteCode a Stmt)) (MTaskDevice, MTaskInterval) -> Task () sendTaskToDevice wta mTask (device, timeout) = get bcStateStore @ toMessages timeout mTask >>= \(msgs, st1)->set st1 bcStateStore - >>| toSDSRecords msgs st1 - >>= \sdss->upd (mergeShares sdss) sdsStore + >>| toSDSRecords msgs st1 device + >>= \sdss->updateShares device ((++) sdss) >>| sendMessages msgs device >>| makeTask wta -1 >>= withDevices device o addTask @@ -26,14 +25,10 @@ sendTaskToDevice wta mTask (device, timeout) = where sharename i = device.deviceChannels +++ "-" +++ toString i - toSDSRecords :: [MTaskMSGSend] BCState -> Task [MTaskShare] - toSDSRecords s st = sequence "" + toSDSRecords :: [MTaskMSGSend] BCState MTaskDevice -> Task [MTaskShare] + toSDSRecords s st device = treturn [makeShare wta sdsi sdsval - \\{sdsi,sdspub,sdsval}<-st.sdss - , (MTSds sdsi` _)<-s - | sdsi == sdsi`] - - mergeShares a b = a ++ b + \\{sdsi,sdsval}<-st.sdss, (MTSds sdsi` _)<-s | sdsi == sdsi`] addTask :: MTaskTask MTaskDevice -> MTaskDevice addTask task device = {device & deviceTasks=[task:device.deviceTasks]}