repositories
/
mTask.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
clean up share code and only show published tasks
[mTask.git]
/
mTaskInterpret.dcl
diff --git
a/mTaskInterpret.dcl
b/mTaskInterpret.dcl
index
70dc6ad
..
17034be
100644
(file)
--- a/
mTaskInterpret.dcl
+++ b/
mTaskInterpret.dcl
@@
-6,15
+6,26
@@
from Data.Monoid import class Semigroup, class Monoid
import mTask
:: MTaskMSGRecv
import mTask
:: MTaskMSGRecv
- = MTPub Int String
+ = MTTaskAck Int
+ | MTTaskDelAck Int
+ | MTSDSAck Int
+ | MTSDSDelAck Int
+ | MTPub Int String
| MTMessage String
| MTEmpty
:: MTaskMSGSend
| MTMessage String
| MTEmpty
:: MTaskMSGSend
- = MTSds Int String
- | MTTask Int String
+ = MTTask MTaskInterval String
+ | MTTaskDel Int
+ | MTSds Int String
| MTUpd Int String
| MTUpd Int String
+:: MTaskInterval
+ = OneShot
+ | OnInterval Int
+ | OnInterrupt Int
+
+instance toString MTaskInterval
instance toString MTaskMSGRecv
instance toString MTaskMSGSend
encode :: MTaskMSGSend -> String
instance toString MTaskMSGRecv
instance toString MTaskMSGSend
encode :: MTaskMSGSend -> String
@@
-49,6
+60,9
@@
decode :: String -> MTaskMSGRecv
| BCJmp Int
| BCJmpT Int
| BCJmpF Int
| BCJmp Int
| BCJmpT Int
| BCJmpF Int
+ //UserLED
+ | BCLedOn [Char]
+ | BCLedOff [Char]
//Serial
| BCSerialAvail
| BCSerialPrint
//Serial
| BCSerialAvail
| BCSerialPrint
@@
-66,10
+80,16
@@
decode :: String -> MTaskMSGRecv
instance Semigroup (ByteCode a p)
instance Monoid (ByteCode a p)
instance Semigroup (ByteCode a p)
instance Monoid (ByteCode a p)
+:: BCShare = {
+ sdsi :: Int,
+ sdspub :: Bool,
+ sdsval :: [Char]
+ }
+
:: BCState = {
freshl :: [Int],
freshs :: [Int],
:: BCState = {
freshl :: [Int],
freshs :: [Int],
- sdss :: [
(Int, [Char])
]
+ sdss :: [
BCShare
]
}
instance zero BCState
}
instance zero BCState
@@
-80,12
+100,15
@@
instance toByteCode Char
instance toByteCode String
instance toByteCode Long
instance toByteCode Button
instance toByteCode String
instance toByteCode Long
instance toByteCode Button
+instance toByteCode UserLED
+//instance toByteCode MTaskInterval
instance toChar Pin
instance arith ByteCode
instance boolExpr ByteCode
instance analogIO ByteCode
instance digitalIO ByteCode
instance toChar Pin
instance arith ByteCode
instance boolExpr ByteCode
instance analogIO ByteCode
instance digitalIO ByteCode
+instance userLed ByteCode
//instance If ByteCode Stmt Stmt Stmt
//instance If ByteCode e Stmt Stmt
//instance If ByteCode Stmt e Stmt
//instance If ByteCode Stmt Stmt Stmt
//instance If ByteCode e Stmt Stmt
//instance If ByteCode Stmt e Stmt
@@
-98,11
+121,9
@@
instance assign ByteCode
instance seq ByteCode
instance serial ByteCode
instance seq ByteCode
instance serial ByteCode
-//pub :: (ByteCode a b) -> ByteCode a b
-
-toMessages :: Int (String, BCState) -> ([MTaskMSGSend], BCState)
+toMessages :: MTaskInterval (String, BCState) -> ([MTaskMSGSend], BCState)
toSDSUpdate :: Int Int -> [MTaskMSGSend]
toByteVal :: BC -> [Char]
toReadableByteCode :: (ByteCode a b) -> (String, BCState)
toSDSUpdate :: Int Int -> [MTaskMSGSend]
toByteVal :: BC -> [Char]
toReadableByteCode :: (ByteCode a b) -> (String, BCState)
-toRealByteCode :: (ByteCode a b) -> (String, BCState)
+toRealByteCode :: (ByteCode a b)
BCState
-> (String, BCState)