1 definition module Devices.mTaskDevice
3 from Data.Maybe import :: Maybe
5 import Devices.mTaskSerial
6 import Devices.mTaskTCP
13 derive class iTask MTaskDevice, MTaskResource, MTaskMSGRecv, MTaskMSGSend, BCShare
14 derive conses MTaskResource, TCPSettings
15 derive consName MTaskResource, TCPSettings
17 :: Channels :== ([MTaskMSGRecv], [MTaskMSGSend], Bool)
20 = TCPDevice TCPSettings
21 | SerialDevice TTYSettings
24 { deviceTask :: Maybe TaskId
25 , deviceError :: Maybe String
26 , deviceChannels :: String
27 , deviceName :: String
28 , deviceTasks :: [MTaskTask]
29 , deviceData :: MTaskResource
30 , deviceSpec :: Maybe MTaskDeviceSpec
31 , deviceShares :: [MTaskShare]
34 instance == MTaskDevice
36 class MTaskDuplex a where
37 synFun :: a (Shared Channels) -> Task ()
39 withDevices :: MTaskDevice (MTaskDevice -> MTaskDevice) -> Task [MTaskDevice]
40 //withDevices :: MTaskDevice (MTaskDevice -> MTaskDevice) -> Task ()
42 startupDevices :: Task [MTaskDevice]
43 connectDevice :: (MTaskDevice (Shared Channels) -> Task ()) MTaskDevice -> Task Channels
44 manageDevices :: (MTaskDevice (Shared Channels) -> Task ()) [MTaskDevice] -> Task ()
46 sendMessages :: [MTaskMSGSend] MTaskDevice -> Task Channels
47 sendMessagesIW :: [MTaskMSGSend] MTaskDevice *IWorld -> *(MaybeError TaskException (), *IWorld)
50 deviceTaskDelete :: MTaskDevice MTaskTask -> Task ()
51 deviceTaskAcked :: MTaskDevice Int Int -> Task [MTaskDevice]
52 deviceTaskDeleteAcked :: MTaskDevice Int -> Task [MTaskDevice]
53 deviceAddSpec :: MTaskDevice MTaskDeviceSpec -> Task [MTaskDevice]