aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-05-28 16:41:29 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-05-28 16:41:29 +0300
commit25d5ae2d526603cb5097d19f2e5f2525baa362d4 (patch)
treec9ecbd6958ce4821bf7355ecff1f0b08d5b01e85 /Software/Visual_Studio/PPC
parent353003efbcfd0f461b393d7242f1ef2d401c39fe (diff)
downloadTango-25d5ae2d526603cb5097d19f2e5f2525baa362d4.tar.gz
Tango-25d5ae2d526603cb5097d19f2e5f2525baa362d4.zip
JobResume refactored !
Diffstat (limited to 'Software/Visual_Studio/PPC')
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/MainViewVM.cs12
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs44
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 { }
}
}