From b8566b704e0804239bcb58dfb90b32e5334ce446 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 15 Jul 2018 17:58:46 +0300 Subject: Implemented JobRunner on Tech Board !. --- .../TechItems/JobRunnerItem.cs | 188 +++++++++++++++++++++ .../TechItems/ProcessParametersItem.cs | 25 +-- .../TechItems/TechItem.cs | 1 + 3 files changed, 203 insertions(+), 11 deletions(-) create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs new file mode 100644 index 000000000..562491630 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs @@ -0,0 +1,188 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; +using System.Xml.Serialization; +using Tango.BL.Entities; +using Tango.BL.Enumerations; +using Tango.Core.Commands; +using Tango.Integration.Operation; +using Tango.SharedUI.Helpers; + +namespace Tango.MachineStudio.Technician.TechItems +{ + [TechItem(21)] + public class JobRunnerItem : TechItem + { + public event Action StartJob; + public event Action StopJob; + + private Job _job; + /// + /// Gets or sets the job. + /// + [XmlIgnore] + public Job Job + { + get { return _job; } + set { _job = value; RaisePropertyChangedAuto(); } + } + + private Segment _segment; + /// + /// Gets or sets the segment. + /// + [XmlIgnore] + public Segment Segment + { + get { return _segment; } + set { _segment = value; RaisePropertyChangedAuto(); } + } + + private BrushStop _brushStop; + /// + /// Gets or sets the brush stop. + /// + [XmlIgnore] + public BrushStop BrushStop + { + get { return _brushStop; } + set { _brushStop = value; RaisePropertyChangedAuto(); } + } + + private Machine _machine; + /// + /// Gets or sets the machine. + /// + [XmlIgnore] + public Machine Machine + { + get { return _machine; } + set { _machine = value; RaisePropertyChangedAuto(); Init(); StartStopJobCommand.RaiseCanExecuteChanged(); } + } + + private ProcessParametersTable _processParameters; + /// + /// Gets or sets the process parameters. + /// + [XmlIgnore] + public ProcessParametersTable ProcessParameters + { + get { return _processParameters; } + set { _processParameters = value; RaisePropertyChangedAuto(); Init(); StartStopJobCommand.RaiseCanExecuteChanged(); } + } + + private Rml _rml; + /// + /// Gets or sets the RML. + /// + [XmlIgnore] + public Rml Rml + { + get { return _rml; } + set { _rml = value; RaisePropertyChangedAuto(); Init(); StartStopJobCommand.RaiseCanExecuteChanged(); } + } + + private RunningJobStatus _runningJobStatus; + /// + /// Gets or sets the running job status. + /// + [XmlIgnore] + public RunningJobStatus RunningJobStatus + { + get { return _runningJobStatus; } + set { _runningJobStatus = value; RaisePropertyChangedAuto(); } + } + + private bool _isJobStarted; + [XmlIgnore] + public bool IsJobStarted + { + get { return _isJobStarted; } + set { _isJobStarted = value; RaisePropertyChangedAuto(); } + } + + /// + /// Gets or sets the start stop job command. + /// + [XmlIgnore] + public RelayCommand StartStopJobCommand { get; set; } + + [XmlIgnore] + public JobHandler JobHandler { get; set; } + + /// + /// Initializes a new instance of the class. + /// + public JobRunnerItem() : base() + { + StartStopJobCommand = new RelayCommand(StartStopJob, (x) => Job != null && Segment != null && BrushStop != null && Machine != null && Rml != null && ProcessParameters != null); + + Job = new Job(); + Job.WindingMethod = Adapter.WindingMethods.FirstOrDefault(); + Job.SpoolType = Adapter.SpoolTypes.FirstOrDefault(); + Job.JobType = JobTypes.Sewing; + + Segment = Job.AddSolidSegment(); + BrushStop = Segment.AddBrushStop(); + BrushStop.ColorSpace = Adapter.ColorSpaces.SingleOrDefault(x => x.Code == ColorSpaces.Volume.ToInt32()); + + Name = "Job Runner"; + Description = "Job Runner"; + Image = ResourceHelper.GetImageFromResources("Images/rgb-big.png"); + } + + private void StartStopJob() + { + if (!IsJobStarted) + { + IsJobStarted = true; + StartJob?.Invoke(); + } + else + { + StopJob?.Invoke(); + } + } + + /// + /// Initializes the specified configuration. + /// + /// The configuration. + /// The RML. + /// The process parameters. + public void Init() + { + if (Machine != null && Rml != null && ProcessParameters != null && BrushStop != null) + { + Job.Machine = Machine; + Job.Rml = Rml; + BrushStop.SetLiquidVolumes(Machine.Configuration, Rml, ProcessParameters); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// The job. + public JobRunnerItem(Job job) : this() + { + + } + + /// + /// Clones this instance. + /// + /// + public override TechItem Clone() + { + JobRunnerItem cloned = base.Clone() as JobRunnerItem; + cloned.Job = Job.Clone(); + cloned.Segment = cloned.Job.Segments.First(); + cloned.BrushStop = cloned.Job.Segments.First().BrushStops.First(); + return cloned; + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs index a6d3ae8f0..79aea7a0c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -18,6 +19,13 @@ namespace Tango.MachineStudio.Technician.TechItems [TechItem(20)] public class ProcessParametersItem : TechItem { + public static ObservableCollection ProcessParametersTables { get; set; } + + static ProcessParametersItem() + { + ProcessParametersTables = new ObservableCollection(); + } + public class ParameterIndex { public String Name { get; set; } @@ -28,16 +36,6 @@ namespace Tango.MachineStudio.Technician.TechItems public event EventHandler PushParametersPressed; - private String _displayName; - /// - /// Gets or sets the display name. - /// - public String DisplayName - { - get { return _displayName; } - set { _displayName = value; RaisePropertyChangedAuto(); } - } - private ProcessParametersTable _processParameters; /// /// Gets or sets the process parameters. @@ -83,15 +81,20 @@ namespace Tango.MachineStudio.Technician.TechItems public ProcessParametersItem() : base() { ParametersIndices = new List(); - DisplayName = "Process parameters " + _counter++; Name = "Process Parameters"; Description = "Process parameters table"; Image = ResourceHelper.GetImageFromResources("Images/process-params.png"); ProcessParameters = new ProcessParametersTable(); + ProcessParameters.Name = "Process parameters " + _counter++; Color = Colors.DodgerBlue; PushParametersCommand = new RelayCommand(() => PushParametersPressed?.Invoke(this, ProcessParameters)); ResetToRMLCommand = new RelayCommand(ResetToRml, () => SelectedResetRML != null); + + if (_counter > 1) + { + ProcessParametersTables.Add(ProcessParameters); + } } private void ResetToRml() diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs index ff75c1644..a1aba597b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs @@ -35,6 +35,7 @@ namespace Tango.MachineStudio.Technician.TechItems [XmlInclude(typeof(DancerItem))] [XmlInclude(typeof(SpeedSensorItem))] [XmlInclude(typeof(ProcessParametersItem))] + [XmlInclude(typeof(JobRunnerItem))] public abstract class TechItem : ExtendedObject { /// -- cgit v1.3.1