diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-05-28 16:41:29 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-05-28 16:41:29 +0300 |
| commit | 25d5ae2d526603cb5097d19f2e5f2525baa362d4 (patch) | |
| tree | c9ecbd6958ce4821bf7355ecff1f0b08d5b01e85 /Software/Visual_Studio/PPC | |
| parent | 353003efbcfd0f461b393d7242f1ef2d401c39fe (diff) | |
| download | Tango-25d5ae2d526603cb5097d19f2e5f2525baa362d4.tar.gz Tango-25d5ae2d526603cb5097d19f2e5f2525baa362d4.zip | |
JobResume refactored !
Diffstat (limited to 'Software/Visual_Studio/PPC')
3 files changed, 37 insertions, 21 deletions
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/MainViewVM.cs index 48e7a55ec..087e30be6 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/MainViewVM.cs @@ -35,21 +35,13 @@ namespace Tango.PPC.Jobs.ViewModels MachineProvider.MachineOperator.ResumingJob += MachineOperator_ResumingJob; } - private async void MachineOperator_ResumingJob(object sender, ResumingJobEventArgs e) + private void MachineOperator_ResumingJob(object sender, ResumingJobEventArgs e) { LogManager.Log($"Trying to resume job '{e.JobGuid}'..."); try { - var job = await new JobBuilder(ObservablesContext.CreateDefault()).Set(e.JobGuid) - .WithConfiguration() - .WithRML() - .WithUser() - .WithSegments() - .WithBrushStops() - .BuildAsync(); - - e.Approve(job); + e.Approve(); InvokeUI(() => { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs index 84190d373..2e4e01497 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs @@ -100,7 +100,7 @@ namespace Tango.PPC.Common.Connection MachineOperator = new MachineOperator(); MachineOperator.StatusChanged += MachineOperator_StatusChanged; MachineOperator.EnableEventsNotification = true; - MachineOperator.EnableJobResume = false; + MachineOperator.EnableJobResume = true; MachineOperator.UseKeepAlive = true; MachineOperator.EnableMachineStatusUpdates = true; MachineOperator.EnableDiagnostics = true; diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs index 33e002950..8826a8be3 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs @@ -26,6 +26,8 @@ namespace Tango.PPC.Common.RemoteJob private List<RunningJobUpdateClient> _clients; private JobHandler _handler; + private JobDTO _currentJobDTO; + private ProcessParametersTableDTO _currentJobProcessParameters; public bool Enabled { get; set; } = true; @@ -48,8 +50,8 @@ namespace Tango.PPC.Common.RemoteJob e.JobHandler.StatusChanged += JobHandler_StatusChanged; e.JobHandler.Stopped += JobHandler_Stopped; - var jobDTO = JobDTO.FromObservable(e.Job); - var processParametersDTO = ProcessParametersTableDTO.FromObservable(_handler.ProcessParameters); + _currentJobDTO = JobDTO.FromObservable(e.Job); + _currentJobProcessParameters = ProcessParametersTableDTO.FromObservable(_handler.ProcessParameters); foreach (var client in _clients.ToList()) { @@ -61,8 +63,8 @@ namespace Tango.PPC.Common.RemoteJob await client.Receiver.SendGenericResponse(new RemoteJobUpdateResponse() { - Job = jobDTO, - ProcessParameters = processParametersDTO, + Job = _currentJobDTO, + ProcessParameters = _currentJobProcessParameters, Progress = progress }, client.Token); @@ -74,16 +76,38 @@ namespace Tango.PPC.Common.RemoteJob private async void JobHandler_StatusChanged(object sender, RunningJobStatus e) { - foreach (var client in _clients.ToList().Where(x => x.JobSent)) + foreach (var client in _clients.ToList()) { - try + if (client.JobSent) { - await client.Receiver.SendGenericResponse(new RemoteJobUpdateResponse() + try { - Progress = GetJobProgress(_handler) - }, client.Token); + await client.Receiver.SendGenericResponse(new RemoteJobUpdateResponse() + { + Progress = GetJobProgress(_handler) + }, client.Token); + } + catch { } + } + else + { + try + { + RemoteJobProgress progress = new RemoteJobProgress(); + progress.Stage = RemoteJobStage.Started; + progress.JobStatus = _handler.JobStatus; + + await client.Receiver.SendGenericResponse(new RemoteJobUpdateResponse() + { + Job = _currentJobDTO, + ProcessParameters = _currentJobProcessParameters, + Progress = progress + }, client.Token); + + client.JobSent = true; + } + catch { } } - catch { } } } |
