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
14 derive conses MTaskResource, TCPSettings
15 derive consName MTaskResource, TCPSettings
18 channels :: MTaskDevice -> Shared Channels
19 :: Channels :== ([MTaskMSGRecv], [MTaskMSGSend], Bool)
22 = TCPDevice TCPSettings
23 | SerialDevice TTYSettings
26 deviceTask :: Maybe TaskId
27 ,deviceError :: Maybe String
28 ,deviceChannels :: String
30 ,deviceTasks :: [MTaskTask]
31 ,deviceData :: MTaskResource
34 instance == MTaskDevice
36 class MTaskDuplex a where
37 synFun :: a (Shared Channels) -> Task ()
39 startupDevices :: Task [MTaskDevice]
40 connectDevice :: (MTaskDevice (Shared Channels) -> Task ()) MTaskDevice -> Task ()
41 manageDevices :: (MTaskDevice (Shared Channels) -> Task ()) [MTaskDevice] -> Task ()
42 sendToDevice :: String (Main (ByteCode () Stmt)) (MTaskDevice, MTaskInterval) -> Task ()
44 deviceTaskDelete :: MTaskDevice MTaskTask -> Task ()
45 deviceTaskAcked :: MTaskDevice Int -> Task ()
46 deviceTaskDeleteAcked :: MTaskDevice Int -> Task ()