definition module mTaskInterpret
+import mTask
+
from Data.Functor.Identity import :: Identity
from Control.Monad.State import :: State, :: StateT
from Control.Monad.RWST import :: RWST, :: RWS
from Data.Either import :: Either
-import mTask
+from iTasks._Framework.Generic.Defaults import generic gDefault
+from GenPrint import generic gPrint
+from Generics.gCons import class gCons, generic conses, generic consName, generic consIndex, generic consNum
:: MTaskMSGRecv
= MTTaskAck Int
| MTTaskDelAck Int
| MTSDSAck Int
| MTSDSDelAck Int
- | MTPub Int String
+ | MTPub Int BCValue
| MTMessage String
+ | MTDevSpec MTaskDeviceSpec
| MTEmpty
:: MTaskMSGSend
| 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
instance toString MTaskMSGRecv
instance toString MTaskMSGSend
:: BC
= BCNop
| BCLab Int
-// | E.e: BCPush e & toByteCode e
- | BCPush String
+ | BCPush BCValue
+// | BCPush String
| BCPop
//SDS functions
| BCSdsStore Int
| BCDigitalWrite Pin
| BCTest AnalogPin
-derive class gCons BC
+derive gPrint BCValue, MTaskDeviceSpec
+derive consIndex BCValue
+derive consName BCValue
+derive conses BCValue
+derive consNum BCValue
+
+derive class gCons Long, UserLED, Button, AnalogPin, DigitalPin, PinMode, Pin
+derive class iTask UserLED, Long, Pin, Button, AnalogPin, DigitalPin, PinMode, MTaskDeviceSpec
+derive gEditor BCValue
+derive gText BCValue
+derive JSONEncode BCValue
+derive JSONDecode BCValue
+derive gDefault BCValue
+derive gEq BCValue
:: ByteCode a p = BC (RWS () [BC] BCState ())
:: BCShare = {
sdsi :: Int,
sdspub :: Bool,
- sdsval :: Dynamic,
- sdsbc :: String
+ sdsval :: BCValue
}
:: BCState = {
class toByteCode a :: a -> String
class fromByteCode a :: String -> a
-class mTaskType a | toByteCode, fromByteCode, TC a
+class mTaskType a | toByteCode, fromByteCode, iTask, TC a
-instance toByteCode Int, Bool, Char, Long, String, Button, UserLED
-instance fromByteCode Int, Bool, Char, Long, String, Button, UserLED
+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 toChar Pin
instance arith ByteCode
instance boolExpr ByteCode
instance analogIO ByteCode