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
28 ,deviceTasks :: [MTaskTask]
29 ,deviceData :: MTaskResource
32 instance == MTaskDevice
34 class MTaskDuplex a where
35 synFun :: a (Shared Channels) -> Task ()
37 startupDevices :: Task [MTaskDevice]
38 connectDevice :: (MTaskDevice (Shared Channels) -> Task ()) MTaskDevice -> Task ()
39 manageDevices :: (MTaskDevice (Shared Channels) -> Task ()) [MTaskDevice] -> Task ()
40 sendToDevice :: String (Main (ByteCode () Stmt)) (MTaskDevice, MTaskInterval) -> Task ()
41 sendMessages :: [MTaskMSGSend] -> (MTaskDevice -> Task Channels)
43 deviceTaskDelete :: MTaskDevice MTaskTask -> Task ()
44 deviceTaskAcked :: MTaskDevice Int -> Task ()
45 deviceTaskDeleteAcked :: MTaskDevice Int -> Task ()