X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=Devices%2FmTaskDevice.icl;fp=Devices%2FmTaskDevice.icl;h=378a5e32e440be29c20f33571fb367bf937c1487;hb=5bb47d85ee13e4c0907a82971a907657511211cc;hp=7316f94f65ba8f9f2952be11849103b43a80b5a0;hpb=a9e2b5a0fbabf17796a88efc7ab0862948e33e0a;p=mTask.git diff --git a/Devices/mTaskDevice.icl b/Devices/mTaskDevice.icl index 7316f94..378a5e3 100644 --- a/Devices/mTaskDevice.icl +++ b/Devices/mTaskDevice.icl @@ -14,6 +14,7 @@ import Utils.Devices import GenBimap import Devices.mTaskSerial import Devices.mTaskTCP +import Data.Tuple import iTasks._Framework.Store import iTasks.UI.Definition, iTasks.UI.Editor, iTasks.UI.Editor.Builtin, iTasks.UI.Editor.Common, iTasks.UI.Layout.Default, iTasks.UI.Layout.Common @@ -108,8 +109,15 @@ deleteDevice d = sendMessages [MTShutdown] d // >>| cleanSharesDevice d.deviceName @! () -sendMessages :: [MTaskMSGSend] -> (MTaskDevice -> Task Channels) -sendMessages msgs = upd (\(r,s,ss)->(r,msgs++s,ss)) o channels +sendMessages :: [MTaskMSGSend] MTaskDevice -> Task Channels +sendMessages msgs dev = upd (realMessageSend msgs) $ channels dev + +sendMessagesIW :: [MTaskMSGSend] MTaskDevice *IWorld -> *(MaybeError TaskException (), *IWorld) +sendMessagesIW msgs dev iworld + = modify (tuple () o realMessageSend msgs) (channels dev) iworld + +realMessageSend :: [MTaskMSGSend] Channels -> Channels +realMessageSend msgs (r,s,ss) = (r,msgs++s,ss) withDevices :: MTaskDevice (MTaskDevice -> MTaskDevice) -> Task () withDevices a trans = upd (map \b->if (b == a) (trans b) b) deviceStore @! ()