updates
[mTask.git] / Devices / mTaskDevice.dcl
index 6551eb3..f254a22 100644 (file)
@@ -4,6 +4,8 @@ from Data.Maybe import :: Maybe
 import iTasks
 import Devices.mTaskSerial
 import Devices.mTaskTCP
+import Utils.SDS
+import Tasks.mTaskTask
 import mTaskInterpret
 import Generics.gCons
 import iTasksTTY
@@ -12,8 +14,8 @@ derive class iTask MTaskDevice, MTaskResource, MTaskMSGRecv, MTaskMSGSend
 derive conses MTaskResource, TCPSettings
 derive consName MTaskResource, TCPSettings
 
-channels :: MTaskDevice -> Shared Channels
 
+channels :: MTaskDevice -> Shared Channels
 :: Channels :== ([MTaskMSGRecv], [MTaskMSGSend], Bool)
 
 :: MTaskResource 
@@ -22,17 +24,23 @@ channels :: MTaskDevice -> Shared Channels
 
 :: MTaskDevice = {
                 deviceTask :: Maybe TaskId
+               ,deviceError :: Maybe String
                ,deviceChannels :: String
                ,deviceName :: String
-               ,deviceTasks :: [(String, Int)]
+               ,deviceTasks :: [MTaskTask]
                ,deviceData :: MTaskResource
        }
 
+instance == MTaskDevice
+
 class MTaskDuplex a where
        synFun :: a (Shared Channels) -> Task ()
 
-//makeDevice :: MTaskResource String -> Task MTaskDevice
+startupDevices :: Task [MTaskDevice]
+connectDevice :: (MTaskDevice (Shared Channels) -> Task ()) MTaskDevice -> Task ()
+manageDevices :: (MTaskDevice (Shared Channels) -> Task ()) [MTaskDevice] -> Task ()
+sendToDevice :: String (Main (ByteCode () Stmt)) (MTaskDevice, MTaskInterval) -> Task ()
 
-addDevice :: (Shared [MTaskDevice]) -> Task String
-//addDevice :: (Shared [MTaskDevice]) -> Task MTaskResource
-//addDevice :: (Shared [MTaskDevice]) -> Task ()
+deviceTaskDelete :: MTaskDevice MTaskTask -> Task ()
+deviceTaskAcked :: MTaskDevice Int -> Task ()
+deviceTaskDeleteAcked :: MTaskDevice Int -> Task ()