aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs188
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs25
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs1
3 files changed, 203 insertions, 11 deletions
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;
+ /// <summary>
+ /// Gets or sets the job.
+ /// </summary>
+ [XmlIgnore]
+ public Job Job
+ {
+ get { return _job; }
+ set { _job = value; RaisePropertyChangedAuto(); }
+ }
+
+ private Segment _segment;
+ /// <summary>
+ /// Gets or sets the segment.
+ /// </summary>
+ [XmlIgnore]
+ public Segment Segment
+ {
+ get { return _segment; }
+ set { _segment = value; RaisePropertyChangedAuto(); }
+ }
+
+ private BrushStop _brushStop;
+ /// <summary>
+ /// Gets or sets the brush stop.
+ /// </summary>
+ [XmlIgnore]
+ public BrushStop BrushStop
+ {
+ get { return _brushStop; }
+ set { _brushStop = value; RaisePropertyChangedAuto(); }
+ }
+
+ private Machine _machine;
+ /// <summary>
+ /// Gets or sets the machine.
+ /// </summary>
+ [XmlIgnore]
+ public Machine Machine
+ {
+ get { return _machine; }
+ set { _machine = value; RaisePropertyChangedAuto(); Init(); StartStopJobCommand.RaiseCanExecuteChanged(); }
+ }
+
+ private ProcessParametersTable _processParameters;
+ /// <summary>
+ /// Gets or sets the process parameters.
+ /// </summary>
+ [XmlIgnore]
+ public ProcessParametersTable ProcessParameters
+ {
+ get { return _processParameters; }
+ set { _processParameters = value; RaisePropertyChangedAuto(); Init(); StartStopJobCommand.RaiseCanExecuteChanged(); }
+ }
+
+ private Rml _rml;
+ /// <summary>
+ /// Gets or sets the RML.
+ /// </summary>
+ [XmlIgnore]
+ public Rml Rml
+ {
+ get { return _rml; }
+ set { _rml = value; RaisePropertyChangedAuto(); Init(); StartStopJobCommand.RaiseCanExecuteChanged(); }
+ }
+
+ private RunningJobStatus _runningJobStatus;
+ /// <summary>
+ /// Gets or sets the running job status.
+ /// </summary>
+ [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(); }
+ }
+
+ /// <summary>
+ /// Gets or sets the start stop job command.
+ /// </summary>
+ [XmlIgnore]
+ public RelayCommand StartStopJobCommand { get; set; }
+
+ [XmlIgnore]
+ public JobHandler JobHandler { get; set; }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="JobRunnerItem"/> class.
+ /// </summary>
+ 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();
+ }
+ }
+
+ /// <summary>
+ /// Initializes the specified configuration.
+ /// </summary>
+ /// <param name="configuration">The configuration.</param>
+ /// <param name="rml">The RML.</param>
+ /// <param name="processParameters">The process parameters.</param>
+ public void Init()
+ {
+ if (Machine != null && Rml != null && ProcessParameters != null && BrushStop != null)
+ {
+ Job.Machine = Machine;
+ Job.Rml = Rml;
+ BrushStop.SetLiquidVolumes(Machine.Configuration, Rml, ProcessParameters);
+ }
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="JobRunnerItem"/> class.
+ /// </summary>
+ /// <param name="job">The job.</param>
+ public JobRunnerItem(Job job) : this()
+ {
+
+ }
+
+ /// <summary>
+ /// Clones this instance.
+ /// </summary>
+ /// <returns></returns>
+ 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<ProcessParametersTable> ProcessParametersTables { get; set; }
+
+ static ProcessParametersItem()
+ {
+ ProcessParametersTables = new ObservableCollection<ProcessParametersTable>();
+ }
+
public class ParameterIndex
{
public String Name { get; set; }
@@ -28,16 +36,6 @@ namespace Tango.MachineStudio.Technician.TechItems
public event EventHandler<ProcessParametersTable> PushParametersPressed;
- private String _displayName;
- /// <summary>
- /// Gets or sets the display name.
- /// </summary>
- public String DisplayName
- {
- get { return _displayName; }
- set { _displayName = value; RaisePropertyChangedAuto(); }
- }
-
private ProcessParametersTable _processParameters;
/// <summary>
/// Gets or sets the process parameters.
@@ -83,15 +81,20 @@ namespace Tango.MachineStudio.Technician.TechItems
public ProcessParametersItem() : base()
{
ParametersIndices = new List<ParameterIndex>();
- 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
{
/// <summary>