experimental
[mTask.git] / Devices / mTaskDevice.icl
index 972aa7b..9a93634 100644 (file)
@@ -71,22 +71,22 @@ viewDevice d = anyTask
        where
                dropEmpty (r,s,ss) = (filter ((=!=)MTEmpty) r,s,ss)
 
-sendToDevice :: (Map String (Main (ByteCode () Stmt))) String (MTaskDevice, Int) -> Task ()
-sendToDevice tmap mTask (device, timeout) =
-               get bcStateStore @ createBytecode
+sendToDevice :: String (Main (ByteCode () Stmt)) (MTaskDevice, Int) -> Task ()
+sendToDevice wta mTask (device, timeout) =
+               get bcStateStore
+       >>= \st->treturn (toMessages timeout (toRealByteCode (unMain mTask) st))
        >>= \(msgs, st1)->set st1 bcStateStore @ toSDSRecords
        >>= \sdss->upd ((++)sdss) sdsStore//MTaskShareaddToSDSShare
        >>| makeShares sdss
        >>| sendMessage device msgs
-       >>| makeTask mTask -1
+       >>| makeTask wta -1
        >>= \task->withDevices device (addTask timeout task)
        @! ()
        where
-               createBytecode st = toMessages timeout $ toRealByteCode (unMain $ fromJust ('DM'.get mTask tmap)) st
                sharename i = device.deviceChannels +++ "-" +++ toString i
                toSDSRecords st = [{MTaskShare |
                        initValue=toInt d1*265 + toInt d2,
-                       withTask=mTask,
+                       withTask=wta,
                        identifier=i,
                        realShare="mTaskSDS-" +++ toString i}
                                \\(i,[d1,d2])<-st.sdss]