Dynamic only in BCShare
authorMart Lubbers <mart@martlubbers.net>
Sun, 12 Mar 2017 14:30:57 +0000 (15:30 +0100)
committerMart Lubbers <mart@martlubbers.net>
Sun, 12 Mar 2017 14:31:01 +0000 (15:31 +0100)
Devices/mTaskDevice.icl
Shares/mTaskShare.dcl
mTaskInterpret.dcl
mTaskInterpret.icl

index 0304e7e..a157e0b 100644 (file)
@@ -114,7 +114,7 @@ sendToDevice wta mTask (device, timeout) =
        @! ()
        where
                sharename i = device.deviceChannels +++ "-" +++ toString i
        @! ()
        where
                sharename i = device.deviceChannels +++ "-" +++ toString i
-               toSDSRecords st = sequence "" [makeShare wta sdsi sdsval\\{sdsi,sdspub,sdsval}<-st.sdss]// | sdspub]
+               toSDSRecords st = sequence "" [makeShare wta sdsi sdsbc\\{sdsi,sdspub,sdsbc}<-st.sdss]// | sdspub]
 
                addTask :: MTaskTask MTaskDevice -> MTaskDevice
                addTask task device = {device & deviceTasks=[task:device.deviceTasks]}
 
                addTask :: MTaskTask MTaskDevice -> MTaskDevice
                addTask task device = {device & deviceTasks=[task:device.deviceTasks]}
index 3af2eac..a6967af 100644 (file)
@@ -14,4 +14,5 @@ derive class iTask MTaskShareType
 
 manageShares :: [MTaskShare] -> Task ()
 
 
 manageShares :: [MTaskShare] -> Task ()
 
+///makeShare :: String Int Dynamic -> Task MTaskShare
 makeShare :: String Int String -> Task MTaskShare
 makeShare :: String Int String -> Task MTaskShare
index f476232..999d734 100644 (file)
@@ -85,7 +85,8 @@ derive class gCons BC
 :: BCShare = {
                sdsi :: Int,
                sdspub :: Bool,
 :: BCShare = {
                sdsi :: Int,
                sdspub :: Bool,
-               sdsval :: String
+               sdsval :: Dynamic,
+               sdsbc :: String
        }
 
 :: BCState = {
        }
 
 :: BCState = {
@@ -97,7 +98,7 @@ instance zero BCState
 
 class toByteCode a :: a -> String
 class fromByteCode a :: String -> a
 
 class toByteCode a :: a -> String
 class fromByteCode a :: String -> a
-class mTaskType a | toByteCode, fromByteCode a
+class mTaskType a | toByteCode, fromByteCode, 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
 instance fromByteCode Int, Bool, Char, Long, String, Button, UserLED
index 5acd1da..3606e66 100644 (file)
@@ -215,9 +215,10 @@ unBC (BC x) = x
 instance sds ByteCode where
        sds f = {main = BC $ freshs 
                                >>= \sds->pure (f (tell` [BCSdsFetch sds]))
 instance sds ByteCode where
        sds f = {main = BC $ freshs 
                                >>= \sds->pure (f (tell` [BCSdsFetch sds]))
-                               >>= \(v In bdy)->modify (addSDS sds (toByteCode v)) >>| unBC (unMain bdy)}
+                               >>= \(v In bdy)->modify (addSDS sds v) >>| unBC (unMain bdy)}
+//                             >>= \(v In bdy)->modify (addSDS sds (toByteCode v)) >>| unBC (unMain bdy)}
                where
                where
-                       addSDS i v s = {s & sdss=[{sdsi=i,sdspub=False,sdsval=v}:s.sdss]}
+                       addSDS i v s = {s & sdss=[{sdsi=i,sdspub=False,sdsval=(dynamic v),sdsbc=toByteCode v}:s.sdss]}
 
        con f = undef
        pub (BC x) = BC $ censor (\[BCSdsFetch s]->[BCSdsPublish s])
 
        con f = undef
        pub (BC x) = BC $ censor (\[BCSdsFetch s]->[BCSdsPublish s])
@@ -286,7 +287,7 @@ toReadableByteCode x s
 
 toMessages :: MTaskInterval (String, BCState) -> ([MTaskMSGSend], BCState)
 toMessages interval (bytes, st=:{sdss}) = (
 
 toMessages :: MTaskInterval (String, BCState) -> ([MTaskMSGSend], BCState)
 toMessages interval (bytes, st=:{sdss}) = (
-       [MTSds s.sdsi (toByteCode s.sdsval)\\s<-sdss] ++
+       [MTSds s.sdsi s.sdsbc\\s<-sdss] ++
        [MTTask interval bytes], st)
 
 toSDSUpdate :: Int Int -> [MTaskMSGSend]
        [MTTask interval bytes], st)
 
 toSDSUpdate :: Int Int -> [MTaskMSGSend]