-sendToDevice :: String (Main (ByteCode () Stmt)) (MTaskDevice, MTaskInterval) -> Task ()
-sendToDevice wta mTask (device, timeout) =
- 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
- >>= \t->traceValue "Task made"
- >>| withDevices device (addTask t)
- >>| traceValue "Tasks share updated"
- @! ()
- where
- sharename i = device.deviceChannels +++ "-" +++ toString i
- toSDSRecords st = sequence "" [makeShare wta sdsi sdsval\\{sdsi,sdspub,sdsval}<-st.sdss]// | sdspub]