add reset functionality
[mTask.git] / mTaskInterpret.dcl
index 84c1e3f..63778bd 100644 (file)
@@ -11,7 +11,7 @@ from GenPrint import generic gPrint
 from Generics.gCons import class gCons, generic conses, generic consName, generic consIndex, generic consNum
 
 :: MTaskMSGRecv
-       = MTTaskAck Int
+       = MTTaskAck Int Int
        | MTTaskDelAck Int
        | MTSDSAck Int
        | MTSDSDelAck Int
@@ -21,10 +21,10 @@ from Generics.gCons import class gCons, generic conses, generic consName, generi
        | MTEmpty
 
 :: MTaskMSGSend
-       = MTTask MTaskInterval String
+       = MTTask MTaskInterval Char String
        | MTTaskDel Int
-       | MTSds Int String
-       | MTUpd Int String
+       | MTSds Int BCValue
+       | MTUpd Int BCValue
        | MTSpec
 
 :: MTaskInterval
@@ -36,8 +36,7 @@ from Generics.gCons import class gCons, generic conses, generic consName, generi
                {haveLed :: Bool
                ,haveAio :: Bool
                ,haveDio :: Bool
-               ,maxTask :: Int //Should be number of bytes reserved in total for shares, tasks and functions
-               ,maxSDS  :: Int
+               ,bytesMemory :: Int
        }
 
 :: BCValue = E.e: BCValue e & mTaskType e
@@ -68,6 +67,7 @@ decode :: String -> MTaskMSGRecv
        //Binary Bool ops
        | BCAnd
        | BCOr
+       //Binary ops
        | BCEq
        | BCNeq
        | BCLes
@@ -92,7 +92,8 @@ decode :: String -> MTaskMSGRecv
        | BCAnalogWrite Pin
        | BCDigitalRead Pin
        | BCDigitalWrite Pin
-       | BCTest AnalogPin
+       //Return
+       | BCReturn
 
 derive gPrint BCValue, MTaskDeviceSpec
 derive consIndex BCValue
@@ -144,14 +145,14 @@ instance If ByteCode Stmt e Stmt
 instance If ByteCode x y Stmt
 instance IF ByteCode
 instance noOp ByteCode
+instance retrn ByteCode
 
 instance sds ByteCode
 instance assign ByteCode
 instance seq ByteCode
 instance serial ByteCode
 
-toMessages :: MTaskInterval (String, BCState) -> ([MTaskMSGSend], BCState)
-toSDSUpdate :: Int Int -> [MTaskMSGSend]
+toMessages :: MTaskInterval (Main (ByteCode a b)) BCState -> ([MTaskMSGSend], BCState)
 
 toByteVal :: BC -> String
 toReadableByteCode :: (ByteCode a b) BCState -> (String, BCState)