definition module Devices.mTaskDevice from Data.Maybe import :: Maybe import iTasks import Devices.mTaskSerial import Devices.mTaskTCP import mTaskInterpret import Generics.gCons import iTasksTTY derive class iTask MTaskDevice, MTaskResource, MTaskMSGRecv, MTaskMSGSend derive conses MTaskResource, TCPSettings derive consName MTaskResource, TCPSettings channels :: MTaskDevice -> Shared Channels :: Channels :== ([MTaskMSGRecv], [MTaskMSGSend], Bool) :: MTaskResource = TCPDevice TCPSettings | SerialDevice TTYSettings :: MTaskDevice = { deviceTask :: Maybe TaskId ,deviceChannels :: String ,deviceName :: String ,deviceTasks :: [(String, Int)] ,deviceData :: MTaskResource } class MTaskDuplex a where synFun :: a (Shared Channels) -> Task () //makeDevice :: MTaskResource String -> Task MTaskDevice addDevice :: (Shared [MTaskDevice]) -> Task String //addDevice :: (Shared [MTaskDevice]) -> Task MTaskResource //addDevice :: (Shared [MTaskDevice]) -> Task () viewDevices :: [MTaskDevice] -> Task ()