send device move to task
[mTask.git] / mTaskInterpret.icl
index bd5572a..0026290 100644 (file)
@@ -329,10 +329,14 @@ toReadableByteCode x s
                        where
                                (ex, newls) = splitAt (bclength b - 1) ls
 
-toMessages :: MTaskInterval (String, BCState) -> ([MTaskMSGSend], BCState)
-toMessages interval (bytes, st=:{sdss}) = (
-       [MTSds sdsi $ toByteCode e\\{sdsi,sdsval=(BCValue e)}<-sdss] ++
-       [MTTask interval bytes], st)
+toMessages :: MTaskInterval (Main (ByteCode a b)) BCState -> ([MTaskMSGSend], BCState)
+toMessages interval x s
+# (bc, newstate) = toRealByteCode (unMain x) s
+# newsdss = 'DL'.difference s.sdss newstate.sdss
+= ([MTSds sdsi $ toByteCode e\\{sdsi,sdsval=(BCValue e)}<-newsdss] ++
+       [MTTask interval bc], newstate)
+
+instance == BCShare where (==) a b = a.sdsi == b.sdsi
 
 toSDSUpdate :: Int Int -> [MTaskMSGSend]
 toSDSUpdate i v = [MTUpd i (to16bit v)]