removed whileUnchanged for devices
[mTask.git] / Devices / mTaskDevice.dcl
index 1662cbb..5fc0bfe 100644 (file)
@@ -4,6 +4,7 @@ from Data.Maybe import :: Maybe
 import iTasks
 import Devices.mTaskSerial
 import Devices.mTaskTCP
+import Utils.SDS
 import Tasks.mTaskTask
 import mTaskInterpret
 import Generics.gCons
@@ -19,12 +20,16 @@ derive consName MTaskResource, TCPSettings
        = TCPDevice TCPSettings
        | SerialDevice TTYSettings
 
-:: MTaskDevice = {
-                deviceTask :: Maybe TaskId
-               ,deviceChannels :: String
-               ,deviceName :: String
-               ,deviceTasks :: [MTaskTask]
-               ,deviceData :: MTaskResource
+:: MTaskDevice =
+               { deviceTask :: Maybe TaskId
+               , deviceError :: Maybe String
+               , deviceChannels :: String
+               , deviceName :: String
+               , deviceState :: BCState
+               , deviceTasks :: [MTaskTask]
+               , deviceData :: MTaskResource
+               , deviceSpec :: Maybe MTaskDeviceSpec
+               , deviceShares :: [MTaskShare]
        }
 
 instance == MTaskDevice
@@ -32,10 +37,18 @@ instance == MTaskDevice
 class MTaskDuplex a where
        synFun :: a (Shared Channels) -> Task ()
 
-manageDevices :: (MTaskDevice (Shared Channels) -> Task ()) [MTaskDevice] -> Task ()
-sendToDevice :: String (Main (ByteCode () Stmt)) (MTaskDevice, MTaskInterval) -> Task ()
-sendMessages :: [MTaskMSGSend] -> (MTaskDevice -> Task Channels)
+withDevices :: MTaskDevice (MTaskDevice -> MTaskDevice) -> Task [MTaskDevice]
+//withDevices :: MTaskDevice (MTaskDevice -> MTaskDevice) -> Task ()
+
+startupDevices :: Task [MTaskDevice]
+connectDevice :: (MTaskDevice (Shared Channels) -> Task ()) MTaskDevice -> Task Channels
+manageDevices :: (MTaskDevice (Shared Channels) -> Task ()) -> Task ()
+
+sendMessages :: [MTaskMSGSend] MTaskDevice -> Task Channels
+sendMessagesIW :: [MTaskMSGSend] MTaskDevice *IWorld -> *(MaybeError TaskException (), *IWorld)
+
 
 deviceTaskDelete :: MTaskDevice MTaskTask -> Task ()
-deviceTaskAcked :: MTaskDevice Int -> Task ()
-deviceTaskDeleteAcked :: MTaskDevice Int -> Task ()
+deviceTaskAcked :: MTaskDevice Int Int -> Task [MTaskDevice]
+deviceTaskDeleteAcked :: MTaskDevice Int -> Task [MTaskDevice]
+deviceAddSpec :: MTaskDevice MTaskDeviceSpec -> Task [MTaskDevice]