started with device handshake
[mTask.git] / mTaskInterpret.dcl
index 92f6683..f64cf62 100644 (file)
@@ -15,8 +15,9 @@ from Generics.gCons import class gCons, generic conses, generic consName, generi
        | MTTaskDelAck Int
        | MTSDSAck Int
        | MTSDSDelAck Int
        | MTTaskDelAck Int
        | MTSDSAck Int
        | MTSDSDelAck Int
-       | MTPub Int String
+       | MTPub Int BCValue
        | MTMessage String
        | MTMessage String
+       | MTDevSpec MTaskDeviceSpec
        | MTEmpty
 
 :: MTaskMSGSend
        | MTEmpty
 
 :: MTaskMSGSend
@@ -30,6 +31,14 @@ from Generics.gCons import class gCons, generic conses, generic consName, generi
        | OnInterval Int
        | OnInterrupt Int
 
        | OnInterval Int
        | OnInterrupt Int
 
+:: MTaskDeviceSpec =
+               {haveLed :: Bool
+               ,haveAio :: Bool
+               ,haveDio :: Bool
+               ,maxTask :: Int //Should be number of bytes reserved in total for shares, tasks and functions
+               ,maxSDS  :: Int
+       }
+
 :: BCValue = E.e: BCValue e & mTaskType e
 
 instance toString MTaskInterval
 :: BCValue = E.e: BCValue e & mTaskType e
 
 instance toString MTaskInterval
@@ -84,7 +93,7 @@ decode :: String -> MTaskMSGRecv
        | BCDigitalWrite Pin
        | BCTest AnalogPin
 
        | BCDigitalWrite Pin
        | BCTest AnalogPin
 
-derive gPrint BCValue
+derive gPrint BCValue, MTaskDeviceSpec
 derive consIndex BCValue
 derive consName BCValue
 derive conses BCValue
 derive consIndex BCValue
 derive consName BCValue
 derive conses BCValue
@@ -121,7 +130,7 @@ class mTaskType a | toByteCode, fromByteCode, iTask, TC a
 instance toByteCode Int, Bool, Char, Long, String, Button, UserLED, BCValue
 instance fromByteCode Int, Bool, Char, Long, String, Button, UserLED, BCValue
 instance toByteCode MTaskInterval
 instance toByteCode Int, Bool, Char, Long, String, Button, UserLED, BCValue
 instance fromByteCode Int, Bool, Char, Long, String, Button, UserLED, BCValue
 instance toByteCode MTaskInterval
-instance fromByteCode MTaskInterval
+instance fromByteCode MTaskInterval, MTaskDeviceSpec
 
 instance arith ByteCode
 instance boolExpr ByteCode
 
 instance arith ByteCode
 instance boolExpr ByteCode