diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs index 41fff94d9..7c2acfdbb 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs @@ -540,6 +540,11 @@ namespace Tango.MachineStudio.Technician.ViewModels var editor = CreateElement<ProcessParametersElementEditor, ProcessParametersItem, object>(bounds, null); InitProcessParameterItem(editor.ProcessParametersItem); } + else if (item is JobRunnerItem) + { + var editor = CreateElement<JobRunnerElementEditor, JobRunnerItem, object>(bounds, null); + InitJobRunnerItem(editor.JobRunnerItem); + } } /// <summary> @@ -664,6 +669,11 @@ namespace Tango.MachineStudio.Technician.ViewModels var editor = CreateElement<ProcessParametersElementEditor>(item); InitProcessParameterItem(editor.ProcessParametersItem); } + else if (item is JobRunnerItem) + { + var editor = CreateElement<JobRunnerElementEditor>(item); + InitJobRunnerItem(editor.JobRunnerItem); + } } /// <summary> @@ -1183,6 +1193,49 @@ namespace Tango.MachineStudio.Technician.ViewModels } /// <summary> + /// Initializes the job runner item. + /// </summary> + /// <param name="item">The item.</param> + /// <exception cref="NotImplementedException"></exception> + private void InitJobRunnerItem(JobRunnerItem item) + { + item.StartJob += () => + { + try + { + CheckMachineOperator(); + + var handler = MachineOperator.Print(item.Job, item.ProcessParameters); + + item.JobHandler = handler; + + handler.StatusChanged += (x, status) => + { + item.RunningJobStatus = status; + }; + + handler.Stopped += (x,e) => + { + item.IsJobStarted = false; + }; + } + catch (Exception ex) + { + _notification.ShowError(ex.Message); + } + }; + + item.StopJob += () => + { + if (item.JobHandler != null) + { + item.JobHandler.Cancel(); + item.JobHandler = null; + } + }; + } + + /// <summary> /// Checks the machine operator. /// </summary> /// <exception cref="InvalidOperationException">No machine connected.</exception> |
