X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=Devices%2FmTaskDevice.icl;h=9b26455a6d0cc2055cf1074e1a27c8d687225217;hb=be3f747f775c05facb8a34cf0baba523401b88fb;hp=ef94a068431714b4f573bcddd08fbda1486a4e8a;hpb=639cdcf1c26177c87237bd5790e89184f531731d;p=mTask.git diff --git a/Devices/mTaskDevice.icl b/Devices/mTaskDevice.icl index ef94a06..9b26455 100644 --- a/Devices/mTaskDevice.icl +++ b/Devices/mTaskDevice.icl @@ -18,7 +18,7 @@ import iTasks.UI.Definition, iTasks.UI.Editor, iTasks.UI.Editor.Builtin, iTasks. from Data.Func import $ -derive class iTask MTaskDevice, MTaskResource, MTaskDeviceSpec, MTaskMSGRecv, MTaskMSGSend, BCShare +derive class iTask MTaskDevice, MTaskResource, MTaskMSGRecv, MTaskMSGSend, BCShare derive conses MTaskResource, TTYSettings, BaudRate, Parity, ByteSize, TCPSettings derive consName MTaskResource, TTYSettings, BaudRate, Parity, ByteSize, TCPSettings @@ -92,7 +92,7 @@ viewDevice pf d = forever $ traceValue "viewDevice" >>| anyTask deleteDevice :: MTaskDevice -> Task () deleteDevice d = upd (\(r,s,ss)->(r,s,True)) (channels d) >>| maybe (treturn ()) (flip removeTask topLevelTasks) d.deviceTask - >>| upd (filter ((==)d)) deviceStore + >>| upd (filter ((<>)d)) deviceStore @! () sendToDevice :: String (Main (ByteCode () Stmt)) (MTaskDevice, MTaskInterval) -> Task () @@ -136,12 +136,11 @@ deviceTaskAcked dev i [{t & ident=i}:ts] [t:ackFirst ts] deviceTaskDelete :: MTaskDevice MTaskTask -> Task () -deviceTaskDelete dev task = sendMessages [MTTaskDel task.ident] dev - >>| upd (\ds->filter ((<>) dev) ds) deviceStore @! () +deviceTaskDelete dev task = sendMessages [MTTaskDel task.ident] dev @! () deviceTaskDeleteAcked :: MTaskDevice Int -> Task () deviceTaskDeleteAcked d i = withDevices d $ deleteTask where deleteTask d = {d & deviceTasks=[s\\s<-d.deviceTasks | i <> s.ident]} deviceAddSpec :: MTaskDevice MTaskDeviceSpec -> Task () -deviceAddSpec d s = withDevices d $ \r->{r&deviceSpec=Just s} +deviceAddSpec d s = withDevices d $ \r->{MTaskDevice | r & deviceSpec=Just s}