aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio')
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/CsvModel.cs13
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/LiquidQuantityModel.cs5
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StatsModel.cs22
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs96
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs144
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml91
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml40
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs2
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml12
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs16
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Statistics/DefaultStatisticsService.cs59
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationBrushStop.cs48
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationLiquidVolume.cs3
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/StatisticsResult.cs3
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml88
-rw-r--r--Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs64
-rw-r--r--Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs16
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs304
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/LiquidType.cs7
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs76
-rw-r--r--Software/Visual_Studio/Tango.BL/LiquidVolume.cs22
-rw-r--r--Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs261
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs8
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx30
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram194
-rw-r--r--Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs32
-rw-r--r--Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xmlbin97534 -> 97788 bytes
28 files changed, 1172 insertions, 486 deletions
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/CsvModel.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/CsvModel.cs
index 9e1485f07..783089fcf 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/CsvModel.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/CsvModel.cs
@@ -41,6 +41,11 @@ namespace Tango.FSE.Statistics.Models
public String InputMagenta { get; set; }
public String InputYellow { get; set; }
public String InputBlack { get; set; }
+ public String InputBBlue { get; set; }
+ public String InputOrange { get; set; }
+ public String InputRubine { get; set; }
+ public String InputNavy { get; set; }
+ public String InputViolet { get; set; }
public String OutputCyan { get; set; }
public String OutputMagenta { get; set; }
public String OutputYellow { get; set; }
@@ -48,6 +53,14 @@ namespace Tango.FSE.Statistics.Models
public String OutputLightCyan { get; set; }
public String OutputLightMagenta { get; set; }
public String OutputLightYellow { get; set; }
+ public String OutputBlue { get; set; }
+ public String OutputLightBlue { get; set; }
+ public String OutputOrange { get; set; }
+ public String OutputLightOrange { get; set; }
+ public String OutputRubine { get; set; }
+ public String OutputLightRubine { get; set; }
+ public String OutputNavy { get; set; }
+ public String OutputViolet { get; set; }
public String OutputTransparentInk { get; set; }
public String OutputLubricant { get; set; }
public String FailureReason { get; set; }
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/LiquidQuantityModel.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/LiquidQuantityModel.cs
index 9ce4768b5..37602258f 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/LiquidQuantityModel.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/LiquidQuantityModel.cs
@@ -3,14 +3,15 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.BL.Entities;
using Tango.BL.Enumerations;
namespace Tango.FSE.Statistics.Models
{
public class LiquidQuantityModel
{
- public LiquidTypes LiquidType { get; set; }
public double Quantity { get; set; }
+ public LiquidType LiquidType { get; set; }
public double Liters
{
@@ -21,7 +22,7 @@ namespace Tango.FSE.Statistics.Models
{
get
{
- return LiquidType.ToDescription() + $": {Liters.ToString("0.0000")} Liters";
+ return LiquidType.Name + $": {Liters.ToString("0.0000")} Liters";
}
}
}
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StatsModel.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StatsModel.cs
index 773bea60b..ab2119573 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StatsModel.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StatsModel.cs
@@ -31,18 +31,18 @@ namespace Tango.FSE.Statistics.Models
public StatsModel()
{
- LiquidQuantities = new List<LiquidQuantityModel>()
+ var liquidQuantities = new List<LiquidQuantityModel>();
+
+ foreach (var item in Enum.GetValues(typeof(LiquidTypes)).Cast<int>())
{
- new LiquidQuantityModel() { LiquidType = LiquidTypes.Cyan, Quantity = 1 },
- new LiquidQuantityModel() { LiquidType = LiquidTypes.Magenta, Quantity = 1 },
- new LiquidQuantityModel() { LiquidType = LiquidTypes.Yellow, Quantity = 1 },
- new LiquidQuantityModel() { LiquidType = LiquidTypes.Black, Quantity = 1 },
- new LiquidQuantityModel() { LiquidType = LiquidTypes.LightCyan, Quantity = 1 },
- new LiquidQuantityModel() { LiquidType = LiquidTypes.LightMagenta, Quantity = 1 },
- new LiquidQuantityModel() { LiquidType = LiquidTypes.LightYellow, Quantity = 1 },
- new LiquidQuantityModel() { LiquidType = LiquidTypes.TransparentInk, Quantity = 1 },
- new LiquidQuantityModel() { LiquidType = LiquidTypes.Lubricant, Quantity = 1 },
- };
+ liquidQuantities.Add(new LiquidQuantityModel()
+ {
+ LiquidType = new Tango.BL.Entities.LiquidType() { Code = item },
+ Quantity = 1
+ });
+ }
+
+ LiquidQuantities = liquidQuantities;
FailedRuns = 1;
CompletedRuns = 1;
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs
index d979fe55b..6f92ca2e8 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs
@@ -58,94 +58,63 @@ namespace Tango.FSE.Statistics.Models
case ColorSpaces.Catalog:
return $"{Catalog} => {CatalogItem}";
case ColorSpaces.Volume:
- return $"{Math.Round(Cyan, 2)}, {Math.Round(Magenta, 2)}, {Math.Round(Yellow, 2)}, {Math.Round(Black, 2)}";
+ return String.Join("\n", GetVolumeInputs().Where(x => x.Volume > 0).Select(x => x.LiquidType.Name + ": " + Math.Round(x.Volume, 2)));
}
return "Unspecified";
}
}
- public TimeSpan Duration
+ public String OutputString
{
get
{
- return JobRun.EndDate - JobRun.StartDate;
+ return String.Join("\n", Output.Where(x => x.Volume > 0).Select(x => x.LiquidType.Name + ": " + Math.Round(x.Volume, 2)));
}
}
- public double CyanOutput
- {
- get { return GetLiquidTypeOfDefault(LiquidTypes.Cyan); }
- }
-
- public double MagentaOutput
- {
- get { return GetLiquidTypeOfDefault(LiquidTypes.Magenta); }
- }
-
- public double YellowOutput
- {
- get { return GetLiquidTypeOfDefault(LiquidTypes.Yellow); }
- }
-
- public double BlackOutput
- {
- get { return GetLiquidTypeOfDefault(LiquidTypes.Black); }
- }
-
- public double LightCyanOutput
- {
- get { return GetLiquidTypeOfDefault(LiquidTypes.LightCyan); }
- }
-
- public double LightMagentaOutput
- {
- get { return GetLiquidTypeOfDefault(LiquidTypes.LightMagenta); }
- }
-
- public double LightYellowOutput
+ public List<PresentationLiquidVolume> InputVolumes
{
- get { return GetLiquidTypeOfDefault(LiquidTypes.LightYellow); }
- }
-
- public double TransparentInkOutput
- {
- get { return GetLiquidTypeOfDefault(LiquidTypes.TransparentInk); }
+ get
+ {
+ return GetVolumeInputs().Where(x => x.Volume > 0).ToList();
+ }
}
- public double LubricantOutput
+ public List<PresentationLiquidVolume> Output
{
- get { return GetLiquidTypeOfDefault(LiquidTypes.Lubricant); }
+ get
+ {
+ var output = new List<PresentationLiquidVolume>();
+ output.AddRange(LiquidVolumes.Where(x => x.LiquidType.HasPigment && x.Volume > 0).OrderBy(x => x.LiquidType.PreferredIndex));
+ output.Add(LiquidVolumes.FirstOrDefault(x => x.LiquidType.Type == LiquidTypes.TransparentInk));
+ return output;
+ }
}
- private double GetLiquidTypeOfDefault(LiquidTypes liquidType)
+ public TimeSpan Duration
{
- var lt = LiquidVolumes.FirstOrDefault(x => x.LiquidType == liquidType);
-
- if (lt != null)
+ get
{
- return Math.Round(lt.Volume, 2);
+ return JobRun.EndDate - JobRun.StartDate;
}
-
- return 0;
}
public List<LiquidQuantityModel> LiquidQuantities
{
get
{
- return new List<LiquidQuantityModel>()
+ var quantities = new List<LiquidQuantityModel>();
+
+ foreach (var liquidVolume in LiquidVolumes)
{
- new LiquidQuantityModel(){ LiquidType = LiquidTypes.Cyan, Quantity = JobRun.CyanQuantity },
- new LiquidQuantityModel(){ LiquidType = LiquidTypes.Magenta, Quantity = JobRun.MagentaQuantity },
- new LiquidQuantityModel(){ LiquidType = LiquidTypes.Yellow, Quantity = JobRun.YellowQuantity },
- new LiquidQuantityModel(){ LiquidType = LiquidTypes.Black, Quantity = JobRun.BlackQuantity },
- new LiquidQuantityModel(){ LiquidType = LiquidTypes.LightCyan, Quantity = JobRun.LightCyanQuantity },
- new LiquidQuantityModel(){ LiquidType = LiquidTypes.LightMagenta, Quantity = JobRun.LightMagentaQuantity },
- new LiquidQuantityModel(){ LiquidType = LiquidTypes.LightYellow, Quantity = JobRun.LightYellowQuantity },
- new LiquidQuantityModel(){ LiquidType = LiquidTypes.TransparentInk, Quantity = JobRun.TransparentQuantity },
- new LiquidQuantityModel(){ LiquidType = LiquidTypes.Lubricant, Quantity = JobRun.LubricantQuantity },
- };
+ LiquidQuantityModel model = new LiquidQuantityModel();
+ model.LiquidType = liquidVolume.LiquidType;
+ model.Quantity = (double)typeof(JobRun).GetProperty(model.LiquidType.Name.Replace(" ", "") + "Quantity").GetValue(JobRun);
+ quantities.Add(model);
+ }
+
+ return quantities;
}
}
@@ -164,8 +133,11 @@ namespace Tango.FSE.Statistics.Models
public String LogicalLength
{
- get { var length = IsEureka ? JobRun.JobLogicalLength * 4 : JobRun.JobLogicalLength;
- return JobRun.NumberOfUnits > 1 ? $"{length} x{JobRun.NumberOfUnits}" : length.ToString(); }
+ get
+ {
+ var length = IsEureka ? JobRun.JobLogicalLength * 4 : JobRun.JobLogicalLength;
+ return JobRun.NumberOfUnits > 1 ? $"{length} x{JobRun.NumberOfUnits}" : length.ToString();
+ }
}
public double JobLength
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs
index a21619aac..c301621f6 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs
@@ -1,4 +1,6 @@
-using Newtonsoft.Json;
+using LiveCharts;
+using LiveCharts.Wpf;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@@ -10,6 +12,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Data;
+using System.Windows.Media;
using Tango.BL;
using Tango.BL.DTO;
using Tango.BL.Entities;
@@ -21,6 +24,7 @@ using Tango.Core.ExtensionMethods;
using Tango.CSV;
using Tango.FSE.Common;
using Tango.FSE.Common.AutoComplete;
+using Tango.FSE.Common.Converters;
using Tango.FSE.Common.Navigation;
using Tango.FSE.Common.Notifications;
using Tango.FSE.Common.Statistics;
@@ -39,6 +43,7 @@ namespace Tango.FSE.Statistics.ViewModels
private StatisticsModel _model;
private String _currentFineTuningSessionID;
private List<StopModel> _fineTuningStops;
+ private List<LiquidType> _liquidTypes;
#region Properties
@@ -171,6 +176,14 @@ namespace Tango.FSE.Statistics.ViewModels
get { return Stops != null && Stops.Count > 0 && Stops[0].JobIndex != NULL_JOB_INDEX; }
}
+ private SeriesCollection _seriesCollection;
+ public SeriesCollection SeriesCollection
+ {
+ get { return _seriesCollection; }
+ set { _seriesCollection = value; RaisePropertyChangedAuto(); }
+ }
+
+
#endregion
#region Commands
@@ -350,6 +363,7 @@ namespace Tango.FSE.Statistics.ViewModels
filters.RmlGuids = SelectedThreads.SynchedSource.Select(x => x.Guid).ToList();
_model = await StatisticsProvider.GetStatistics(filters);
+ _liquidTypes = _model.StatisticsResult.LiquidTypes.Select(x => x.ToObservable()).ToList();
List<StopModel> stops = new List<StopModel>();
@@ -447,11 +461,6 @@ namespace Tango.FSE.Statistics.ViewModels
stop.Green = jobStop.Green;
stop.Blue = jobStop.Blue;
- stop.Cyan = jobStop.Cyan;
- stop.Magenta = jobStop.Magenta;
- stop.Yellow = jobStop.Yellow;
- stop.Black = jobStop.Black;
-
stop.Catalog = jobStop.Catalog;
stop.CatalogItem = jobStop.CatalogItem;
@@ -495,37 +504,47 @@ namespace Tango.FSE.Statistics.ViewModels
stats.TotalDyeingTime = TimeSpan.FromHours(timeRuns.Sum(x => (x.JobRun.EndDate - x.JobRun.ActualStartDate.Value).TotalHours));
stats.AverageDyeingTime = TimeSpan.FromHours(timeRuns.Average(x => (x.JobRun.EndDate - x.JobRun.ActualStartDate.Value).TotalHours));
+ SeriesCollection seriesCollection = new SeriesCollection();
+
List<LiquidQuantityModel> liquidQuantities = new List<LiquidQuantityModel>();
- Dictionary<LiquidTypes, double> quantities = new Dictionary<LiquidTypes, double>();
- quantities.Add(LiquidTypes.Cyan, 0);
- quantities.Add(LiquidTypes.Magenta, 0);
- quantities.Add(LiquidTypes.Yellow, 0);
- quantities.Add(LiquidTypes.Black, 0);
- quantities.Add(LiquidTypes.LightCyan, 0);
- quantities.Add(LiquidTypes.LightMagenta, 0);
- quantities.Add(LiquidTypes.LightYellow, 0);
- quantities.Add(LiquidTypes.TransparentInk, 0);
- quantities.Add(LiquidTypes.Lubricant, 0);
+ foreach (var liquidType in _liquidTypes.ToList())
+ {
+ liquidQuantities.Add(new LiquidQuantityModel()
+ {
+ LiquidType = liquidType,
+ Quantity = 0
+ });
+ }
foreach (var stop in Stops)
{
- quantities[LiquidTypes.Cyan] += stop.JobRun.CyanQuantity;
- quantities[LiquidTypes.Magenta] += stop.JobRun.MagentaQuantity;
- quantities[LiquidTypes.Yellow] += stop.JobRun.YellowQuantity;
- quantities[LiquidTypes.Black] += stop.JobRun.BlackQuantity;
- quantities[LiquidTypes.LightCyan] += stop.JobRun.LightCyanQuantity;
- quantities[LiquidTypes.LightMagenta] += stop.JobRun.LightMagentaQuantity;
- quantities[LiquidTypes.LightYellow] += stop.JobRun.LightYellowQuantity;
- quantities[LiquidTypes.TransparentInk] += stop.JobRun.TransparentQuantity;
- quantities[LiquidTypes.Lubricant] += stop.JobRun.LubricantQuantity;
+ foreach (var quantity in liquidQuantities)
+ {
+ quantity.Quantity += (double)typeof(JobRun).GetProperty(quantity.LiquidType.Type.ToString() + "Quantity").GetValue(stop.JobRun);
+ }
}
- foreach (var item in quantities)
+ var foreground = Application.Current.Resources["FSE_PrimaryForegroundBrush"] as SolidColorBrush;
+ var border = Application.Current.Resources["FSE_BorderBrush"] as SolidColorBrush;
+
+ foreach (var liquidQuantity in liquidQuantities)
{
- liquidQuantities.Add(new LiquidQuantityModel() { LiquidType = item.Key, Quantity = item.Value });
+ PieSeries series = new PieSeries();
+ series.Foreground = foreground;
+ series.Stroke = border;
+ series.Fill = liquidQuantity.LiquidType.LiquidTypeBrush;
+ series.FontSize = 12;
+ series.Title = liquidQuantity.Title;
+ series.Values = new ChartValues<double>() { Convert.ToDouble(liquidQuantity.Quantity) };
+ series.DataLabels = false;
+ series.LabelPoint = Stats.QuantityCounts;
+
+ seriesCollection.Add(series);
}
+ SeriesCollection = seriesCollection;
+
stats.LiquidQuantities = liquidQuantities;
}
catch (Exception ex)
@@ -639,11 +658,11 @@ namespace Tango.FSE.Statistics.ViewModels
input = $"{stop.Catalog}\t{stop.CatalogItem}";
break;
case ColorSpaces.Volume:
- input = $"{stop.Cyan}\t{stop.Magenta}\t{stop.Yellow}\t{stop.Black}";
+ input = String.Join("\t", stop.GetVolumeInputs().Where(x => x.Volume > 0).Select(x => x.Volume));
break;
}
- Clipboard.SetText($"{stop.ColorSpace}\t{input}\t{stop.CyanOutput}\t{stop.MagentaOutput}\t{stop.YellowOutput}\t{stop.BlackOutput}\t{stop.LightCyanOutput}\t{stop.LightMagentaOutput}\t{stop.LightYellowOutput}\t{stop.TransparentInkOutput}", TextDataFormat.Text);
+ Clipboard.SetText($"{stop.ColorSpace}\t{input}\t{String.Join("\t", stop.Output.Where(x => x.LiquidType.HasPigment).Where(x => x.Volume > 0).Select(x => x.Volume))}", TextDataFormat.Text);
}
#endregion
@@ -704,18 +723,23 @@ namespace Tango.FSE.Statistics.ViewModels
"Measured B",
"Delta E",
"Approved",
- "Input Red",
- "Input Green",
- "Input Blue",
- "Input L",
- "Input A",
- "Input B",
+ "Input RGB (R)",
+ "Input RGB (G)",
+ "Input RGB (B)",
+ "Input LAB (L)",
+ "Input LAB (A)",
+ "Input LAB (B)",
"Input Catalog",
"Input Catalog Item",
"Input Cyan",
"Input Magenta",
"Input Yellow",
"Input Black",
+ "Input Blue",
+ "Input Orange",
+ "Input Rubine",
+ "Input Navy",
+ "Input Violet",
"Output Cyan",
"Output Magenta",
"Output Yellow",
@@ -723,6 +747,14 @@ namespace Tango.FSE.Statistics.ViewModels
"Output Light Cyan",
"Output Light Magenta",
"Output Light Yellow",
+ "Output Blue",
+ "Output Light Blue",
+ "Output Orange",
+ "Output Light Orange",
+ "Output Rubine",
+ "Output Light Rubine",
+ "Output Navy",
+ "Output Violet",
"Output Transparent Ink",
"Output Lubricant",
"Failure Reason",
@@ -763,10 +795,16 @@ namespace Tango.FSE.Statistics.ViewModels
model.InputCatalogItem = stop.CatalogItem;
break;
case ColorSpaces.Volume:
- model.InputCyan = stop.Cyan.ToString();
- model.InputMagenta = stop.Magenta.ToString();
- model.InputYellow = stop.Yellow.ToString();
- model.InputBlack = stop.Black.ToString();
+ model.InputCyan = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Cyan).ToString();
+ model.InputMagenta = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Magenta).ToString();
+ model.InputYellow = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Yellow).ToString();
+ model.InputBlack = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Black).ToString();
+
+ model.InputBBlue = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Blue).ToString();
+ model.InputOrange = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Orange).ToString();
+ model.InputRubine = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Rubine).ToString();
+ model.InputNavy = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Navy).ToString();
+ model.InputViolet = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Violet).ToString();
break;
}
@@ -787,15 +825,25 @@ namespace Tango.FSE.Statistics.ViewModels
}
}
- model.OutputCyan = stop.CyanOutput.ToString();
- model.OutputMagenta = stop.MagentaOutput.ToString();
- model.OutputYellow = stop.YellowOutput.ToString();
- model.OutputBlack = stop.BlackOutput.ToString();
- model.OutputLightCyan = stop.LightCyanOutput.ToString();
- model.OutputLightMagenta = stop.LightMagentaOutput.ToString();
- model.OutputLightYellow = stop.LightYellowOutput.ToString();
- model.OutputTransparentInk = stop.TransparentInkOutput.ToString();
- model.OutputLubricant = stop.LubricantOutput.ToString();
+ model.OutputCyan = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Cyan).ToString();
+ model.OutputMagenta = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Magenta).ToString();
+ model.OutputYellow = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Yellow).ToString();
+ model.OutputBlack = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Black).ToString();
+ model.OutputLightCyan = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.LightCyan).ToString();
+ model.OutputLightMagenta = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.LightMagenta).ToString();
+ model.OutputLightYellow = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.LightYellow).ToString();
+
+ model.OutputBlue = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Blue).ToString();
+ model.OutputLightBlue = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.LightBlue).ToString();
+ model.OutputOrange = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Orange).ToString();
+ model.OutputLightOrange = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.LightOrange).ToString();
+ model.OutputRubine = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Rubine).ToString();
+ model.OutputLightRubine = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.LightRubine).ToString();
+ model.OutputNavy = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Navy).ToString();
+ model.OutputViolet = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Violet).ToString();
+
+ model.OutputTransparentInk = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.TransparentInk).ToString();
+ model.OutputLubricant = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Lubricant).ToString();
model.FailureReason = stop.JobRun.FailedMessage;
csvFile.Append(model);
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml
index 0e1d8cb60..205253aa9 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml
@@ -274,7 +274,7 @@
<DataGridTextColumn Header="DISTANCE" Width="100" CellStyle="{StaticResource EmptyColumnStyle2}" />
<DataGridTextColumn Header="OFFSET" Width="75" Binding="{Binding StartMeters}" />
<DataGridTextColumn Header="COLOR SPACE" Width="120" Binding="{Binding ColorSpace}" />
- <DataGridTemplateColumn Header="INPUT" Width="150">
+ <DataGridTemplateColumn Header="INPUT" Width="300">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ContentControl Content="{Binding}">
@@ -283,11 +283,39 @@
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
- <TextBlock Text="{Binding Input}"></TextBlock>
+ <TextBlock Margin="-5" Text="{Binding Input,Mode=OneWay}" TextWrapping="Wrap" FontSize="10"></TextBlock>
</DataTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
+ <DataTrigger Binding="{Binding ColorSpace}" Value="Volume">
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate>
+ <ItemsControl ClipToBounds="False" Margin="0 -15" VerticalAlignment="Center" ItemsSource="{Binding InputVolumes,Mode=OneWay}" Background="Transparent" ToolTip="{Binding Input,Mode=OneWay}">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <WrapPanel/>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <Border ClipToBounds="False" Background="#7A7A7A" Padding="4 1" Margin="10 0 5 5" CornerRadius="5" BorderThickness="1" BorderBrush="#1B1B1B">
+ <Grid>
+ <Grid Margin="-15 -10 0 0" HorizontalAlignment="Left" VerticalAlignment="Top">
+ <Ellipse HorizontalAlignment="Center" VerticalAlignment="Center" Fill="{Binding LiquidType.LiquidTypeBrush}" Width="15" Height="15" Stroke="#BDBDBD" StrokeThickness="0.5" />
+ <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 1 0 0" Foreground="Black" Text="{Binding LiquidType.ShortName}" FontSize="10"></TextBlock>
+ </Grid>
+ <TextBlock Foreground="White" Text="{Binding Volume,StringFormat='#.##',Mode=OneWay,TargetNullValue=0}" FontSize="11"></TextBlock>
+ </Grid>
+ </Border>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </DataTemplate>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
<DataTrigger Binding="{Binding ColorSpace}" Value="Catalog">
<Setter Property="ContentTemplate">
<Setter.Value>
@@ -312,27 +340,26 @@
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
- <StackPanel Orientation="Horizontal">
- <Grid>
- <TextBlock HorizontalAlignment="Center" FontWeight="Bold">
- <Run Foreground="Cyan" Text="{Binding CyanOutput,Mode=OneWay,TargetNullValue=0}"></Run>
- ,
- <Run Foreground="Magenta" Text="{Binding MagentaOutput,Mode=OneWay,TargetNullValue=0}"></Run>
- ,
- <Run Foreground="Yellow" Text="{Binding YellowOutput,Mode=OneWay,TargetNullValue=0}"></Run>
- ,
- <Run Foreground="Black" Text="{Binding BlackOutput,Mode=OneWay,TargetNullValue=0}"></Run>
- ,
- <Run Foreground="#9BFFFF" Text="{Binding LightCyanOutput,Mode=OneWay,TargetNullValue=0}"></Run>
- ,
- <Run Foreground="#FFA5FF" Text="{Binding LightMagentaOutput,Mode=OneWay,TargetNullValue=0}"></Run>
- ,
- <Run Foreground="#FFFF9B" Text="{Binding LightYellowOutput,Mode=OneWay,TargetNullValue=0}"></Run>
- ,
- <Run Foreground="#BBBBBB" Text="{Binding TransparentInkOutput,Mode=OneWay,TargetNullValue=0}"></Run>
- </TextBlock>
- </Grid>
- </StackPanel>
+ <ItemsControl Margin="0 -15" VerticalAlignment="Center" ItemsSource="{Binding Output,Mode=OneWay}" Background="Transparent" ToolTip="{Binding OutputString}">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <WrapPanel/>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <Border ClipToBounds="False" Background="#7A7A7A" Padding="4 1" Margin="10 0 5 5" CornerRadius="5" BorderThickness="1" BorderBrush="#1B1B1B">
+ <Grid>
+ <Grid Margin="-15 -10 0 0" HorizontalAlignment="Left" VerticalAlignment="Top">
+ <Ellipse HorizontalAlignment="Center" VerticalAlignment="Center" Fill="{Binding LiquidType.LiquidTypeBrush}" Width="15" Height="15" Stroke="#BDBDBD" StrokeThickness="0.5" />
+ <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 1 0 0" Foreground="Black" Text="{Binding LiquidType.ShortName}" FontSize="10"></TextBlock>
+ </Grid>
+ <TextBlock Foreground="White" Text="{Binding Volume,StringFormat='#.##',Mode=OneWay,TargetNullValue=0}" FontSize="11"></TextBlock>
+ </Grid>
+ </Border>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
<Button Command="{Binding ShowExtendedInfoCommand}" CommandParameter="{Binding}" Background="Transparent" Style="{StaticResource FSE_FlatButton_ForegroundAccentHover}" Foreground="{StaticResource FSE_PrimaryAccentBrush}" FontSize="{StaticResource FSE_SmallerFontSize}" Height="Auto" Padding="0" Cursor="Hand" Margin="0 0 0 0" Visibility="{Binding IsFineTuning,Converter={StaticResource BooleanToVisibilityConverter}}" HorizontalAlignment="Right">More info...</Button>
</Grid>
@@ -547,18 +574,8 @@
<DockPanel>
<TextBlock FontSize="12" DockPanel.Dock="Bottom" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0 0 0 3">Ink Consumption</TextBlock>
- <lvc:PieChart Opacity="0.8" FontSize="{StaticResource FSE_SmallFontSize}" DisableAnimations="True" LegendLocation="None" Hoverable="True" DataTooltip="{x:Null}" HorizontalAlignment="Center" Height="155" Width="155" VerticalAlignment="Top" Margin="0 0 0 0">
- <lvc:PieChart.Series>
- <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[0].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[0].Title}" Values="{Binding Stats.LiquidQuantities[0].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/>
- <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[1].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[1].Title}" Values="{Binding Stats.LiquidQuantities[1].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/>
- <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[2].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[2].Title}" Values="{Binding Stats.LiquidQuantities[2].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/>
- <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[3].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[3].Title}" Values="{Binding Stats.LiquidQuantities[3].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/>
- <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[4].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[4].Title}" Values="{Binding Stats.LiquidQuantities[4].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/>
- <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[5].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[5].Title}" Values="{Binding Stats.LiquidQuantities[5].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/>
- <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[6].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[6].Title}" Values="{Binding Stats.LiquidQuantities[6].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/>
- <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[7].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[7].Title}" Values="{Binding Stats.LiquidQuantities[7].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/>
- <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[8].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[8].Title}" Values="{Binding Stats.LiquidQuantities[8].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/>
- </lvc:PieChart.Series>
+ <lvc:PieChart Series="{Binding SeriesCollection}" Opacity="0.8" FontSize="{StaticResource FSE_SmallFontSize}" DisableAnimations="True" LegendLocation="None" Hoverable="True" DataTooltip="{x:Null}" HorizontalAlignment="Center" Height="155" Width="155" VerticalAlignment="Top" Margin="0 0 0 0">
+
</lvc:PieChart>
</DockPanel>
@@ -572,11 +589,11 @@
<DataTemplate>
<Border Background="Transparent">
<StackPanel Orientation="Horizontal" Margin="4">
- <Ellipse VerticalAlignment="Top" Margin="0 0 0 0" StrokeThickness="1" Stroke="{StaticResource FSE_BorderBrush}" Width="30" Height="30" Fill="{Binding LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}">
+ <Ellipse VerticalAlignment="Top" Margin="0 0 0 0" StrokeThickness="1" Stroke="{StaticResource FSE_BorderBrush}" Width="30" Height="30" Fill="{Binding LiquidType.LiquidTypeBrush}">
</Ellipse>
<StackPanel Orientation="Vertical" Margin="4 2 0 0">
- <TextBlock Text="{Binding LiquidType,Converter={StaticResource EnumToDescriptionConverter}}" FontWeight="SemiBold"></TextBlock>
+ <TextBlock Text="{Binding LiquidType.Name}" FontWeight="SemiBold"></TextBlock>
<TextBlock >
<Run Text="{Binding Liters,Mode=OneWay,StringFormat='0.000'}"></Run>
<Run Text=" liters"></Run>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml
index 9db3fc735..cfdf46701 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml
@@ -64,19 +64,6 @@
<Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
</Grid>-->
- <UniformGrid Width="310" Canvas.Top="295" Canvas.Left="420" TextElement.Foreground="#252525" Rows="1" Columns="10" TextElement.FontSize="9">
- <TextBlock HorizontalAlignment="Center">1</TextBlock>
- <TextBlock HorizontalAlignment="Center">2</TextBlock>
- <TextBlock HorizontalAlignment="Center">3</TextBlock>
- <TextBlock HorizontalAlignment="Center">4</TextBlock>
- <TextBlock HorizontalAlignment="Center">5</TextBlock>
- <TextBlock HorizontalAlignment="Center">6</TextBlock>
- <TextBlock HorizontalAlignment="Center">7</TextBlock>
- <TextBlock HorizontalAlignment="Center">8</TextBlock>
- <TextBlock HorizontalAlignment="Center">9</TextBlock>
- <TextBlock HorizontalAlignment="Center">10</TextBlock>
- </UniformGrid>
-
<Grid x:Name="gridIds" Width="310" Height="195" Canvas.Top="314" Canvas.Left="420">
<ListBox ItemsSource="{Binding Configuration.IdsPacks}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemContainerStyle>
@@ -95,7 +82,7 @@
<DataTemplate>
<Grid MaxWidth="35">
<Grid.RowDefinitions>
- <RowDefinition Height="11"/>
+ <RowDefinition Height="14"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
@@ -173,7 +160,7 @@
</Border>
</Grid>
- <TextBlock Grid.Row="0" FontSize="9" HorizontalAlignment="Center" VerticalAlignment="Top" Text="{Binding PackIndex}"></TextBlock>
+ <TextBlock Grid.Row="0" FontSize="14" Margin="0 0 0 0" HorizontalAlignment="Center" VerticalAlignment="Top" Text="{Binding PackIndex}" Foreground="Black"></TextBlock>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
@@ -302,18 +289,6 @@
<Image IsHitTestVisible="False" Source="{StaticResource FSE_Machine_Eureka_Full}" MaxWidth="1000" Margin="-150 -50 0 0" RenderOptions.BitmapScalingMode="Fant"/>
<StackPanel Margin="160 150 0 0" Width="410" HorizontalAlignment="Left">
- <UniformGrid TextElement.Foreground="#252525" Rows="1" Columns="10" TextElement.FontSize="20">
- <TextBlock HorizontalAlignment="Center">1</TextBlock>
- <TextBlock HorizontalAlignment="Center">2</TextBlock>
- <TextBlock HorizontalAlignment="Center">3</TextBlock>
- <TextBlock HorizontalAlignment="Center">4</TextBlock>
- <TextBlock HorizontalAlignment="Center">5</TextBlock>
- <TextBlock HorizontalAlignment="Center">6</TextBlock>
- <TextBlock HorizontalAlignment="Center">7</TextBlock>
- <TextBlock HorizontalAlignment="Center">8</TextBlock>
- <TextBlock HorizontalAlignment="Center">9</TextBlock>
- <TextBlock HorizontalAlignment="Center">10</TextBlock>
- </UniformGrid>
<Grid Height="218">
<ListBox ItemsSource="{Binding Configuration.IdsPacks}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Background="Transparent">
@@ -326,17 +301,18 @@
</ListBox.ItemContainerStyle>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
- <UniformGrid Columns="10"></UniformGrid>
+ <UniformGrid Rows="1"></UniformGrid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
- <Grid>
+ <Grid MaxWidth="35">
<Grid.RowDefinitions>
+ <RowDefinition Height="14"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
- <UniformGrid Columns="1" Rows="2">
+ <UniformGrid Grid.Row="1" Columns="1" Rows="2" IsHitTestVisible="False">
<Grid Margin="2">
<Image IsHitTestVisible="False" Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant">
<Image.Style>
@@ -382,7 +358,7 @@
</Grid>
</UniformGrid>
- <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False">
+ <Grid Grid.Row="2" Margin="3" IsHitTestVisible="False">
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
@@ -409,6 +385,8 @@
</Border.Background>
</Border>
</Grid>
+
+ <TextBlock Grid.Row="0" FontSize="14" HorizontalAlignment="Center" VerticalAlignment="Top" Text="{Binding PackIndex}" Foreground="Black"></TextBlock>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
index 8d539769c..75dcdbfe4 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
@@ -36,7 +36,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
{
public class MainViewVM : StudioViewModel<IMainView>
{
- private const int MAX_IDS_PACKS = 12;
+ private const int MAX_IDS_PACKS = 15;
private INotificationProvider _notification;
private IActionLogManager _actionLogManager;
private IAuthenticationProvider _authentication;
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml
index 240abc688..5f1ff4c9d 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml
@@ -527,7 +527,7 @@
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
- <touch:TouchImageButton Grid.Row="0" Margin="0 2 45 0" HorizontalAlignment="Right" Width="Auto" Height="70" EnableDropShadow="False" Background="Transparent" BorderThickness="0"
+ <touch:TouchImageButton Grid.Row="0" Margin="0 2 45 0" HorizontalAlignment="Right" Width="Auto" Height="70" EnableDropShadow="False" Background="Transparent" BorderThickness="0"
Command="{ Binding VectorFineTuningCommand}" >
<touch:TouchImageButton.Template>
<ControlTemplate TargetType="touch:TouchImageButton">
@@ -596,7 +596,7 @@
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
- <touch:TouchImageButton Grid.Row="0" Margin="0 2 45 0" HorizontalAlignment="Right" Width="Auto" Height="70" EnableDropShadow="False" Background="Transparent" BorderThickness="0"
+ <touch:TouchImageButton Visibility="{Binding FineTuningEnabled,Converter={StaticResource BooleanToVisibilityConverter}}" Grid.Row="0" Margin="0 2 45 0" HorizontalAlignment="Right" Width="Auto" Height="70" EnableDropShadow="False" Background="Transparent" BorderThickness="0"
Command="{ Binding VectorFineTuningCommand}" >
<touch:TouchImageButton.Template>
<ControlTemplate TargetType="touch:TouchImageButton">
@@ -614,8 +614,8 @@
<Grid x:Name="CMYKgrid" Grid.Row="2" Margin="80 0 93 0" Style="{StaticResource DisableOnSaveMyColorsGrid}">
<DockPanel>
- <ItemsControl DockPanel.Dock="Top" ItemsSource="{Binding SelectedBrushStop.LiquidVolumes}" IsTabStop="False" MinWidth="200">
- <ItemsControl.ItemTemplate>
+ <touch:TouchListBox DockPanel.Dock="Top" ItemsSource="{Binding SelectedBrushStop.LiquidVolumes}" IsTabStop="False" MinWidth="200">
+ <touch:TouchListBox.ItemTemplate>
<DataTemplate DataType="{x:Type models:LiquidVolumeModel}">
<touch:TouchColorPickerControl Margin=" 0 10 0 0" MinWidth="200" MinValue="0" IsTabStop="False"
ColorPickerText="{Binding IdsPack.LiquidType.Name}"
@@ -636,8 +636,8 @@
</touch:TouchColorPickerControl.PickerBrush>
</touch:TouchColorPickerControl>
</DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
+ </touch:TouchListBox.ItemTemplate>
+ </touch:TouchListBox>
<!--<touch:TouchColorPickerCMYKControl DockPanel.Dock="Top" x:Name="CMYKPicker" ThumbHeight="30" ThumbHeightInside="28"
IsTabStop="False"
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs
index 4ba8a6ebf..5b750189f 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs
@@ -414,6 +414,21 @@ namespace Tango.PPC.Jobs.Dialogs
set { _vectorFineTuningDialogVM = value; RaisePropertyChangedAuto(); }
}
+ public bool FineTuningEnabled
+ {
+ get
+ {
+ if (SelectedBrushStop == null) return false;
+ var idsPacks = MachineProvider.Machine.Configuration.GetSupportedIdsPacks(SelectedBrushStop.SegmentModel.Job.Rml).ToList();
+ if (!idsPacks.Exists(x => x.LiquidType.Type == LiquidTypes.Cyan)) return false;
+ if (!idsPacks.Exists(x => x.LiquidType.Type == LiquidTypes.Magenta)) return false;
+ if (!idsPacks.Exists(x => x.LiquidType.Type == LiquidTypes.Yellow)) return false;
+ if (!idsPacks.Exists(x => x.LiquidType.Type == LiquidTypes.Black)) return false;
+
+ return true;
+ }
+ }
+
private String _myColorName;
public String MyColorName
@@ -634,6 +649,7 @@ namespace Tango.PPC.Jobs.Dialogs
SelectedBrushStop.ColorChanged += OnBrushColorChanged;
CheckIsSelectedColorInLibrary();
SelectedBrushStop.ConvertColor();//test OOG
+ RaisePropertyChanged(nameof(FineTuningEnabled));
}
private void OnSelectedtabChanged()
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Statistics/DefaultStatisticsService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Statistics/DefaultStatisticsService.cs
index a98641b25..d05b4c6bf 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Statistics/DefaultStatisticsService.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Statistics/DefaultStatisticsService.cs
@@ -29,6 +29,7 @@ namespace Tango.PPC.Common.Statistics
private List<ColorCatalog> _catalogs;
private List<ColorCatalogsItem> _color_catalog_Items;
private List<ColorSpace> _colorSpaces;
+ private Dictionary<String, LiquidType> _liquidTypes;
public bool Enabled { get; set; } = true;
@@ -107,6 +108,8 @@ namespace Tango.PPC.Common.Statistics
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
+ response.Result.LiquidTypes = db.LiquidTypes.ToList().Select(x => LiquidTypeDTO.FromObservable(x)).ToList();
+
var filters = request.Filters;
var db_JobRuns = db.JobRuns.Where(x => (x.StartDate <= filters.EndDateUTC && x.StartDate >= filters.StartDateUTC));
@@ -173,6 +176,19 @@ namespace Tango.PPC.Common.Statistics
}
}
+ if (_liquidTypes == null)
+ {
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ var types = await db.LiquidTypes.ToListAsync();
+ _liquidTypes = new Dictionary<string, LiquidType>();
+ foreach (var t in types)
+ {
+ _liquidTypes.Add(t.Name, t);
+ }
+ }
+ }
+
JobRunComposition jobRunComposition = new JobRunComposition();
jobRunComposition.JobRun = JobRunDTO.FromObservable(jobRun);
@@ -197,11 +213,17 @@ namespace Tango.PPC.Common.Statistics
foreach (var liquidType in stop.LiquidVolumes)
{
PresentationLiquidVolume plt = new PresentationLiquidVolume();
- plt.LiquidType = (LiquidTypes)Enum.Parse(typeof(LiquidTypes), liquidType.LiquidTypeName.Replace(" ", ""));
- plt.Volume = liquidType.Volume;
- pbs.LiquidVolumes.Add(plt);
+
+ if (_liquidTypes.ContainsKey(liquidType.LiquidTypeName))
+ {
+ plt.LiquidType = _liquidTypes[liquidType.LiquidTypeName];
+ plt.Volume = liquidType.Volume;
+ pbs.LiquidVolumes.Add(plt);
+ }
}
+ pbs.LiquidVolumes = pbs.LiquidVolumes.OrderBy(x => x.LiquidType.PreferredIndex).ToList();
+
switch (pbs.ColorSpace)
{
case ColorSpaces.RGB:
@@ -215,29 +237,16 @@ namespace Tango.PPC.Common.Statistics
pbs.B = stop.B;
break;
case ColorSpaces.Volume:
- pbs.Cyan = pbs.LiquidVolumes.First(x => x.LiquidType == LiquidTypes.Cyan).Volume;
- pbs.Magenta = pbs.LiquidVolumes.First(x => x.LiquidType == LiquidTypes.Magenta).Volume;
- pbs.Yellow = pbs.LiquidVolumes.First(x => x.LiquidType == LiquidTypes.Yellow).Volume;
- pbs.Black = pbs.LiquidVolumes.First(x => x.LiquidType == LiquidTypes.Black).Volume;
-
- var lightCyan = pbs.LiquidVolumes.FirstOrDefault(x => x.LiquidType == LiquidTypes.LightCyan);
- var lightMagenta = pbs.LiquidVolumes.FirstOrDefault(x => x.LiquidType == LiquidTypes.LightMagenta);
- var lightYellow = pbs.LiquidVolumes.FirstOrDefault(x => x.LiquidType == LiquidTypes.LightYellow);
-
- if (lightCyan != null && lightCyan.Volume > 0)
- {
- pbs.Cyan = lightCyan.Volume / 10d;
- }
-
- if (lightMagenta != null && lightMagenta.Volume > 0)
- {
- pbs.Magenta = lightMagenta.Volume / 10d;
- }
- if (lightYellow != null && lightYellow.Volume > 0)
- {
- pbs.Yellow = lightYellow.Volume / 10d;
- }
+ //foreach (var lightInk in pbs.LiquidVolumes.Where(x => x.LiquidType.IsLightInk && x.Volume > 0))
+ //{
+ // var darkInk = pbs.LiquidVolumes.FirstOrDefault(x => x.LiquidType.Code == lightInk.LiquidType.DarkInkCode);
+ // if (darkInk != null)
+ // {
+ // darkInk.Volume = (double)((decimal)lightInk.Volume / 10m);
+ // lightInk.Volume = 0;
+ // }
+ //}
break;
case ColorSpaces.Catalog:
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationBrushStop.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationBrushStop.cs
index d17cc8d42..2f5e7aea6 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationBrushStop.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationBrushStop.cs
@@ -9,6 +9,8 @@ namespace Tango.PPC.Shared.Statistics
{
public class PresentationBrushStop
{
+
+ private List<PresentationLiquidVolume> _inputVolumes;
public ColorSpaces ColorSpace { get; set; }
public double StartMeters { get; set; }
public int Red { get; set; }
@@ -17,10 +19,7 @@ namespace Tango.PPC.Shared.Statistics
public double L { get; set; }
public double A { get; set; }
public double B { get; set; }
- public double Cyan { get; set; }
- public double Magenta { get; set; }
- public double Yellow { get; set; }
- public double Black { get; set; }
+
public String Catalog { get; set; }
public String CatalogItem { get; set; }
@@ -30,6 +29,47 @@ namespace Tango.PPC.Shared.Statistics
public List<PresentationLiquidVolume> LiquidVolumes { get; set; }
+ public double GetLiquidVolumeOutputOrZero(LiquidTypes liquidType)
+ {
+ var lv = LiquidVolumes.FirstOrDefault(x => x.LiquidType.Type == liquidType);
+ return lv != null ? lv.Volume : 0.0;
+ }
+
+ public double GetLiquidVolumeInputOrZero(LiquidTypes liquidType)
+ {
+ var lv = GetVolumeInputs().FirstOrDefault(x => x.LiquidType.Type == liquidType);
+ return lv != null ? lv.Volume : 0.0;
+ }
+
+ public List<PresentationLiquidVolume> GetVolumeInputs()
+ {
+ if (_inputVolumes == null)
+ {
+ _inputVolumes = new List<PresentationLiquidVolume>();
+ var clones = LiquidVolumes.Select(x => new PresentationLiquidVolume() { LiquidType = x.LiquidType, Volume = x.Volume }).ToList();
+
+
+ foreach (var liquidVolume in clones.Where(x => x.LiquidType.HasPigment))
+ {
+ if (liquidVolume.LiquidType.IsLightInk && liquidVolume.Volume > 0)
+ {
+ var darkInk = clones.FirstOrDefault(x => x.LiquidType.Code == liquidVolume.LiquidType.DarkInkCode);
+ if (darkInk != null)
+ {
+ darkInk.Volume = (double)((decimal)liquidVolume.Volume / 10m);
+
+ continue;
+ }
+ }
+
+ _inputVolumes.Add(liquidVolume);
+ }
+ }
+
+ return _inputVolumes;
+ }
+
+
public PresentationBrushStop()
{
LiquidVolumes = new List<PresentationLiquidVolume>();
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationLiquidVolume.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationLiquidVolume.cs
index c370d1f5d..fb560ca0c 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationLiquidVolume.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationLiquidVolume.cs
@@ -3,13 +3,14 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.BL.Entities;
using Tango.BL.Enumerations;
namespace Tango.PPC.Shared.Statistics
{
public class PresentationLiquidVolume
{
- public LiquidTypes LiquidType { get; set; }
+ public LiquidType LiquidType { get; set; }
public double Volume { get; set; }
}
} \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/StatisticsResult.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/StatisticsResult.cs
index 8cee4c545..3cbd26e32 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/StatisticsResult.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/StatisticsResult.cs
@@ -11,9 +11,12 @@ namespace Tango.PPC.Shared.Statistics
{
public List<JobRunComposition> JobRuns { get; set; }
+ public List<LiquidTypeDTO> LiquidTypes { get; set; }
+
public StatisticsResult()
{
JobRuns = new List<JobRunComposition>();
+ LiquidTypes = new List<LiquidTypeDTO>();
}
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml
index 74db8e471..27fb531c3 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml
@@ -45,22 +45,24 @@
</Style>
<DataTemplate x:Key="CMYK_Template" DataType="{x:Type entities:BrushStop}">
- <ItemsControl ItemsSource="{Binding LiquidVolumesOrderedPigmentedForStandardUser}" MinWidth="180" HorizontalAlignment="Left" Height="Auto">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <StackPanel Orientation="Horizontal"></StackPanel>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <StackPanel Orientation="Vertical" Margin="0 0 10 0">
- <Border Width="50" Height="50" Background="{Binding IdsPack.LiquidType.LiquidTypeBrush}" CornerRadius="16" HorizontalAlignment="Left"></Border>
- <TextBlock Margin="0 10 0 0" Text="{Binding IdsPack.LiquidType.ShortName}" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/>
- <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Volume, StringFormat=0.##}" ></TextBlock>
- </StackPanel>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
+ <Viewbox MaxHeight="120" MaxWidth="300">
+ <ItemsControl ItemsSource="{Binding LiquidVolumesOrderedPigmentedForStandardUser}" MinWidth="180" HorizontalAlignment="Left" Height="Auto">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <StackPanel Orientation="Horizontal"></StackPanel>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <StackPanel Orientation="Vertical" Margin="0 0 10 0">
+ <Border Width="50" Height="50" Background="{Binding IdsPack.LiquidType.LiquidTypeBrush}" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0" Text="{Binding IdsPack.LiquidType.ShortName}" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Volume, StringFormat=0.##}" ></TextBlock>
+ </StackPanel>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </Viewbox>
</DataTemplate>
<DataTemplate x:Key="RGB_Template" DataType="{x:Type entities:BrushStop}">
@@ -69,13 +71,13 @@
<Border Width="50" Height="50" Background="Red" CornerRadius="16" HorizontalAlignment="Left"></Border>
<TextBlock Margin="0 10 0 0" Text="R" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Red}" ></TextBlock>
-
+
</StackPanel>
<StackPanel Orientation="Vertical" Margin="4 0 0 0">
<Border Width="50" Height="50" Background="Green" CornerRadius="16" HorizontalAlignment="Left"></Border>
<TextBlock Margin="0 10 0 0" Text="G" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Green}" ></TextBlock>
-
+
</StackPanel>
<StackPanel Orientation="Vertical" Margin="4 0 0 0">
<Border Width="50" Height="50" Background="Blue" CornerRadius="16" HorizontalAlignment="Left"></Border>
@@ -91,7 +93,7 @@
<Border Width="50" Height="50" Background="Gray" CornerRadius="16" HorizontalAlignment="Left"></Border>
<TextBlock Margin="0 10 0 0 " Text="L" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/>
<TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding L, StringFormat=0.##}" ></TextBlock>
-
+
</StackPanel>
<StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left" Margin="5 0 0 0">
<Border Width="50" Height="50" Background="red" CornerRadius="16" HorizontalAlignment="Left"></Border>
@@ -309,8 +311,8 @@
<DockPanel>
<TextBlock DockPanel.Dock="Bottom" Text="Waste" HorizontalAlignment="Center" Margin="0 8 0 0"></TextBlock>
<Grid Height="15" DockPanel.Dock="Top">
- </Grid>
- <Grid DockPanel.Dock="Top">
+ </Grid>
+ <Grid DockPanel.Dock="Top">
<Grid ClipToBounds="True" HorizontalAlignment="Center">
<Path Fill="#CCCCCC">
<Path.Resources>
@@ -323,7 +325,7 @@
<StaticResource ResourceKey="InkContainerPath"/>
</CombinedGeometry.Geometry1>
<CombinedGeometry.Geometry2>
-
+
<RectangleGeometry Rect="1,0,30,88">
<!--<RectangleGeometry.Rect>
<MultiBinding Converter="{StaticResource MidTankLevelToElementRectConverter}">
@@ -984,22 +986,24 @@
</StackPanel>
</UniformGrid>
- <ItemsControl ItemsSource="{Binding LiquidOutputs}" Margin="0 20 0 0" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityConverter}}">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <StackPanel Orientation="Horizontal" />
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <StackPanel Margin="0 0 10 0" Orientation="Vertical" Width="50" HorizontalAlignment="Left">
- <Border Width="50" Height="50" Background="{Binding LiquidType.LiquidTypeBrush}" CornerRadius="16" HorizontalAlignment="Left"></Border>
- <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding LiquidType.ShortName}"></TextBlock>
- <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding Volume}"></TextBlock>
- </StackPanel>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
+ <Viewbox Margin="0 20 0 0" MaxHeight="120">
+ <ItemsControl ItemsSource="{Binding LiquidOutputs}" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <StackPanel Orientation="Horizontal" />
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <StackPanel Margin="0 0 10 0" Orientation="Vertical" Width="50" HorizontalAlignment="Left">
+ <Border Width="50" Height="50" Background="{Binding LiquidType.LiquidTypeBrush}" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding LiquidType.ShortName}"></TextBlock>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding Volume}"></TextBlock>
+ </StackPanel>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </Viewbox>
</StackPanel>
</Grid>
@@ -1139,9 +1143,9 @@
</Grid>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Dryer Zone 3</TextBlock>
</StackPanel>
-
-
-
+
+
+
<!--<StackPanel Orientation="Vertical">
<Grid>
@@ -1199,7 +1203,7 @@
</Grid>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Dryer Air</TextBlock>
</StackPanel>-->
-
+
<StackPanel Orientation="Vertical">
<Grid>
<touch:TouchArcProgress RingThickness="8" Value="{Binding Tunnel.Value}" Maximum="{Binding Tunnel.MaxValue}" Minimum="0" Width="100" Height="100">
diff --git a/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs
index 139223d8d..08e8d7337 100644
--- a/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs
+++ b/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs
@@ -357,5 +357,69 @@ namespace Tango.BL.DTO
get; set;
}
+ /// <summary>
+ /// blue quantity
+ /// </summary>
+ public Int64 BlueQuantity
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// light blue quantity
+ /// </summary>
+ public Int64 LightBlueQuantity
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// orange quantity
+ /// </summary>
+ public Int64 OrangeQuantity
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// light orange quantity
+ /// </summary>
+ public Int64 LightOrangeQuantity
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// rubine quantity
+ /// </summary>
+ public Int64 RubineQuantity
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// light rubine quantity
+ /// </summary>
+ public Int64 LightRubineQuantity
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// navy quantity
+ /// </summary>
+ public Int64 NavyQuantity
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// violet quantity
+ /// </summary>
+ public Int64 VioletQuantity
+ {
+ get; set;
+ }
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs
index 1cb00d6bc..eba35dbd6 100644
--- a/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs
+++ b/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs
@@ -93,5 +93,21 @@ namespace Tango.BL.DTO
get; set;
}
+ /// <summary>
+ /// is light ink
+ /// </summary>
+ public Boolean IsLightInk
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// dark ink code
+ /// </summary>
+ public Int32 DarkInkCode
+ {
+ get; set;
+ }
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs b/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs
index 6da5b8f8b..54685f7ee 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs
@@ -101,6 +101,22 @@ namespace Tango.BL.Entities
public event EventHandler<Double> ActualEndPositionChanged;
+ public event EventHandler<Int64> BlueQuantityChanged;
+
+ public event EventHandler<Int64> LightBlueQuantityChanged;
+
+ public event EventHandler<Int64> OrangeQuantityChanged;
+
+ public event EventHandler<Int64> LightOrangeQuantityChanged;
+
+ public event EventHandler<Int64> RubineQuantityChanged;
+
+ public event EventHandler<Int64> LightRubineQuantityChanged;
+
+ public event EventHandler<Int64> NavyQuantityChanged;
+
+ public event EventHandler<Int64> VioletQuantityChanged;
+
protected String _machineguid;
/// <summary>
@@ -1227,6 +1243,222 @@ namespace Tango.BL.Entities
}
}
+ protected Int64 _bluequantity;
+
+ /// <summary>
+ /// Gets or sets the jobrunbase blue quantity.
+ /// </summary>
+
+ [Column("BLUE_QUANTITY")]
+
+ public Int64 BlueQuantity
+ {
+ get
+ {
+ return _bluequantity;
+ }
+
+ set
+ {
+ if (_bluequantity != value)
+ {
+ _bluequantity = value;
+
+ OnBlueQuantityChanged(value);
+
+ }
+ }
+ }
+
+ protected Int64 _lightbluequantity;
+
+ /// <summary>
+ /// Gets or sets the jobrunbase light blue quantity.
+ /// </summary>
+
+ [Column("LIGHT_BLUE_QUANTITY")]
+
+ public Int64 LightBlueQuantity
+ {
+ get
+ {
+ return _lightbluequantity;
+ }
+
+ set
+ {
+ if (_lightbluequantity != value)
+ {
+ _lightbluequantity = value;
+
+ OnLightBlueQuantityChanged(value);
+
+ }
+ }
+ }
+
+ protected Int64 _orangequantity;
+
+ /// <summary>
+ /// Gets or sets the jobrunbase orange quantity.
+ /// </summary>
+
+ [Column("ORANGE_QUANTITY")]
+
+ public Int64 OrangeQuantity
+ {
+ get
+ {
+ return _orangequantity;
+ }
+
+ set
+ {
+ if (_orangequantity != value)
+ {
+ _orangequantity = value;
+
+ OnOrangeQuantityChanged(value);
+
+ }
+ }
+ }
+
+ protected Int64 _lightorangequantity;
+
+ /// <summary>
+ /// Gets or sets the jobrunbase light orange quantity.
+ /// </summary>
+
+ [Column("LIGHT_ORANGE_QUANTITY")]
+
+ public Int64 LightOrangeQuantity
+ {
+ get
+ {
+ return _lightorangequantity;
+ }
+
+ set
+ {
+ if (_lightorangequantity != value)
+ {
+ _lightorangequantity = value;
+
+ OnLightOrangeQuantityChanged(value);
+
+ }
+ }
+ }
+
+ protected Int64 _rubinequantity;
+
+ /// <summary>
+ /// Gets or sets the jobrunbase rubine quantity.
+ /// </summary>
+
+ [Column("RUBINE_QUANTITY")]
+
+ public Int64 RubineQuantity
+ {
+ get
+ {
+ return _rubinequantity;
+ }
+
+ set
+ {
+ if (_rubinequantity != value)
+ {
+ _rubinequantity = value;
+
+ OnRubineQuantityChanged(value);
+
+ }
+ }
+ }
+
+ protected Int64 _lightrubinequantity;
+
+ /// <summary>
+ /// Gets or sets the jobrunbase light rubine quantity.
+ /// </summary>
+
+ [Column("LIGHT_RUBINE_QUANTITY")]
+
+ public Int64 LightRubineQuantity
+ {
+ get
+ {
+ return _lightrubinequantity;
+ }
+
+ set
+ {
+ if (_lightrubinequantity != value)
+ {
+ _lightrubinequantity = value;
+
+ OnLightRubineQuantityChanged(value);
+
+ }
+ }
+ }
+
+ protected Int64 _navyquantity;
+
+ /// <summary>
+ /// Gets or sets the jobrunbase navy quantity.
+ /// </summary>
+
+ [Column("NAVY_QUANTITY")]
+
+ public Int64 NavyQuantity
+ {
+ get
+ {
+ return _navyquantity;
+ }
+
+ set
+ {
+ if (_navyquantity != value)
+ {
+ _navyquantity = value;
+
+ OnNavyQuantityChanged(value);
+
+ }
+ }
+ }
+
+ protected Int64 _violetquantity;
+
+ /// <summary>
+ /// Gets or sets the jobrunbase violet quantity.
+ /// </summary>
+
+ [Column("VIOLET_QUANTITY")]
+
+ public Int64 VioletQuantity
+ {
+ get
+ {
+ return _violetquantity;
+ }
+
+ set
+ {
+ if (_violetquantity != value)
+ {
+ _violetquantity = value;
+
+ OnVioletQuantityChanged(value);
+
+ }
+ }
+ }
+
/// <summary>
/// Called when the JobName has changed.
/// </summary>
@@ -1561,6 +1793,78 @@ namespace Tango.BL.Entities
}
/// <summary>
+ /// Called when the BlueQuantity has changed.
+ /// </summary>
+ protected virtual void OnBlueQuantityChanged(Int64 bluequantity)
+ {
+ BlueQuantityChanged?.Invoke(this, bluequantity);
+ RaisePropertyChanged(nameof(BlueQuantity));
+ }
+
+ /// <summary>
+ /// Called when the LightBlueQuantity has changed.
+ /// </summary>
+ protected virtual void OnLightBlueQuantityChanged(Int64 lightbluequantity)
+ {
+ LightBlueQuantityChanged?.Invoke(this, lightbluequantity);
+ RaisePropertyChanged(nameof(LightBlueQuantity));
+ }
+
+ /// <summary>
+ /// Called when the OrangeQuantity has changed.
+ /// </summary>
+ protected virtual void OnOrangeQuantityChanged(Int64 orangequantity)
+ {
+ OrangeQuantityChanged?.Invoke(this, orangequantity);
+ RaisePropertyChanged(nameof(OrangeQuantity));
+ }
+
+ /// <summary>
+ /// Called when the LightOrangeQuantity has changed.
+ /// </summary>
+ protected virtual void OnLightOrangeQuantityChanged(Int64 lightorangequantity)
+ {
+ LightOrangeQuantityChanged?.Invoke(this, lightorangequantity);
+ RaisePropertyChanged(nameof(LightOrangeQuantity));
+ }
+
+ /// <summary>
+ /// Called when the RubineQuantity has changed.
+ /// </summary>
+ protected virtual void OnRubineQuantityChanged(Int64 rubinequantity)
+ {
+ RubineQuantityChanged?.Invoke(this, rubinequantity);
+ RaisePropertyChanged(nameof(RubineQuantity));
+ }
+
+ /// <summary>
+ /// Called when the LightRubineQuantity has changed.
+ /// </summary>
+ protected virtual void OnLightRubineQuantityChanged(Int64 lightrubinequantity)
+ {
+ LightRubineQuantityChanged?.Invoke(this, lightrubinequantity);
+ RaisePropertyChanged(nameof(LightRubineQuantity));
+ }
+
+ /// <summary>
+ /// Called when the NavyQuantity has changed.
+ /// </summary>
+ protected virtual void OnNavyQuantityChanged(Int64 navyquantity)
+ {
+ NavyQuantityChanged?.Invoke(this, navyquantity);
+ RaisePropertyChanged(nameof(NavyQuantity));
+ }
+
+ /// <summary>
+ /// Called when the VioletQuantity has changed.
+ /// </summary>
+ protected virtual void OnVioletQuantityChanged(Int64 violetquantity)
+ {
+ VioletQuantityChanged?.Invoke(this, violetquantity);
+ RaisePropertyChanged(nameof(VioletQuantity));
+ }
+
+ /// <summary>
/// Initializes a new instance of the <see cref="JobRunBase" /> class.
/// </summary>
public JobRunBase() : base()
diff --git a/Software/Visual_Studio/Tango.BL/Entities/LiquidType.cs b/Software/Visual_Studio/Tango.BL/Entities/LiquidType.cs
index d7b0f4f58..b9a7d3557 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/LiquidType.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/LiquidType.cs
@@ -39,6 +39,13 @@ namespace Tango.BL.Entities
get { return (LiquidTypes)Code; }
}
+ [NotMapped]
+ [JsonIgnore]
+ public LiquidTypes? DarkType
+ {
+ get { return DarkInkCode < 0 ? null : (LiquidTypes?)DarkInkCode; }
+ }
+
/// <summary>
/// Initializes a new instance of the <see cref="LiquidType" /> class.
/// </summary>
diff --git a/Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs b/Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs
index bfdc8cfb7..82403a11b 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs
@@ -45,6 +45,10 @@ namespace Tango.BL.Entities
public event EventHandler<Boolean> IsExtraInkChanged;
+ public event EventHandler<Boolean> IsLightInkChanged;
+
+ public event EventHandler<Int32> DarkInkCodeChanged;
+
public event EventHandler<SynchronizedObservableCollection<Cat>> CatsChanged;
public event EventHandler<SynchronizedObservableCollection<IdsPack>> IdsPacksChanged;
@@ -296,6 +300,60 @@ namespace Tango.BL.Entities
}
}
+ protected Boolean _islightink;
+
+ /// <summary>
+ /// Gets or sets the liquidtypebase is light ink.
+ /// </summary>
+
+ [Column("IS_LIGHT_INK")]
+
+ public Boolean IsLightInk
+ {
+ get
+ {
+ return _islightink;
+ }
+
+ set
+ {
+ if (_islightink != value)
+ {
+ _islightink = value;
+
+ OnIsLightInkChanged(value);
+
+ }
+ }
+ }
+
+ protected Int32 _darkinkcode;
+
+ /// <summary>
+ /// Gets or sets the liquidtypebase dark ink code.
+ /// </summary>
+
+ [Column("DARK_INK_CODE")]
+
+ public Int32 DarkInkCode
+ {
+ get
+ {
+ return _darkinkcode;
+ }
+
+ set
+ {
+ if (_darkinkcode != value)
+ {
+ _darkinkcode = value;
+
+ OnDarkInkCodeChanged(value);
+
+ }
+ }
+ }
+
protected SynchronizedObservableCollection<Cat> _cats;
/// <summary>
@@ -478,6 +536,24 @@ namespace Tango.BL.Entities
}
/// <summary>
+ /// Called when the IsLightInk has changed.
+ /// </summary>
+ protected virtual void OnIsLightInkChanged(Boolean islightink)
+ {
+ IsLightInkChanged?.Invoke(this, islightink);
+ RaisePropertyChanged(nameof(IsLightInk));
+ }
+
+ /// <summary>
+ /// Called when the DarkInkCode has changed.
+ /// </summary>
+ protected virtual void OnDarkInkCodeChanged(Int32 darkinkcode)
+ {
+ DarkInkCodeChanged?.Invoke(this, darkinkcode);
+ RaisePropertyChanged(nameof(DarkInkCode));
+ }
+
+ /// <summary>
/// Called when the Cats has changed.
/// </summary>
protected virtual void OnCatsChanged(SynchronizedObservableCollection<Cat> cats)
diff --git a/Software/Visual_Studio/Tango.BL/LiquidVolume.cs b/Software/Visual_Studio/Tango.BL/LiquidVolume.cs
index 5b4cec488..014ca040a 100644
--- a/Software/Visual_Studio/Tango.BL/LiquidVolume.cs
+++ b/Software/Visual_Studio/Tango.BL/LiquidVolume.cs
@@ -14,6 +14,7 @@ namespace Tango.BL
public class LiquidVolume : ExtendedObject
{
public event Action VolumeChanged;
+ private static object _lock = new object();
private BrushStop _brushStop;
[JsonIgnore]
@@ -82,14 +83,25 @@ namespace Tango.BL
public void Invalidate()
{
- if (BrushStop.LiquidVolumes != null)
+ lock (_lock)
{
- InvalidateSolo();
-
- foreach (var liquidVolume in BrushStop.LiquidVolumes.ToList().Where(x => x != this))
+ try
{
- liquidVolume.InvalidateSolo();
+ if (BrushStop.LiquidVolumes != null)
+ {
+ InvalidateSolo();
+
+ foreach (var liquidVolume in BrushStop.LiquidVolumes.ToList().Where(x => x != this))
+ {
+ liquidVolume.InvalidateSolo();
+ }
+ }
}
+ catch (Exception ex)
+ {
+
+ throw;
+ }
}
}
diff --git a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs
index 59741cb5d..053cf785f 100644
--- a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs
+++ b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs
@@ -17,6 +17,7 @@ using System.IO;
using Tango.Core.Helpers;
using Tango.Settings;
using Tango.ColorConversion.ColorBlending;
+using Tango.BL.Dispensing;
namespace Tango.ColorConversion
{
@@ -36,7 +37,7 @@ namespace Tango.ColorConversion
#region Color Conversion
- public ConversionOutput Convert(ConversionInput conversionInput, int version)
+ public ConversionOutput Convert(ConversionInput input, int version)
{
if (version < 1) version = 1;
@@ -49,30 +50,47 @@ namespace Tango.ColorConversion
ConversionOutput output = new ConversionOutput();
+ TransformConversionInput(input);
+
+ IntPtr pDll = NativeMethods.LoadLibrary(fileName);
+ IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "Convert");
+ NativeMethodDelegate convert = (NativeMethodDelegate)Marshal.GetDelegateForFunctionPointer(
+ pAddressOfFunctionToCall,
+ typeof(NativeMethodDelegate));
+
+ NativePMR<ConversionInput, ConversionOutput> nativePMR = new NativePMR<ConversionInput, ConversionOutput>(convert);
+ output = nativePMR.Invoke(input);
+
+ bool result = NativeMethods.FreeLibrary(pDll);
+
+ if (output.HasError)
+ {
+ throw new ExternalException($"Color Conversion Error: {output.ErrorMessage}!");
+ }
+
+ TransformConversionOutput(input, output);
+
+ return output;
+ }
+
+ #region Convert Transform
+
+ private void TransformConversionInput(ConversionInput input)
+ {
+ //Make sure all liquid types exists in the conversion input before converting so the color engine won't fail.
List<PMR.ColorLab.LiquidType> checkInks = new List<PMR.ColorLab.LiquidType>()
{
PMR.ColorLab.LiquidType.Cyan,
PMR.ColorLab.LiquidType.Magenta,
PMR.ColorLab.LiquidType.Yellow,
PMR.ColorLab.LiquidType.Black,
- PMR.ColorLab.LiquidType.LightCyan,
- PMR.ColorLab.LiquidType.LightMagenta,
- PMR.ColorLab.LiquidType.LightYellow,
- PMR.ColorLab.LiquidType.Violet,
- PMR.ColorLab.LiquidType.Blue,
- PMR.ColorLab.LiquidType.LightBlue,
- PMR.ColorLab.LiquidType.Orange,
- PMR.ColorLab.LiquidType.LightOrange,
- PMR.ColorLab.LiquidType.Rubine,
- PMR.ColorLab.LiquidType.LightRubine,
- PMR.ColorLab.LiquidType.Navy
};
foreach (var ink in checkInks)
{
- if (!conversionInput.InputCoordinates.InputLiquids.Any(x => x.LiquidType == ink))
+ if (!input.InputCoordinates.InputLiquids.Any(x => x.LiquidType == ink))
{
- conversionInput.InputCoordinates.InputLiquids.Add(new InputLiquid()
+ input.InputCoordinates.InputLiquids.Add(new InputLiquid()
{
CalibrationData = new CalibrationData(),
LiquidType = ink,
@@ -81,60 +99,127 @@ namespace Tango.ColorConversion
});
}
}
+ }
- IntPtr pDll = NativeMethods.LoadLibrary(fileName);
- IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "Convert");
- NativeMethodDelegate convert = (NativeMethodDelegate)Marshal.GetDelegateForFunctionPointer(
- pAddressOfFunctionToCall,
- typeof(NativeMethodDelegate));
-
- NativePMR<ConversionInput, ConversionOutput> nativePMR = new NativePMR<ConversionInput, ConversionOutput>(convert);
- output = nativePMR.Invoke(conversionInput);
-
- bool result = NativeMethods.FreeLibrary(pDll);
-
- if (output.HasError)
- {
- throw new ExternalException($"Color Conversion Error: {output.ErrorMessage}!");
- }
-
- if (conversionInput.ColorSpace == PMR.ColorLab.ColorSpace.Volume)
+ private void TransformConversionOutput(ConversionInput input, ConversionOutput output)
+ {
+ if (input.ColorSpace == PMR.ColorLab.ColorSpace.Volume)
{
- if (conversionInput.InputCoordinates.InputLiquids.Any(x => x.IsExtraInk && x.Volume > 0))
+ if (input.InputCoordinates.InputLiquids.Any(x => x.IsExtraInk && x.Volume > 0))
{
//Blend the extra ink volume to the output RGB and LAB.
List<BlendableColor> extraInkColors = new List<BlendableColor>();
- foreach (var input in conversionInput.InputCoordinates.InputLiquids.Where(x => x.IsExtraInk && x.Volume > 0))
+ foreach (var inputLiquid in input.InputCoordinates.InputLiquids.Where(x => x.IsExtraInk && x.Volume > 0))
{
- extraInkColors.Add(new BlendableColor(input.Color, input.Volume, input.CalibrationData));
+ extraInkColors.Add(new BlendableColor(inputLiquid.Color, inputLiquid.Volume, inputLiquid.CalibrationData));
}
- BlendOutputCoordinates(output.SingleCoordinates, extraInkColors);
+ BlendOutputColor(output.SingleCoordinates, extraInkColors);
- if (conversionInput.GenerateHive)
+ if (input.GenerateHive)
{
foreach (var coords in output.HiveCoordinates)
{
- BlendOutputCoordinates(coords, extraInkColors);
+ BlendOutputColor(coords, extraInkColors);
+ }
+ }
+
+ //Make sure all extra input inks exists on output.
+ foreach (var inputLiquid in input.InputCoordinates.InputLiquids.Where(x => x.IsExtraInk))
+ {
+ if (!output.SingleCoordinates.OutputLiquids.Any(x => x.LiquidType == inputLiquid.LiquidType))
+ {
+ output.SingleCoordinates.OutputLiquids.Add(new OutputLiquid()
+ {
+ LiquidType = inputLiquid.LiquidType,
+ Volume = inputLiquid.Volume
+ });
+ }
+ }
+
+ //Perform Light Inks Shifting
+ if (input.UseLightInks)
+ {
+ //Perform Light Inks Shifting...
+ PerformLightInkShifting(PMR.ColorLab.LiquidType.Blue, PMR.ColorLab.LiquidType.LightBlue, input, output);
+ PerformLightInkShifting(PMR.ColorLab.LiquidType.Orange, PMR.ColorLab.LiquidType.LightOrange, input, output);
+ PerformLightInkShifting(PMR.ColorLab.LiquidType.Rubine, PMR.ColorLab.LiquidType.LightRubine, input, output);
+
+ //Check Total NLP With Light Inks.
+ double totalNLP = CalculateTotalNLP(input, output);
+
+ if (totalNLP > input.ProcessRanges.Max(x => x.MaxInkUptake))
+ {
+ //Shift Back To Dark Inks
+ PerformDarkInkShifting(PMR.ColorLab.LiquidType.LightBlue, PMR.ColorLab.LiquidType.Blue, input, output);
+ PerformDarkInkShifting(PMR.ColorLab.LiquidType.LightOrange, PMR.ColorLab.LiquidType.Orange, input, output);
+ PerformDarkInkShifting(PMR.ColorLab.LiquidType.LightRubine, PMR.ColorLab.LiquidType.Rubine, input, output);
+ }
+ }
+
+ //Make sure the output selected process parameters are correct.
+ if (input.ProcessRanges.Count > 1)
+ {
+ StandardColorDispensingCalc calc = new StandardColorDispensingCalc();
+
+ double totalNLP = CalculateTotalNLP(input, output);
+
+ var firstMaxInTake = input.ProcessRanges[0].MaxInkUptake;
+
+ if (totalNLP > firstMaxInTake)
+ {
+ output.SingleCoordinates.ProcessParametersTableIndex = 1;
}
}
}
}
else
{
- ResetExtraInks(output.SingleCoordinates, conversionInput);
+ ResetExtraInks(output.SingleCoordinates, input);
- if (conversionInput.GenerateHive)
+ if (input.GenerateHive)
{
foreach (var coords in output.HiveCoordinates)
{
- ResetExtraInks(coords, conversionInput);
+ ResetExtraInks(coords, input);
}
}
}
+ }
- return output;
+ private void PerformLightInkShifting(PMR.ColorLab.LiquidType darkInk, PMR.ColorLab.LiquidType lightInk, ConversionInput input, ConversionOutput output)
+ {
+ var dark = output.SingleCoordinates.OutputLiquids.FirstOrDefault(x => x.LiquidType == darkInk);
+ if (dark != null && dark.Volume < input.VMax)
+ {
+ var darkInput = input.InputCoordinates.InputLiquids.FirstOrDefault(x => x.LiquidType == darkInk);
+ if (darkInput != null)
+ {
+ var maxInkUpdate = input.ProcessRanges.Max(x => x.MaxInkUptake);
+ StandardColorDispensingCalc calc = new StandardColorDispensingCalc();
+ var nlp = calc.CalculateNanoliterPerCentimeter(dark.Volume * 10d, darkInput.MaxNanoliterPerCentimeter);
+ if (nlp > maxInkUpdate) return;
+ }
+
+ var light = output.SingleCoordinates.OutputLiquids.FirstOrDefault(x => x.LiquidType == lightInk);
+ if (light != null)
+ {
+ light.Volume = (double)((decimal)dark.Volume * 10m);
+ dark.Volume = 0;
+ }
+ }
+ }
+
+ private void PerformDarkInkShifting(PMR.ColorLab.LiquidType lightInk, PMR.ColorLab.LiquidType darkInk, ConversionInput input, ConversionOutput output)
+ {
+ var light = output.SingleCoordinates.OutputLiquids.FirstOrDefault(x => x.LiquidType == lightInk);
+ var dark = output.SingleCoordinates.OutputLiquids.FirstOrDefault(x => x.LiquidType == darkInk);
+ if (light != null && dark != null)
+ {
+ dark.Volume = (double)((decimal)light.Volume / 10m);
+ light.Volume = 0;
+ }
}
private void ResetExtraInks(OutputCoordinates output, ConversionInput input)
@@ -154,7 +239,7 @@ namespace Tango.ColorConversion
}
}
- private void BlendOutputCoordinates(OutputCoordinates output, List<BlendableColor> blendableColors)
+ private void BlendOutputColor(OutputCoordinates output, List<BlendableColor> blendableColors)
{
Color baseColor = Color.FromRgb((byte)output.Red, (byte)output.Green, (byte)output.Blue);
@@ -169,6 +254,26 @@ namespace Tango.ColorConversion
output.B = lab.B;
}
+ private double CalculateTotalNLP(ConversionInput input, ConversionOutput output)
+ {
+ StandardColorDispensingCalc calc = new StandardColorDispensingCalc();
+
+ double sumNlp = 0;
+
+ foreach (var outputLiquid in output.SingleCoordinates.OutputLiquids.Where(x => x.Volume > 0).ToList())
+ {
+ var inputLiquid = input.InputCoordinates.InputLiquids.FirstOrDefault(x => x.LiquidType == outputLiquid.LiquidType);
+ if (inputLiquid != null)
+ {
+ sumNlp += calc.CalculateNanoliterPerCentimeter(outputLiquid.Volume, inputLiquid.MaxNanoliterPerCentimeter);
+ }
+ }
+
+ return sumNlp;
+ }
+
+ #endregion
+
public ConversionOutput Convert(BrushStop stop, Configuration configuration, Rml rml, bool generateHive, bool lightInksInstalled, bool useLightInks = false, ConversionType conversionType = ConversionType.Default)
{
if (stop == null)
@@ -1094,77 +1199,5 @@ namespace Tango.ColorConversion
}
#endregion
-
- #region Additional Ink Color Conversion
-
- private static Color Violet = Color.FromRgb(127, 0, 255);
-
-
-
- //private void SetCMYKVToConversionOutput(ConversionOutput output)
- //{
- // var violetOutput = new OutputLiquid() { LiquidType = PMR.ColorLab.LiquidType.Violet, Volume = 0 };
- // output.SingleCoordinates.OutputLiquids.Add(violetOutput);
-
- // foreach (var liquid in output.SingleCoordinates.OutputLiquids)
- // {
- // switch (liquid.LiquidType)
- // {
- // case PMR.ColorLab.LiquidType.Cyan:
- // liquid.Volume = cmykv.C;
- // break;
- // case PMR.ColorLab.LiquidType.Magenta:
- // liquid.Volume = cmykv.M;
- // break;
- // case PMR.ColorLab.LiquidType.Yellow:
- // liquid.Volume = cmykv.Y;
- // break;
- // case PMR.ColorLab.LiquidType.Black:
- // liquid.Volume = cmykv.K;
- // break;
- // case PMR.ColorLab.LiquidType.Violet:
- // liquid.Volume = cmykv.V;
- // break;
- // default:
- // break;
- // }
- // }
-
- // if (output.HiveCoordinates.Count > 0)
- // {
- // var vOutput = new OutputLiquid() { LiquidType = PMR.ColorLab.LiquidType.Violet, Volume = 0 };
-
- // foreach (var cell in output.HiveCoordinates)
- // {
- // cell.OutputLiquids.Add(vOutput);
-
- // foreach (var liquid in cell.OutputLiquids)
- // {
- // switch (liquid.LiquidType)
- // {
- // case PMR.ColorLab.LiquidType.Cyan:
- // liquid.Volume = cmykv.C;
- // break;
- // case PMR.ColorLab.LiquidType.Magenta:
- // liquid.Volume = cmykv.M;
- // break;
- // case PMR.ColorLab.LiquidType.Yellow:
- // liquid.Volume = cmykv.Y;
- // break;
- // case PMR.ColorLab.LiquidType.Black:
- // liquid.Volume = cmykv.K;
- // break;
- // case PMR.ColorLab.LiquidType.Violet:
- // liquid.Volume = cmykv.V;
- // break;
- // default:
- // break;
- // }
- // }
- // }
- // }
- //}
-
- #endregion
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs
index 82150c63c..c04183622 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs
@@ -59,5 +59,13 @@ namespace Tango.DAL.Remote.DB
public int MACHINE_TYPE { get; set; }
public double ACTUAL_START_POSITION { get; set; }
public double ACTUAL_END_POSITION { get; set; }
+ public long BLUE_QUANTITY { get; set; }
+ public long LIGHT_BLUE_QUANTITY { get; set; }
+ public long ORANGE_QUANTITY { get; set; }
+ public long LIGHT_ORANGE_QUANTITY { get; set; }
+ public long RUBINE_QUANTITY { get; set; }
+ public long LIGHT_RUBINE_QUANTITY { get; set; }
+ public long NAVY_QUANTITY { get; set; }
+ public long VIOLET_QUANTITY { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs
index cf6a05620..382efa9e9 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs
@@ -35,6 +35,8 @@ namespace Tango.DAL.Remote.DB
public string SHORT_NAME { get; set; }
public bool AVAILABLE_FOR_STANDARD_USER { get; set; }
public bool IS_EXTRA_INK { get; set; }
+ public bool IS_LIGHT_INK { get; set; }
+ public int DARK_INK_CODE { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<CAT> CATS { get; set; }
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
index 4484f520b..be35aea37 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
@@ -824,6 +824,14 @@
<Property Name="MACHINE_TYPE" Type="int" Nullable="false" />
<Property Name="ACTUAL_START_POSITION" Type="float" Nullable="false" />
<Property Name="ACTUAL_END_POSITION" Type="float" Nullable="false" />
+ <Property Name="BLUE_QUANTITY" Type="bigint" Nullable="false" />
+ <Property Name="LIGHT_BLUE_QUANTITY" Type="bigint" Nullable="false" />
+ <Property Name="ORANGE_QUANTITY" Type="bigint" Nullable="false" />
+ <Property Name="LIGHT_ORANGE_QUANTITY" Type="bigint" Nullable="false" />
+ <Property Name="RUBINE_QUANTITY" Type="bigint" Nullable="false" />
+ <Property Name="LIGHT_RUBINE_QUANTITY" Type="bigint" Nullable="false" />
+ <Property Name="NAVY_QUANTITY" Type="bigint" Nullable="false" />
+ <Property Name="VIOLET_QUANTITY" Type="bigint" Nullable="false" />
</EntityType>
<EntityType Name="JOBS">
<Key>
@@ -896,6 +904,8 @@
<Property Name="SHORT_NAME" Type="nvarchar" MaxLength="4" />
<Property Name="AVAILABLE_FOR_STANDARD_USER" Type="bit" Nullable="false" />
<Property Name="IS_EXTRA_INK" Type="bit" Nullable="false" />
+ <Property Name="IS_LIGHT_INK" Type="bit" Nullable="false" />
+ <Property Name="DARK_INK_CODE" Type="int" Nullable="false" />
</EntityType>
<EntityType Name="LIQUID_TYPES_RMLS">
<Key>
@@ -6510,6 +6520,14 @@
<Property Name="MACHINE_TYPE" Type="Int32" Nullable="false" />
<Property Name="ACTUAL_START_POSITION" Type="Double" Nullable="false" />
<Property Name="ACTUAL_END_POSITION" Type="Double" Nullable="false" />
+ <Property Name="BLUE_QUANTITY" Type="Int64" Nullable="false" />
+ <Property Name="LIGHT_BLUE_QUANTITY" Type="Int64" Nullable="false" />
+ <Property Name="ORANGE_QUANTITY" Type="Int64" Nullable="false" />
+ <Property Name="LIGHT_ORANGE_QUANTITY" Type="Int64" Nullable="false" />
+ <Property Name="RUBINE_QUANTITY" Type="Int64" Nullable="false" />
+ <Property Name="LIGHT_RUBINE_QUANTITY" Type="Int64" Nullable="false" />
+ <Property Name="NAVY_QUANTITY" Type="Int64" Nullable="false" />
+ <Property Name="VIOLET_QUANTITY" Type="Int64" Nullable="false" />
</EntityType>
<EntityType Name="JOB">
<Key>
@@ -6593,6 +6611,8 @@
<Property Name="SHORT_NAME" Type="String" MaxLength="4" FixedLength="false" Unicode="true" />
<Property Name="AVAILABLE_FOR_STANDARD_USER" Type="Boolean" Nullable="false" />
<Property Name="IS_EXTRA_INK" Type="Boolean" Nullable="false" />
+ <Property Name="IS_LIGHT_INK" Type="Boolean" Nullable="false" />
+ <Property Name="DARK_INK_CODE" Type="Int32" Nullable="false" />
<NavigationProperty Name="CATS" Relationship="RemoteModel.FK_CATS_LIQUID_TYPES1" FromRole="LIQUID_TYPES" ToRole="CAT" />
<NavigationProperty Name="IDS_PACKS" Relationship="RemoteModel.FK_CONFIGURATIONS_DISPENSERS_LIQUIDS" FromRole="LIQUID_TYPES" ToRole="IDS_PACKS" />
<NavigationProperty Name="LIQUID_TYPES_RMLS" Relationship="RemoteModel.FK_LIQUID_TYPES_RMLS_LIQUID_TYPES" FromRole="LIQUID_TYPES" ToRole="LIQUID_TYPES_RMLS" />
@@ -9987,6 +10007,14 @@
<EntitySetMapping Name="JOB_RUNS">
<EntityTypeMapping TypeName="RemoteModel.JOB_RUNS">
<MappingFragment StoreEntitySet="JOB_RUNS">
+ <ScalarProperty Name="VIOLET_QUANTITY" ColumnName="VIOLET_QUANTITY" />
+ <ScalarProperty Name="NAVY_QUANTITY" ColumnName="NAVY_QUANTITY" />
+ <ScalarProperty Name="LIGHT_RUBINE_QUANTITY" ColumnName="LIGHT_RUBINE_QUANTITY" />
+ <ScalarProperty Name="RUBINE_QUANTITY" ColumnName="RUBINE_QUANTITY" />
+ <ScalarProperty Name="LIGHT_ORANGE_QUANTITY" ColumnName="LIGHT_ORANGE_QUANTITY" />
+ <ScalarProperty Name="ORANGE_QUANTITY" ColumnName="ORANGE_QUANTITY" />
+ <ScalarProperty Name="LIGHT_BLUE_QUANTITY" ColumnName="LIGHT_BLUE_QUANTITY" />
+ <ScalarProperty Name="BLUE_QUANTITY" ColumnName="BLUE_QUANTITY" />
<ScalarProperty Name="ACTUAL_END_POSITION" ColumnName="ACTUAL_END_POSITION" />
<ScalarProperty Name="ACTUAL_START_POSITION" ColumnName="ACTUAL_START_POSITION" />
<ScalarProperty Name="MACHINE_TYPE" ColumnName="MACHINE_TYPE" />
@@ -10095,6 +10123,8 @@
<EntitySetMapping Name="LIQUID_TYPES">
<EntityTypeMapping TypeName="RemoteModel.LIQUID_TYPES">
<MappingFragment StoreEntitySet="LIQUID_TYPES">
+ <ScalarProperty Name="DARK_INK_CODE" ColumnName="DARK_INK_CODE" />
+ <ScalarProperty Name="IS_LIGHT_INK" ColumnName="IS_LIGHT_INK" />
<ScalarProperty Name="IS_EXTRA_INK" ColumnName="IS_EXTRA_INK" />
<ScalarProperty Name="AVAILABLE_FOR_STANDARD_USER" ColumnName="AVAILABLE_FOR_STANDARD_USER" />
<ScalarProperty Name="SHORT_NAME" ColumnName="SHORT_NAME" />
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
index 15865425b..0a10d54d9 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
@@ -5,103 +5,103 @@
<!-- Diagram content (shape and connector positions) -->
<edmx:Diagrams>
<Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1" ZoomLevel="58">
- <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="53.25" />
- <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="85.75" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="68.5" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="74.375" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="48.625" />
- <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="8.75" PointY="8.75" />
- <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="20.75" />
- <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="14.625" />
- <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="35.625" />
- <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="43.25" />
- <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="25.375" />
- <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="41.875" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="6.25" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="3.75" PointY="6.75" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="6" PointY="5.5" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="8.25" PointY="20.375" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_MEASUREMENTS" Width="1.5" PointX="10.75" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="2.75" PointY="10.75" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="39.375" />
- <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="54.375" />
- <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="81.875" />
- <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="30.25" />
- <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="5.25" PointY="68.75" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="0.75" PointY="2.25" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3" PointY="1.625" />
- <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="71.375" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="66.25" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="32.625" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="38.875" />
- <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="33.875" />
- <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="21" />
- <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="10.75" PointY="8.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="94" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="73.625" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="92" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="6.75" PointY="77.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="1.5" PointY="102" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="3.75" PointY="82" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="7.5" PointY="89.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="9.75" PointY="74.625" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="4.5" PointY="96" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="6.75" PointY="82.125" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="98" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="3.75" PointY="77.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="77.25" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="88" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="73.875" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3" PointY="39.875" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="34" />
- <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="13.75" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="21.625" />
- <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="45.125" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="14" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="21.625" />
- <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="29.375" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="5.75" PointY="11.75" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="43.75" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="89.875" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="56.625" />
- <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="48.625" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="11.75" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="17.875" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="25.875" />
- <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="52.125" />
- <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="61.875" />
- <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="13.75" />
- <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="49.75" />
- <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="56" />
- <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="8.75" PointY="5" />
- <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="11" PointY="5.125" />
- <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="8" PointY="1" />
- <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.375" />
- <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="25.125" />
- <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="17.625" />
- <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="17.75" />
- <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="14.75" PointY="11.75" />
- <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="25.375" />
- <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="25.75" />
- <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="35.5" />
- <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="5.25" PointY="18.125" />
- <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="29.875" />
- <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="14.25" PointY="29.5" />
- <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="14.75" />
- <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="39.5" />
- <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="15.75" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="15.75" PointY="3.75" />
- <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="11.25" PointY="61" />
- <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="16.75" PointY="8.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="16.75" PointY="12.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="16.75" PointY="15.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="17.75" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="18.75" PointY="5.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="18.75" PointY="10.75" />
- <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="33.375" />
- <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="34.75" />
- <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="5.75" PointY="1.5" />
- <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="42.875" />
+ <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="60.875" />
+ <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="58.75" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="67" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="75.75" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="72.875" />
+ <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="3.75" PointY="1.25" />
+ <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="21.25" />
+ <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="12.375" />
+ <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="42.125" />
+ <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="8" PointY="91.5" />
+ <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="8.25" PointY="26" />
+ <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="26.25" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="0.75" PointY="7.25" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="3" PointY="6" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="21.875" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_MEASUREMENTS" Width="1.5" PointX="10.75" PointY="9.25" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="5.75" PointY="1.25" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="13.375" />
+ <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="3.75" PointY="72.75" />
+ <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="54.875" />
+ <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="35.375" />
+ <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="8.25" PointY="79.875" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="5.75" PointY="9.125" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="8" PointY="8.625" />
+ <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="69.875" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="64.875" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="21.75" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="18.875" />
+ <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="57" />
+ <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="29.625" />
+ <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="7.75" PointY="1.25" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="4.5" PointY="91.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="6.75" PointY="84" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="91.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="3.75" PointY="87.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="9.5" PointY="94.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="11.75" PointY="74.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="6.5" PointY="64.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="8.75" PointY="70.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="8.5" PointY="98.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="10.75" PointY="80.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="83.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="3.75" PointY="79.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="78.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="1.5" PointY="87.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="3.75" PointY="83.25" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="8" PointY="4.875" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="10.25" PointY="44" />
+ <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="14.75" PointY="9.25" />
+ <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="22.25" />
+ <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="33" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="15.5" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="26.125" />
+ <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="38.875" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="2.75" PointY="12.25" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="70" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="3.75" PointY="63.625" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="6" PointY="67.75" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="65.25" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="35.875" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="15.75" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="45.5" />
+ <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="8" PointY="88.125" />
+ <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="3.75" PointY="56.875" />
+ <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="18.875" />
+ <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="38.625" />
+ <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="44.875" />
+ <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="10.75" PointY="5.5" />
+ <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="13" PointY="5.625" />
+ <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="13" PointY="1.5" />
+ <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.875" />
+ <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="5.25" PointY="29.625" />
+ <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="39.75" />
+ <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="39.875" />
+ <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="11.75" PointY="13.25" />
+ <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="26" />
+ <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="26.25" />
+ <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="6" PointY="57" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="11.25" PointY="34.125" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="8.25" PointY="22.375" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="13.25" PointY="43.75" />
+ <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="29.875" />
+ <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="52.625" />
+ <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="15.75" PointY="1.25" />
+ <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="15.75" PointY="4.25" />
+ <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="60" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="2.75" PointY="16.25" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="16.75" PointY="9.25" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="16.75" PointY="12.25" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="16.75" PointY="15.25" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="17.75" PointY="1.25" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="18.75" PointY="6.25" />
+ <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="55.5" />
+ <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="56.875" />
+ <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="10.75" PointY="2" />
+ <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="17.25" />
<AssociationConnector Association="RemoteModel.FK_ACTION_LOGS_USERS" />
<AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" />
<AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" />
diff --git a/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs
index d4fcf7f41..1596c4b22 100644
--- a/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs
+++ b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs
@@ -232,6 +232,38 @@ namespace Tango.Integration.JobRuns
var lightYellow = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.LightYellow);
run.LightYellowQuantity = lightYellow != null ? lightYellow.Quantity : 0;
+ //Blue
+ var blue = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.Blue);
+ run.BlueQuantity = blue != null ? blue.Quantity : 0;
+
+ //Light Blue
+ var lightBlue = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.LightBlue);
+ run.LightBlueQuantity = lightBlue != null ? lightBlue.Quantity : 0;
+
+ //Orange
+ var orange = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.Orange);
+ run.OrangeQuantity = orange != null ? orange.Quantity : 0;
+
+ //Light Orange
+ var lightOrange = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.LightOrange);
+ run.LightOrangeQuantity = lightOrange != null ? lightOrange.Quantity : 0;
+
+ //Rubine
+ var rubine = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.Rubine);
+ run.RubineQuantity = rubine != null ? rubine.Quantity : 0;
+
+ //Light Rubine
+ var lightRubine = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.LightRubine);
+ run.LightRubineQuantity = lightRubine != null ? lightRubine.Quantity : 0;
+
+ //Navy
+ var navy = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.Navy);
+ run.NavyQuantity = navy != null ? navy.Quantity : 0;
+
+ //Violet
+ var violet = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.Violet);
+ run.VioletQuantity = violet != null ? violet.Quantity : 0;
+
if (exception != null)
{
run.FailedMessage = exception.FlattenMessage();
diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml
index 99fb198b2..a5b64e7d9 100644
--- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml
+++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml
Binary files differ