aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2020-06-22 15:31:41 +0300
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2020-06-22 15:31:41 +0300
commite0485a64c8be34fb596fd02befaebec0091625c4 (patch)
treef712180bb03dcd12cce7b58a433c7f53a5ecc4c6 /Software/Visual_Studio/MachineStudio/Modules
parent69a5fa82c4633e1c9afa3e0164ff215a8d54c1ed (diff)
downloadTango-e0485a64c8be34fb596fd02befaebec0091625c4.tar.gz
Tango-e0485a64c8be34fb596fd02befaebec0091625c4.zip
Color calibration. Added warning text and Factor to show in GUI.
Related Work Items: #2957
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/ColorCalibrationViewVM.cs57
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/ColorCalibrationView.xaml24
2 files changed, 59 insertions, 22 deletions
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 dd0c66c58..d44ef7a0c 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
@@ -16,6 +16,7 @@ using Tango.ColorCalibration;
using Tango.PMR.ColorLab;
using Tango.Logging;
using Tango.MachineStudio.Common.Notifications;
+using System.Text.RegularExpressions;
namespace Tango.MachineStudio.RML.ViewModels
{
@@ -69,9 +70,24 @@ namespace Tango.MachineStudio.RML.ViewModels
public double Factor
{
get { return _factor; }
- set { _factor = value; }
+ set { _factor = value; RaisePropertyChangedAuto(); }
}
+ private string _errorMessage;
+
+ public string ErrorMessage
+ {
+ get { return _errorMessage; }
+ set { _errorMessage = value; RaisePropertyChangedAuto(); }
+ }
+ private bool _hasError;
+
+ public bool HasError
+ {
+ get { return _hasError; }
+ set { _hasError = value; RaisePropertyChangedAuto(); }
+ }
+
public RelayCommand CreateGraphCommand { get; set; }
@@ -152,6 +168,7 @@ namespace Tango.MachineStudio.RML.ViewModels
new CalibrationMeasurementModel(),
};
Factor = 0;
+ HasError = false;
CreateGraphCommand = new RelayCommand(CreateGraph);
this.Points = new List<DataPoint>();
TargetPoints = new List<DataPoint>();
@@ -166,24 +183,31 @@ namespace Tango.MachineStudio.RML.ViewModels
private double GetLiquidFactor()
{
- try{
- CalibrationInput conversionInput = new CalibrationInput();
- Measurements.ToList().ForEach(x => conversionInput.Measurements.Add(new CalibrationMeasurement{ L = x.L, A = x.A, B = x.B, NanoliterPerCentimeter = x.Ink }));
- conversionInput.LiquidType = PMR.ColorLab.LiquidType.TryParse(_liquidType.Type.ToString(), out PMR.ColorLab.LiquidType outValue) ? outValue : PMR.ColorLab.LiquidType.Black;
-
+ try
+ {
+ CalibrationInput conversionInput = new CalibrationInput();
+ Measurements.ToList().ForEach(x => conversionInput.Measurements.Add(new CalibrationMeasurement { L = x.L, A = x.A, B = x.B, NanoliterPerCentimeter = x.Ink }));
+ conversionInput.LiquidType = PMR.ColorLab.LiquidType.TryParse(_liquidType.Type.ToString(), out PMR.ColorLab.LiquidType outValue) ? outValue : PMR.ColorLab.LiquidType.Black;
- LAB lab;
- if (ColorCalibrationExt.TargetLiquidTypeToLAB.TryGetValue(_liquidType.Type, out lab))
- {
- conversionInput.TargetL = lab.L;
- conversionInput.TargetA = lab.A;
- conversionInput.TargetB = lab.B;
- }
- CalibrationOutput result = _calibrator.GetLiquidFactor(conversionInput);
- return result.LiquidFactor;
+
+ LAB lab;
+ if (ColorCalibrationExt.TargetLiquidTypeToLAB.TryGetValue(_liquidType.Type, out lab))
+ {
+ conversionInput.TargetL = lab.L;
+ conversionInput.TargetA = lab.A;
+ conversionInput.TargetB = lab.B;
+ }
+ CalibrationOutput result = _calibrator.GetLiquidFactor(conversionInput);
+
+ ErrorMessage = Regex.Replace(result.ErrorMessage, "[^A-Za-z0-9_., ]+", "");
+
+ HasError = false == String.IsNullOrEmpty(ErrorMessage);
+ return result.LiquidFactor;
}
catch (Exception ex )
{
+ HasError = true;
+ ErrorMessage = "Error occurred while trying to call GetLiquidFactor.";
LogManager.Log(ex, "Error occurred while trying to call GetLiquidFactor.");
}
return 0.0;
@@ -196,11 +220,10 @@ namespace Tango.MachineStudio.RML.ViewModels
if (_liquidType == null)
return;
- LAB lab;
string labType = ColorCalibrationExt.DisplayLiquidTypeToLABType[_liquidType.Type];
await Task.Factory.StartNew(() =>
{
- Factor = GetLiquidFactor();
+ Factor = GetLiquidFactor( );
});
Points.Clear();
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 02cef3c0d..ffe3bf68e 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
@@ -13,12 +13,13 @@
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}">
- <UserControl.Resources>
- <converters:EmptyStringToNullConverter x:Key="EmptyStringToNullConverter" />
- <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
- </UserControl.Resources>
+ <UserControl.Resources>
+ <converters:EmptyStringToNullConverter x:Key="EmptyStringToNullConverter" />
+ <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
+ <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter"/>
+ </UserControl.Resources>
- <Grid>
+ <Grid>
<DockPanel>
<Border DockPanel.Dock="Top" Background="{StaticResource TransparentBackgroundBrush200}" Margin="20 0" Padding="5" CornerRadius="5">
<Border.Effect>
@@ -115,6 +116,19 @@
</oxy:Plot>
</Border>
</Grid>
+ <Grid Grid.Column="2" Margin="40 0 0 0">
+ <StackPanel Orientation="Vertical">
+ <TextBlock FontSize="16" HorizontalAlignment="Left" Foreground="{StaticResource MainWindow.Foreground}" Height="50" Visibility="{Binding HasError, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <Run FontWeight="DemiBold"> Factor: </Run>
+ <Run Text="{Binding Factor}"></Run>
+ <LineBreak />
+ </TextBlock>
+ <TextBlock FontSize="16" Foreground="{StaticResource MainWindow.Foreground}" FontWeight="SemiBold" Visibility="{Binding HasError, Converter={StaticResource BooleanToVisibilityConverter}}" Margin="0 20 10 20" >Warning:</TextBlock>
+ <Border BorderThickness="1" CornerRadius="4" BorderBrush="{StaticResource DarkGrayBrush}" Visibility="{Binding HasError, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <TextBlock Margin="5" Foreground="{StaticResource RedBrush300}" Text="{Binding ErrorMessage}" Height="75" TextWrapping="Wrap" TextTrimming="CharacterEllipsis" />
+ </Border>
+ </StackPanel>
+ </Grid>
</Grid>
</DockPanel>
</Grid>