diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs | 94 |
1 files changed, 52 insertions, 42 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index 58d8de558..99d275744 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -917,58 +917,68 @@ namespace Tango.MachineStudio.Developer.ViewModels _navigation.NavigateTo(DeveloperNavigationView.RunningJobView); - LogManager.Log("Sending job to machine operator..."); - _jobHandler = MachineOperator.Print(ActiveJob, SelectedProcessParametersTable); - - _jobHandler.StatusReceived += (x, status) => + try { - RunningJobRemainingTime = _runningJobEstimatedDuration - TimeSpan.FromSeconds(RunningJobProgress / (SelectedProcessParametersTable.DyeingSpeed / 100d)); - RunningJobProgress = status.Progress; + LogManager.Log("Sending job to machine operator..."); + + _jobHandler = MachineOperator.Print(ActiveJob, SelectedProcessParametersTable); - foreach (var segment in RunningJobSegments) + _jobHandler.StatusReceived += (x, status) => { - var previousSegmentsWithThis = RunningJobSegments.Where(s => RunningJobSegments.IndexOf(s) <= RunningJobSegments.IndexOf(segment)).ToList(); - var segmentsDuration = TimeSpan.FromSeconds(previousSegmentsWithThis.Sum(s => s.Length) / (SelectedProcessParametersTable.DyeingSpeed / 100d)); - var segmentDuration = TimeSpan.FromSeconds(segment.Length / (SelectedProcessParametersTable.DyeingSpeed / 100d)); - TimeSpan remaining = segmentsDuration - TimeSpan.FromSeconds(RunningJobProgress / (SelectedProcessParametersTable.DyeingSpeed / 100d)); - if (remaining >= TimeSpan.Zero) - { - segment.RemainingTime = remaining; - } - if (remaining < segmentDuration) - { - segment.Started = true; - } - if (remaining <= TimeSpan.Zero) + RunningJobRemainingTime = _runningJobEstimatedDuration - TimeSpan.FromSeconds(RunningJobProgress / (SelectedProcessParametersTable.DyeingSpeed / 100d)); + RunningJobProgress = status.Progress; + + foreach (var segment in RunningJobSegments) { - segment.Completed = true; - segment.Started = false; + var previousSegmentsWithThis = RunningJobSegments.Where(s => RunningJobSegments.IndexOf(s) <= RunningJobSegments.IndexOf(segment)).ToList(); + var segmentsDuration = TimeSpan.FromSeconds(previousSegmentsWithThis.Sum(s => s.Length) / (SelectedProcessParametersTable.DyeingSpeed / 100d)); + var segmentDuration = TimeSpan.FromSeconds(segment.Length / (SelectedProcessParametersTable.DyeingSpeed / 100d)); + TimeSpan remaining = segmentsDuration - TimeSpan.FromSeconds(RunningJobProgress / (SelectedProcessParametersTable.DyeingSpeed / 100d)); + if (remaining >= TimeSpan.Zero) + { + segment.RemainingTime = remaining; + } + if (remaining < segmentDuration) + { + segment.Started = true; + } + if (remaining <= TimeSpan.Zero) + { + segment.Completed = true; + segment.Started = false; + } } - } - }; - - _jobHandler.Failed += (x, ex) => - { - LogManager.Log(ex, String.Format("Job {0} has failed.", RunningJob.Name)); - SetJobFailed(); + }; - InvokeUI(() => + _jobHandler.Failed += (x, ex) => { - _notification.ShowError("Job failed. " + ex.Message); - }); - }; + LogManager.Log(ex, String.Format("Job {0} has failed.", RunningJob.Name)); + SetJobFailed(); - _jobHandler.Completed += (x, e) => - { - LogManager.Log(String.Format("Job {0} has completed.", RunningJob.Name)); - SetJobCompleted(); - }; + InvokeUI(() => + { + _notification.ShowError("Job failed. " + ex.Message); + }); + }; - _jobHandler.Canceled += (x, y) => + _jobHandler.Completed += (x, e) => + { + LogManager.Log(String.Format("Job {0} has completed.", RunningJob.Name)); + SetJobCompleted(); + }; + + _jobHandler.Canceled += (x, y) => + { + LogManager.Log(String.Format("Job {0} has been canceled.", RunningJob.Name)); + //Finally Canceled.. + }; + } + catch (Exception ex) { - LogManager.Log(String.Format("Job {0} has been canceled.", RunningJob.Name)); - //Finally Canceled.. - }; + LogManager.Log(ex); + _notification.ShowError("An error occurred while starting the job. " + Environment.NewLine + ex.Message); + SetJobFailed(); + } } /// <summary> |
