X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=Devices%2FmTaskDevice.icl;h=0304e7ee20993e4396aa0c03051c0d288604d19b;hb=7ab8606c3d22a2bc2743eae7a398407c84d502f2;hp=661c701f87a106a2b85f7a6f6769281203f158c5;hpb=9f93ff243f8ba2e1924e70df10978060a3b6f461;p=mTask.git diff --git a/Devices/mTaskDevice.icl b/Devices/mTaskDevice.icl index 661c701..0304e7e 100644 --- a/Devices/mTaskDevice.icl +++ b/Devices/mTaskDevice.icl @@ -74,7 +74,7 @@ manageDevices processFun ds = anyTask [ <<@ ArrangeWithTabs @! () viewDevice :: (MTaskDevice (Shared Channels) -> Task ()) MTaskDevice -> Task () -viewDevice pf d = forever $ anyTask +viewDevice pf d = forever $ traceValue "viewDevice" >>| anyTask [viewInformation "Device settings" [] d @! () ,viewSharedInformation "Channels" [ViewAs dropEmpty] (channels d) @! () ,forever $ @@ -96,25 +96,25 @@ deleteDevice d = upd (\(r,s,ss)->(r,s,True)) (channels d) sendToDevice :: String (Main (ByteCode () Stmt)) (MTaskDevice, MTaskInterval) -> Task () sendToDevice wta mTask (device, timeout) = - get bcStateStore @ toMessages timeout o toRealByteCode (unMain mTask) - >>= \(msgs, st1)->set st1 bcStateStore @ toSDSRecords - >>= \sdss->set sdss sdsStore//MTaskShareaddToSDSShare - >>| makeShares sdss + traceValue "starting to send" + >>| get bcStateStore @ toMessages timeout o toRealByteCode (unMain mTask) + >>= \(msgs, st1)->traceValue "messages generated" + >>| set st1 bcStateStore + >>| traceValue "bcstate store updated" + >>| toSDSRecords st1 + >>= \sdss->traceValue "Shares created" + >>| set sdss sdsStore//MTaskShareaddToSDSShare + >>| traceValue "Shares store updated" >>| sendMessages msgs device + >>| traceValue "Messages sent" >>| makeTask wta -1 - >>= withDevices device o addTask + >>= \t->traceValue "Task made" + >>| withDevices device (addTask t) + >>| traceValue "Tasks share updated" @! () where sharename i = device.deviceChannels +++ "-" +++ toString i - toSDSRecords st = [{MTaskShare | - withTask=wta, - identifier=sdsi, - //We skip the only/local shares - realShare="mTaskSDS-" +++ toString sdsi} - \\{sdsi,sdspub,sdsval}<-st.sdss | sdspub] - - makeShares :: ([MTaskShare] -> Task ()) - makeShares = undef //foldr (\sh t->set sh.initValue (getSDSStore sh) >>| t) (treturn ()) + toSDSRecords st = sequence "" [makeShare wta sdsi sdsval\\{sdsi,sdspub,sdsval}<-st.sdss]// | sdspub] addTask :: MTaskTask MTaskDevice -> MTaskDevice addTask task device = {device & deviceTasks=[task:device.deviceTasks]}