:: MTaskMSGSend
= MTTask MTaskInterval String
| MTTaskDel Int
- | MTSds Int String
- | MTUpd Int String
+ | MTSds Int BCValue
+ | MTUpd Int BCValue
+ | MTSpec
:: MTaskInterval
= OneShot
{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
derive consNum BCValue
derive class gCons Long, UserLED, Button, AnalogPin, DigitalPin, PinMode, Pin
-derive class iTask UserLED, Long, Pin, Button, AnalogPin, DigitalPin, PinMode
+derive class iTask UserLED, Long, Pin, Button, AnalogPin, DigitalPin, PinMode, MTaskDeviceSpec
derive gEditor BCValue
derive gText BCValue
derive JSONEncode BCValue
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)