aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2020-08-31 09:10:47 +0300
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2020-08-31 09:10:47 +0300
commit66f00e5729e48811cc7d5d6f728988cd64f225e7 (patch)
treea4eea76659627fc0efdc1d80a0725b4fda154eff /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML
parenteeaeeca65c5e0a376ca3f164a4921cad995d62ed (diff)
downloadTango-66f00e5729e48811cc7d5d6f728988cd64f225e7.tar.gz
Tango-66f00e5729e48811cc7d5d6f728988cd64f225e7.zip
Calibration Color. LAB graph is added to Linearization tab.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/ColorLinearizationModel.cs17
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/ColorCalibrationViewVM.cs68
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorCalibrationView.xaml41
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorCalibrationView.xaml.cs1
4 files changed, 108 insertions, 19 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/ColorLinearizationModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/ColorLinearizationModel.cs
index 53e15f976..f82c04bbc 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/ColorLinearizationModel.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/ColorLinearizationModel.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -24,9 +25,19 @@ namespace Tango.MachineStudio.RML.Models
public void GetDataFromFile(string fileName, out List<LinearizationDataItem> items)
{
- ExcelReader reader = new ExcelReader(fileName);
- items = reader.GetDataByIndex<LinearizationDataItem>("Sheet1", 2);
- reader.Dispose();
+ items = null;
+ try
+ {
+ using (ExcelReader reader = new ExcelReader(fileName))
+ {
+ items = reader.GetDataByIndex<LinearizationDataItem>("Sheet1", 2);
+ }
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine($" Error in GetDataFromFile {fileName} exception: {ex.Message}" + Environment.NewLine);
+ }
+
}
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/ColorCalibrationViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/ColorCalibrationViewVM.cs
index f7e93a4e6..31d89005e 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/ColorCalibrationViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/ColorCalibrationViewVM.cs
@@ -41,7 +41,7 @@ namespace Tango.MachineStudio.RML.ViewModels
public BL.Entities.LiquidType LiquidType
{
get { return _liquidType; }
- set { _liquidType = value; RaisePropertyChangedAuto(); }
+ set { _liquidType = value; RaisePropertyChangedAuto(); RaisePropertyChanged("LiquidTypeName"); }
}
private List<BL.Entities.LiquidType> _liquidTypes;
@@ -99,7 +99,7 @@ namespace Tango.MachineStudio.RML.ViewModels
public string LiquidTypeName
{
- get { return LiquidType == null ?"" : LiquidType.Name; }
+ get { return LiquidType == null ?"" : LiquidType.Name; }
}
public Plot PlotControl { get; set; }
@@ -162,7 +162,23 @@ namespace Tango.MachineStudio.RML.ViewModels
}
}
-
+ private double _LabMinVal;
+
+ public double LabMinVal
+ {
+ get { return _LabMinVal; }
+ set { _LabMinVal = value; RaisePropertyChangedAuto(); }
+ }
+
+ private double _LabMaxVal;
+
+ public double LabMaxVal
+ {
+ get { return _LabMaxVal; }
+ set { _LabMaxVal = value; RaisePropertyChangedAuto(); }
+ }
+
+ public Plot LABLinearizationPlotControl { get; set; }
public Plot LinearizationPlotControl { get; set; }
private IList<DataPoint> _linearizationPoints;
/// <summary>
@@ -178,6 +194,31 @@ namespace Tango.MachineStudio.RML.ViewModels
}
}
+ private IList<DataPoint> _LPoints;
+
+ public IList<DataPoint> LPoints
+ {
+ get { return _LPoints; }
+ set { _LPoints = value; }
+ }
+
+ private IList<DataPoint> _APoints;
+
+ public IList<DataPoint> APoints
+ {
+ get { return _APoints; }
+ set { _APoints = value; }
+ }
+
+ private IList<DataPoint> _BPoints;
+
+ public IList<DataPoint> BPoints
+ {
+ get { return _BPoints; }
+ set { _BPoints = value; }
+ }
+
+
#endregion
public ColorCalibrationViewVM(INotificationProvider notification)
@@ -199,6 +240,9 @@ namespace Tango.MachineStudio.RML.ViewModels
this.Points = new List<DataPoint>();
TargetPoints = new List<DataPoint>();
LinearizationPoints = new List<DataPoint>();
+ LPoints = new List<DataPoint>();
+ APoints = new List<DataPoint>();
+ BPoints = new List<DataPoint>();
}
public void Loading()
@@ -254,7 +298,7 @@ namespace Tango.MachineStudio.RML.ViewModels
List<ColorLinearizationModel.LinearizationDataItem> items;//List<LinearizationDataItem> items
ColorLinearizationModel model = new ColorLinearizationModel();
model.GetDataFromFile(dlg.FileName, out items);
- if (items.Count == 0)
+ if (items == null || items.Count == 0)
return;
Measurements.Clear();
items.ForEach(x => Measurements.Add(new CalibrationMeasurementModel(x)));
@@ -345,7 +389,7 @@ namespace Tango.MachineStudio.RML.ViewModels
List<ColorLinearizationModel.LinearizationDataItem> items;
model.GetDataFromFile(fileName, out items);
- if (items.Count == 0)
+ if (items == null || items.Count == 0)
return;
List<double> outputPoints = new List<double>();
@@ -355,6 +399,20 @@ namespace Tango.MachineStudio.RML.ViewModels
});
LinearizationPoints.Clear();
+ LPoints.Clear();
+ APoints.Clear();
+ BPoints.Clear();
+ LabMinVal = LabMaxVal = 0;
+
+ LabMinVal = items.Min(x => Math.Min(x.L, Math.Min(x.A, x.B)));
+ LabMaxVal = items.Max(x => Math.Max(x.L, Math.Max(x.A, x.B)));
+ foreach (var labItem in items)
+ {
+ LPoints.Add(new DataPoint(labItem.InkPercentage, labItem.L));
+ APoints.Add(new DataPoint(labItem.InkPercentage, labItem.A));
+ BPoints.Add(new DataPoint(labItem.InkPercentage, labItem.B));
+ }
+ LABLinearizationPlotControl.InvalidatePlot(true);
if (outputPoints == null || outputPoints.Count != items.Count)
return;
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorCalibrationView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorCalibrationView.xaml
index d05959f9a..22832829d 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorCalibrationView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorCalibrationView.xaml
@@ -29,8 +29,8 @@
</StackPanel>
<Grid>
<Grid.ColumnDefinitions>
- <ColumnDefinition Width="2*"/>
- <ColumnDefinition Width="1*"/>
+ <ColumnDefinition Width="1.1*"/>
+ <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<DockPanel Grid.Column="0">
<Border DockPanel.Dock="Top" Background="{StaticResource TransparentBackgroundBrush200}" Margin="20 0 0 0 " Padding="5" CornerRadius="5" Height="40" VerticalAlignment="Top">
@@ -103,16 +103,16 @@
</StackPanel>
</Grid>
- <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="1" Grid.Row="0" Margin="20 0 0 0">
- <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0 20 0 0" BorderThickness="0" BorderBrush="{StaticResource DarkGrayBrush}" CornerRadius="5">
- <oxy:Plot Title="{Binding LiquidTypeName}" x:Name="CalibrationPlot" Margin="0 0 10 0" Background="Transparent">
+ <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="1" Grid.Row="0" Margin="10 0 0 0">
+ <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderThickness="0" BorderBrush="{StaticResource DarkGrayBrush}" CornerRadius="5">
+ <oxy:Plot Title="{Binding LiquidTypeName}" TitleFontSize="14" x:Name="CalibrationPlot" Margin="0 0 10 0" Background="Transparent" >
<oxy:Plot.Series >
<oxy:LineSeries ItemsSource="{Binding Points}" Color="#73B6EC" MarkerFill="SteelBlue" MarkerType="Circle" />
<oxy:LineSeries ItemsSource="{Binding TargetPoints}" Color="#E14141" />
</oxy:Plot.Series>
<oxy:Plot.Axes>
- <oxy:LinearAxis Position="Bottom" Title = "nl/cm" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True"/>
- <oxy:LinearAxis Position="Left" Title = "Lab" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" Minimum="{Binding From}" Maximum="{Binding To}"/>
+ <oxy:LinearAxis Position="Bottom" Title = "nl/cm" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" Minimum="0" Maximum="100"/>
+ <oxy:LinearAxis Position="Left" Title = "Lab" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" Minimum="{Binding From}" Maximum="{Binding To}" />
</oxy:Plot.Axes>
</oxy:Plot>
</Border>
@@ -160,14 +160,33 @@
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="0" Margin="0 0 0 0">
- <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0" BorderThickness="0" BorderBrush="{StaticResource DarkGrayBrush}" CornerRadius="5">
- <oxy:Plot Title="{Binding LiquidTypeName}" x:Name="LinearizationPlot" Margin="0 0 0 0" Background="Transparent">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="1*"></ColumnDefinition>
+ <ColumnDefinition Width="1*"></ColumnDefinition>
+ </Grid.ColumnDefinitions>
+
+ <Border Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderThickness="0" BorderBrush="{StaticResource DarkGrayBrush}" CornerRadius="5">
+ <oxy:Plot Title="{Binding LiquidTypeName}" TitleFontSize="14" x:Name="LABLinearizationPlot" Margin="0 0 10 0" Background="Transparent" LegendPlacement="Inside" LegendPosition="TopRight" LegendOrientation="Vertical" LegendFontSize="9" LegendItemAlignment="Left" LegendLineSpacing="3" Foreground="{StaticResource Dialog.Foreground}">
+ <oxy:Plot.Series >
+ <oxy:LineSeries ItemsSource="{Binding LPoints}" Color="LawnGreen" Title="L" StrokeThickness="1.5"/>
+ <oxy:LineSeries ItemsSource="{Binding APoints}" Color="#E14141" Title="A" StrokeThickness="1.5"/>
+ <oxy:LineSeries ItemsSource="{Binding BPoints}" Color="#73B6EC" Title="B" StrokeThickness="1.5"/>
+ </oxy:Plot.Series>
+ <oxy:Plot.Axes>
+ <oxy:LinearAxis Position="Bottom" Title = "Ink%" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" AxisTitleDistance ="12" Minimum="0" Maximum="100" />
+ <oxy:LinearAxis Position="Left" Title = "LAB" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" Minimum="{Binding LabMinVal}" Maximum="{Binding LabMaxVal}" MinorStep="10" />
+ </oxy:Plot.Axes>
+ </oxy:Plot>
+ </Border>
+
+ <Border Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0" BorderThickness="0" BorderBrush="{StaticResource DarkGrayBrush}" CornerRadius="5" >
+ <oxy:Plot Title="{Binding LiquidTypeName}" TitleFontSize="14" x:Name="LinearizationPlot" Margin="0 0 0 0" Background="Transparent" LegendPlacement="Inside" LegendPosition="RightTop" LegendOrientation="Vertical" >
<oxy:Plot.Series >
<oxy:LineSeries ItemsSource="{Binding LinearizationPoints}" Color="#73B6EC" MarkerFill="SteelBlue" MarkerType="Circle"/>
</oxy:Plot.Series>
<oxy:Plot.Axes>
- <oxy:LinearAxis Position="Bottom" Title = "In Ink" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" Minimum="0"/>
- <oxy:LinearAxis Position="Left" Title = "Out Ink" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" Minimum="0" />
+ <oxy:LinearAxis Position="Bottom" Title = "In Ink" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" Minimum="0" Maximum="100"/>
+ <oxy:LinearAxis Position="Left" Title = "Out Ink" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" Minimum="0" Maximum="100"/>
</oxy:Plot.Axes>
</oxy:Plot>
</Border>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorCalibrationView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorCalibrationView.xaml.cs
index d56b3c6c9..c29bb68fb 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorCalibrationView.xaml.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorCalibrationView.xaml.cs
@@ -34,6 +34,7 @@ namespace Tango.MachineStudio.RML.Views
ColorCalibrationViewVM vm = (ColorCalibrationViewVM)DataContext;
vm.PlotControl = CalibrationPlot;
vm.LinearizationPlotControl = LinearizationPlot;
+ vm.LABLinearizationPlotControl = LABLinearizationPlot;
vm.Loading();
}
}