1 definition module Devices.mTaskDevice
3 from Data.Maybe import :: Maybe
5 import Devices.mTaskSerial
6 import Devices.mTaskTCP
11 derive class iTask MTaskDevice, MTaskResource, MTaskMSGRecv, MTaskMSGSend
12 derive conses MTaskResource, TCPSettings
13 derive consName MTaskResource, TCPSettings
15 channels :: MTaskDevice -> Shared Channels
17 :: Channels :== ([MTaskMSGRecv], [MTaskMSGSend], Bool)
20 = TCPDevice TCPSettings
21 | SerialDevice TTYSettings
24 deviceTask :: Maybe TaskId
25 ,deviceChannels :: String
27 ,deviceTasks :: [(String, Int)]
28 ,deviceData :: MTaskResource
31 class MTaskDuplex a where
32 synFun :: a (Shared Channels) -> Task ()
34 //makeDevice :: MTaskResource String -> Task MTaskDevice
36 addDevice :: (Shared [MTaskDevice]) -> Task String
37 //addDevice :: (Shared [MTaskDevice]) -> Task MTaskResource
38 //addDevice :: (Shared [MTaskDevice]) -> Task ()