import iTasks
import Devices.mTaskSerial
import Devices.mTaskTCP
+import Utils.SDS
import Tasks.mTaskTask
import mTaskInterpret
import Generics.gCons
import iTasksTTY
-derive class iTask MTaskDevice, MTaskResource, MTaskMSGRecv, MTaskMSGSend
+derive class iTask MTaskDevice, MTaskResource, MTaskMSGRecv, MTaskMSGSend, BCShare
derive conses MTaskResource, TCPSettings
derive consName MTaskResource, TCPSettings
-channels :: MTaskDevice -> Shared Channels
-
:: Channels :== ([MTaskMSGRecv], [MTaskMSGSend], Bool)
:: MTaskResource
:: MTaskDevice = {
deviceTask :: Maybe TaskId
+ ,deviceError :: Maybe String
,deviceChannels :: String
,deviceName :: String
,deviceTasks :: [MTaskTask]
,deviceData :: MTaskResource
}
+instance == MTaskDevice
+
class MTaskDuplex a where
synFun :: a (Shared Channels) -> Task ()
+startupDevices :: Task [MTaskDevice]
+connectDevice :: (MTaskDevice (Shared Channels) -> Task ()) MTaskDevice -> Task ()
manageDevices :: (MTaskDevice (Shared Channels) -> Task ()) [MTaskDevice] -> Task ()
-sendToDevice :: (Map String (Main (ByteCode () Stmt))) String (MTaskDevice, Int) -> Task ()
+sendToDevice :: String (Main (ByteCode () Stmt)) (MTaskDevice, MTaskInterval) -> Task ()
+sendMessages :: [MTaskMSGSend] -> (MTaskDevice -> Task Channels)
deviceTaskDelete :: MTaskDevice MTaskTask -> Task ()
deviceTaskAcked :: MTaskDevice Int -> Task ()