aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Software/DB/PPC/Tango.mdfbin75497472 -> 75497472 bytes
-rw-r--r--Software/DB/PPC/Tango_log.ldfbin53673984 -> 53673984 bytes
-rw-r--r--Software/PMR/Messages/ColorLab/OutputCoordinates.proto3
-rw-r--r--Software/PMR/Messages/Diagnostics/EventType.proto52
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml96
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp56
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/Exports.cpp2
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ColorSpace.pb-c.c4
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ColorSpace.pb-c.h2
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/LiquidType.pb-c.c8
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/LiquidType.pb-c.h2
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/OutputCoordinates.pb-c.c45
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/OutputCoordinates.pb-c.h8
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Converters/MachineEventToViewConverter.cs24
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/JobEventView.xaml27
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/JobEventView.xaml.cs28
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Tango.PPC.Events.csproj9
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/ViewModels/MainViewVM.cs6
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Views/MainView.xaml2
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Dialogs/BasicColorCorrectionView.xaml25
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobSummeryViewVM.cs2
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs47
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobsView.xaml.cs30
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs45
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs35
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs22
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest2
-rw-r--r--Software/Visual_Studio/Tango.BL/ColorConversion/TangoColorConverter.cs5
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs2
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/Job.cs4
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/MachinesEvent.cs9
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs32
-rw-r--r--Software/Visual_Studio/Tango.BL/ObservableEntity.cs5
-rw-r--r--Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs37
-rw-r--r--Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs481
-rw-r--r--Software/Visual_Studio/Tango.PMR/Printing/JobTicket.cs71
-rw-r--r--Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xmlbin41074 -> 38534 bytes
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs21
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Events.xlsxbin53458 -> 53943 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs29
40 files changed, 864 insertions, 414 deletions
diff --git a/Software/DB/PPC/Tango.mdf b/Software/DB/PPC/Tango.mdf
index 16f339565..1fcb444d4 100644
--- a/Software/DB/PPC/Tango.mdf
+++ b/Software/DB/PPC/Tango.mdf
Binary files differ
diff --git a/Software/DB/PPC/Tango_log.ldf b/Software/DB/PPC/Tango_log.ldf
index 582cd1d32..3aef11f9e 100644
--- a/Software/DB/PPC/Tango_log.ldf
+++ b/Software/DB/PPC/Tango_log.ldf
Binary files differ
diff --git a/Software/PMR/Messages/ColorLab/OutputCoordinates.proto b/Software/PMR/Messages/ColorLab/OutputCoordinates.proto
index 3a79deb15..a794d82cb 100644
--- a/Software/PMR/Messages/ColorLab/OutputCoordinates.proto
+++ b/Software/PMR/Messages/ColorLab/OutputCoordinates.proto
@@ -10,6 +10,9 @@ message OutputCoordinates
int32 Red = 1;
int32 Green = 2;
int32 Blue = 3;
+ double L = 6;
+ double A = 7;
+ double B = 8;
repeated OutputLiquid OutputLiquids = 4;
diff --git a/Software/PMR/Messages/Diagnostics/EventType.proto b/Software/PMR/Messages/Diagnostics/EventType.proto
index 5de916db1..ac729ef21 100644
--- a/Software/PMR/Messages/Diagnostics/EventType.proto
+++ b/Software/PMR/Messages/Diagnostics/EventType.proto
@@ -49,6 +49,18 @@ enum EventType
//Job status message has been received from embedded device (Group = Application, Category = Info)
JOB_STATUS = 1009;
+ //A job has been been started (Group = Application, Category = Info)
+ JOB_STARTED = 1010;
+
+ //A job has been been aborted (Group = Application, Category = Info)
+ JOB_ABORTED = 1011;
+
+ //A job has failed (Group = Application, Category = Error)
+ JOB_FAILED = 1012;
+
+ //Job completed successfully (Group = Application, Category = Info)
+ JOB_COMPLETED = 1013;
+
//Could not complete power-up (Group = GeneralHardware, Category = Critical)
POWER_UP_BIT_FAILURE = 2000;
@@ -94,10 +106,10 @@ enum EventType
//Hardware configuration has failed (Group = GeneralHardware, Category = Error)
MACHINE_STATE_HW_CONFIG_FAILED = 2014;
- //MACHINE_STATE_INITIAL_BLOWER_FAILED (Group = GeneralHardware, Category = Error)
+ // (Group = GeneralHardware, Category = Error)
MACHINE_STATE_INITIAL_BLOWER_FAILED = 2015;
- //UNSPECIFIED ERROR (Group = GeneralHardware, Category = Error)
+ //Unknown error occurred (Group = GeneralHardware, Category = Error)
UNSPECIFIED = 2016;
//Thread break (Group = ThreadFeedingSystem, Category = Error)
@@ -274,13 +286,13 @@ enum EventType
//The temperature in dryer zone 2 is too high (Group = Dryer, Category = Critical)
DRYER_ZONE_2_OVERTEMPERATURE = 4006;
- //The temperature in dryer zone 1 is too low (Group = Dryer, Category = Critical)
+ //The temperature in dryer zone 1 is too low (Group = Dryer, Category = Warning)
DRYER_ZONE_1_UNDERTEMPERATURE_A = 4007;
- //The temperature in dryer zone 1 is too low (Group = Dryer, Category = Critical)
+ //The temperature in dryer zone 1 is too low (Group = Dryer, Category = Error)
DRYER_ZONE_1_UNDERTEMPERATURE_B = 4008;
- //The temperature in dryer zone 2 is too low (Group = Dryer, Category = Critical)
+ //The temperature in dryer zone 2 is too low (Group = Dryer, Category = Error)
DRYER_ZONE_2_UNDERTEMPERATURE_B = 4009;
//Thermal cut-off (Group = Dryer, Category = Safety)
@@ -316,7 +328,7 @@ enum EventType
//The dryer lid motor voltage is too low (Group = Dryer, Category = Critical)
DRYER_LID_MOTOR_UNDERVOLTAGE = 4020;
- //The temperature in dryer zone 2 is too low (Group = Dryer, Category = Critical)
+ //The temperature in dryer zone 2 is too low (Group = Dryer, Category = Warning)
DRYER_ZONE_2_UNDERTEMPERATURE_A = 4021;
//The temperature in dyeing head zone is too high (Group = DyeingHead, Category = Critical)
@@ -337,40 +349,40 @@ enum EventType
//The temperature in dyeing head zone is too high (Group = DyeingHead, Category = Critical)
DYEING_HEAD_ZONE_6_OVERTEMPERATURE = 5005;
- //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Warning)
DYEING_HEAD_ZONE_1_UNDERTEMPERATURE_A = 5006;
- //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Warning)
DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_A = 5007;
- //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Warning)
DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_A = 5008;
- //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Warning)
DYEING_HEAD_ZONE_4_UNDERTEMPERATURE_A = 5009;
- //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Warning)
DYEING_HEAD_ZONE_5_UNDERTEMPERATURE_A = 5010;
- //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Warning)
DYEING_HEAD_ZONE_6_UNDERTEMPERATURE_A = 5011;
- //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Error)
DYEING_HEAD_ZONE_1_UNDERTEMPERATURE_B = 5012;
- //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Error)
DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_B = 5013;
- //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Error)
DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_B = 5014;
- //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Error)
DYEING_HEAD_ZONE_4_UNDERTEMPERATURE_B = 5015;
- //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Error)
DYEING_HEAD_ZONE_5_UNDERTEMPERATURE_B = 5016;
- //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ //The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Error)
DYEING_HEAD_ZONE_6_UNDERTEMPERATURE_B = 5017;
//Dyeing head zone current is out of range (Group = DyeingHead, Category = Warning)
@@ -451,10 +463,10 @@ enum EventType
//The temperature in the mixer is too high (Group = Mixer, Category = Critical)
MIXER_OVERTEMPERATURE = 6000;
- //The temperature in the mixer is too low (Group = Mixer, Category = Critical)
+ //The temperature in the mixer is too low (Group = Mixer, Category = Warning)
MIXER_UNDERTEMPERATURE_A = 6001;
- //The temperature in the mixer is too low (Group = Mixer, Category = Critical)
+ //The temperature in the mixer is too low (Group = Mixer, Category = Error)
MIXER_UNDERTEMPERATURE_B = 6002;
//Thermal cutoff (Group = Mixer, Category = Safety)
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml
index 7a2aba71e..b8c786b51 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml
@@ -402,41 +402,69 @@
</Grid>
</DockPanel>
- <StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Height="60">
- <DockPanel Width="50" HorizontalAlignment="Left" Margin="0 0 5 0">
- <TextBlock DockPanel.Dock="Top" FontSize="9" TextAlignment="Center">R</TextBlock>
+ <StackPanel HorizontalAlignment="Right">
+ <StackPanel Orientation="Horizontal" Height="60">
+ <DockPanel Width="50" HorizontalAlignment="Left" Margin="0 0 5 0">
+ <TextBlock DockPanel.Dock="Top" FontSize="9" TextAlignment="Center">R</TextBlock>
- <Grid>
- <Rectangle Margin="0 5 0 0" Stroke="#202020">
- <Rectangle.Fill>
- <SolidColorBrush Color="Red" Opacity="{Binding TargetColor.Red,Converter={StaticResource ColorComponentToOpacityConverter}}" />
- </Rectangle.Fill>
- </Rectangle>
- <TextBlock Text="{Binding TargetColor.Red}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black"></TextBlock>
- </Grid>
- </DockPanel>
- <DockPanel Width="50" HorizontalAlignment="Left" Margin="0 0 5 0">
- <TextBlock DockPanel.Dock="Top" FontSize="9" TextAlignment="Center">G</TextBlock>
- <Grid>
- <Rectangle Margin="0 5 0 0" Stroke="#202020">
- <Rectangle.Fill>
- <SolidColorBrush Color="Green" Opacity="{Binding TargetColor.Green,Converter={StaticResource ColorComponentToOpacityConverter}}" />
- </Rectangle.Fill>
- </Rectangle>
- <TextBlock Text="{Binding TargetColor.Green}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black"></TextBlock>
- </Grid>
- </DockPanel>
- <DockPanel Width="50" HorizontalAlignment="Left">
- <TextBlock DockPanel.Dock="Top" FontSize="9" TextAlignment="Center">B</TextBlock>
- <Grid>
- <Rectangle Margin="0 5 0 0" Stroke="#202020">
- <Rectangle.Fill>
- <SolidColorBrush Color="Blue" Opacity="{Binding TargetColor.Blue,Converter={StaticResource ColorComponentToOpacityConverter}}" />
- </Rectangle.Fill>
- </Rectangle>
- <TextBlock Text="{Binding TargetColor.Blue}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black"></TextBlock>
- </Grid>
- </DockPanel>
+ <Grid>
+ <Rectangle Margin="0 5 0 0" Stroke="#202020">
+ <Rectangle.Fill>
+ <SolidColorBrush Color="Red" Opacity="{Binding TargetColor.Red,Converter={StaticResource ColorComponentToOpacityConverter}}" />
+ </Rectangle.Fill>
+ </Rectangle>
+ <TextBlock Text="{Binding TargetColor.Red}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black"></TextBlock>
+ </Grid>
+ </DockPanel>
+ <DockPanel Width="50" HorizontalAlignment="Left" Margin="0 0 5 0">
+ <TextBlock DockPanel.Dock="Top" FontSize="9" TextAlignment="Center">G</TextBlock>
+ <Grid>
+ <Rectangle Margin="0 5 0 0" Stroke="#202020">
+ <Rectangle.Fill>
+ <SolidColorBrush Color="Green" Opacity="{Binding TargetColor.Green,Converter={StaticResource ColorComponentToOpacityConverter}}" />
+ </Rectangle.Fill>
+ </Rectangle>
+ <TextBlock Text="{Binding TargetColor.Green}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black"></TextBlock>
+ </Grid>
+ </DockPanel>
+ <DockPanel Width="50" HorizontalAlignment="Left">
+ <TextBlock DockPanel.Dock="Top" FontSize="9" TextAlignment="Center">B</TextBlock>
+ <Grid>
+ <Rectangle Margin="0 5 0 0" Stroke="#202020">
+ <Rectangle.Fill>
+ <SolidColorBrush Color="Blue" Opacity="{Binding TargetColor.Blue,Converter={StaticResource ColorComponentToOpacityConverter}}" />
+ </Rectangle.Fill>
+ </Rectangle>
+ <TextBlock Text="{Binding TargetColor.Blue}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black"></TextBlock>
+ </Grid>
+ </DockPanel>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Height="40" Margin="0 5 0 0">
+ <DockPanel Width="50" HorizontalAlignment="Left" Margin="0 0 5 0">
+ <TextBlock DockPanel.Dock="Top" FontSize="9" TextAlignment="Center">L</TextBlock>
+
+ <Grid>
+ <Rectangle Margin="0 5 0 0" Stroke="#202020"/>
+ <TextBlock Text="{Binding TargetColor.L,StringFormat='0.00'}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black"></TextBlock>
+ </Grid>
+ </DockPanel>
+ <DockPanel Width="50" HorizontalAlignment="Left" Margin="0 0 5 0">
+ <TextBlock DockPanel.Dock="Top" FontSize="9" TextAlignment="Center">A</TextBlock>
+
+ <Grid>
+ <Rectangle Margin="0 5 0 0" Stroke="#202020"/>
+ <TextBlock Text="{Binding TargetColor.A,StringFormat='0.00'}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black"></TextBlock>
+ </Grid>
+ </DockPanel>
+ <DockPanel Width="50" HorizontalAlignment="Left">
+ <TextBlock DockPanel.Dock="Top" FontSize="9" TextAlignment="Center">B</TextBlock>
+
+ <Grid>
+ <Rectangle Margin="0 5 0 0" Stroke="#202020"/>
+ <TextBlock Text="{Binding TargetColor.B,StringFormat='0.00'}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black"></TextBlock>
+ </Grid>
+ </DockPanel>
+ </StackPanel>
</StackPanel>
</Grid>
</Border>
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp b/Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp
index 1ede4a356..b64ece88a 100644
--- a/Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/ColorConverter.cpp
@@ -920,20 +920,20 @@ void Tango::ColorLib::ColorConverter::ConvertColorToLinearInks(ConversionInput*
}
break;
}
- case(COLOR_SPACE__PANTON):
- {
- int32_t inData;
- if (conversionInput->inputcoordinates->has_pantoncode)
- inData = conversionInput->inputcoordinates->pantoncode;
- else
- {
- //mismatch between color space and data
- throw std::exception("Mismatch between color space and data");
- return;
- }
- break;
- //missing calculation method and pantone table, either in terms of RGB or CMY or Lab
- }
+ //case(COLOR_SPACE__PANTON):
+ //{
+ // int32_t inData;
+ // if (conversionInput->inputcoordinates->has_pantoncode)
+ // inData = conversionInput->inputcoordinates->pantoncode;
+ // else
+ // {
+ // //mismatch between color space and data
+ // throw std::exception("Mismatch between color space and data");
+ // return;
+ // }
+ // break;
+ // //missing calculation method and pantone table, either in terms of RGB or CMY or Lab
+ //}
default:
{
@@ -1962,20 +1962,20 @@ size_t Tango::ColorLib::ColorConverter::P_IsInGamut(uint8_t * input_buffer, size
// just convert Lab for rgb display
InGamut = true;
}
- case(COLOR_SPACE__PANTON):
- {
- int32_t inData;
- if (conversionInput->inputcoordinates->has_pantoncode)
- inData = conversionInput->inputcoordinates->pantoncode;
- else
- {
- //mismatch between color space and data
- throw std::exception("Mismatch between color space and data");
- return(0);
- }
- break;
- //missing calclulation method and pantone table, either in terms of RGB or CMY or Lab
- }
+ //case(COLOR_SPACE__PANTON):
+ //{
+ // int32_t inData;
+ // if (conversionInput->inputcoordinates->has_pantoncode)
+ // inData = conversionInput->inputcoordinates->pantoncode;
+ // else
+ // {
+ // //mismatch between color space and data
+ // throw std::exception("Mismatch between color space and data");
+ // return(0);
+ // }
+ // break;
+ // //missing calclulation method and pantone table, either in terms of RGB or CMY or Lab
+ //}
default:
{
throw std::exception(" Unsupported Color Space");
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/Exports.cpp b/Software/Visual_Studio/Native/Tango.ColorLib/Exports.cpp
index 9a9a18b38..61410fdc4 100644
--- a/Software/Visual_Studio/Native/Tango.ColorLib/Exports.cpp
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/Exports.cpp
@@ -18,6 +18,6 @@ extern "C" EXPORT_API size_t __cdecl Convert(uint8_t* input_buffer, size_t input
extern "C" EXPORT_API size_t __cdecl ConvertGradient(uint8_t* input_buffer, size_t input_buffer_size, uint8_t*& output_buffer)
{
ColorConverter converter;
- return converter.ConvertGradient(input_buffer, input_buffer_size, output_buffer);
+ return converter.ConvertGradient(input_buffer, input_buffer_size, output_buffer);
}
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ColorSpace.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ColorSpace.pb-c.c
index b67d99784..78cae4462 100644
--- a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ColorSpace.pb-c.c
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ColorSpace.pb-c.c
@@ -13,7 +13,7 @@ static const ProtobufCEnumValue color_space__enum_values_by_number[6] =
{ "RGB", "COLOR_SPACE__RGB", 1 },
{ "CMYK", "COLOR_SPACE__CMYK", 2 },
{ "LAB", "COLOR_SPACE__LAB", 3 },
- { "PANTON", "COLOR_SPACE__PANTON", 4 },
+ { "Coats", "COLOR_SPACE__Coats", 4 },
{ "Twine", "COLOR_SPACE__Twine", 5 },
};
static const ProtobufCIntRange color_space__value_ranges[] = {
@@ -22,8 +22,8 @@ static const ProtobufCIntRange color_space__value_ranges[] = {
static const ProtobufCEnumValueIndex color_space__enum_values_by_name[6] =
{
{ "CMYK", 2 },
+ { "Coats", 4 },
{ "LAB", 3 },
- { "PANTON", 4 },
{ "RGB", 1 },
{ "Twine", 5 },
{ "Volume", 0 },
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ColorSpace.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ColorSpace.pb-c.h
index 07226817d..17bfb420f 100644
--- a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ColorSpace.pb-c.h
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/ColorSpace.pb-c.h
@@ -24,7 +24,7 @@ typedef enum _ColorSpace {
COLOR_SPACE__RGB = 1,
COLOR_SPACE__CMYK = 2,
COLOR_SPACE__LAB = 3,
- COLOR_SPACE__PANTON = 4,
+ COLOR_SPACE__Coats = 4,
COLOR_SPACE__Twine = 5
PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(COLOR_SPACE)
} ColorSpace;
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/LiquidType.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/LiquidType.pb-c.c
index d1bc8c432..e4baae5c6 100644
--- a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/LiquidType.pb-c.c
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/LiquidType.pb-c.c
@@ -15,18 +15,18 @@ static const ProtobufCEnumValue liquid_type__enum_values_by_number[7] =
{ "Black", "LIQUID_TYPE__Black", 3 },
{ "TransparentInk", "LIQUID_TYPE__TransparentInk", 4 },
{ "Lubricant", "LIQUID_TYPE__Lubricant", 5 },
- { "Red", "LIQUID_TYPE__Red", 7 },
+ { "Cleaner", "LIQUID_TYPE__Cleaner", 6 },
};
static const ProtobufCIntRange liquid_type__value_ranges[] = {
-{0, 0},{7, 6},{0, 7}
+{0, 0},{0, 7}
};
static const ProtobufCEnumValueIndex liquid_type__enum_values_by_name[7] =
{
{ "Black", 3 },
+ { "Cleaner", 6 },
{ "Cyan", 0 },
{ "Lubricant", 5 },
{ "Magenta", 1 },
- { "Red", 6 },
{ "TransparentInk", 4 },
{ "Yellow", 2 },
};
@@ -41,7 +41,7 @@ const ProtobufCEnumDescriptor liquid_type__descriptor =
liquid_type__enum_values_by_number,
7,
liquid_type__enum_values_by_name,
- 2,
+ 1,
liquid_type__value_ranges,
NULL,NULL,NULL,NULL /* reserved[1234] */
};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/LiquidType.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/LiquidType.pb-c.h
index 19f99411c..da9ec1c60 100644
--- a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/LiquidType.pb-c.h
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/LiquidType.pb-c.h
@@ -26,7 +26,7 @@ typedef enum _LiquidType {
LIQUID_TYPE__Black = 3,
LIQUID_TYPE__TransparentInk = 4,
LIQUID_TYPE__Lubricant = 5,
- LIQUID_TYPE__Red = 7
+ LIQUID_TYPE__Cleaner = 6
PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(LIQUID_TYPE)
} LiquidType;
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/OutputCoordinates.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/OutputCoordinates.pb-c.c
index c41585415..85aeb6ee5 100644
--- a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/OutputCoordinates.pb-c.c
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/OutputCoordinates.pb-c.c
@@ -52,7 +52,7 @@ void output_coordinates__free_unpacked
assert(message->base.descriptor == &output_coordinates__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
-static const ProtobufCFieldDescriptor output_coordinates__field_descriptors[5] =
+static const ProtobufCFieldDescriptor output_coordinates__field_descriptors[8] =
{
{
"Red",
@@ -114,10 +114,49 @@ static const ProtobufCFieldDescriptor output_coordinates__field_descriptors[5] =
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
+ {
+ "L",
+ 6,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(OutputCoordinates, has_l),
+ offsetof(OutputCoordinates, l),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "A",
+ 7,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(OutputCoordinates, has_a),
+ offsetof(OutputCoordinates, a),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "B",
+ 8,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(OutputCoordinates, has_b),
+ offsetof(OutputCoordinates, b),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned output_coordinates__field_indices_by_name[] = {
+ 6, /* field[6] = A */
+ 7, /* field[7] = B */
2, /* field[2] = Blue */
1, /* field[1] = Green */
+ 5, /* field[5] = L */
3, /* field[3] = OutputLiquids */
4, /* field[4] = ProcessParametersTableIndex */
0, /* field[0] = Red */
@@ -125,7 +164,7 @@ static const unsigned output_coordinates__field_indices_by_name[] = {
static const ProtobufCIntRange output_coordinates__number_ranges[1 + 1] =
{
{ 1, 0 },
- { 0, 5 }
+ { 0, 8 }
};
const ProtobufCMessageDescriptor output_coordinates__descriptor =
{
@@ -135,7 +174,7 @@ const ProtobufCMessageDescriptor output_coordinates__descriptor =
"OutputCoordinates",
"",
sizeof(OutputCoordinates),
- 5,
+ 8,
output_coordinates__field_descriptors,
output_coordinates__field_indices_by_name,
1, output_coordinates__number_ranges,
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/OutputCoordinates.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/OutputCoordinates.pb-c.h
index 410f0660a..749ba3e7b 100644
--- a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/OutputCoordinates.pb-c.h
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/ColorLab/OutputCoordinates.pb-c.h
@@ -33,6 +33,12 @@ struct _OutputCoordinates
int32_t green;
protobuf_c_boolean has_blue;
int32_t blue;
+ protobuf_c_boolean has_l;
+ double l;
+ protobuf_c_boolean has_a;
+ double a;
+ protobuf_c_boolean has_b;
+ double b;
size_t n_outputliquids;
OutputLiquid **outputliquids;
protobuf_c_boolean has_processparameterstableindex;
@@ -40,7 +46,7 @@ struct _OutputCoordinates
};
#define OUTPUT_COORDINATES__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&output_coordinates__descriptor) \
- , 0, 0, 0, 0, 0, 0, 0,NULL, 0, 0 }
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NULL, 0, 0 }
/* OutputCoordinates methods */
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Converters/MachineEventToViewConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Converters/MachineEventToViewConverter.cs
index b0d00bf9f..47c9e0ddf 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Converters/MachineEventToViewConverter.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Converters/MachineEventToViewConverter.cs
@@ -7,30 +7,40 @@ using System.Threading.Tasks;
using System.Windows;
using System.Windows.Data;
using Tango.BL.Entities;
+using Tango.BL.Enumerations;
+using Tango.PPC.Events.EventsViews;
namespace Tango.PPC.Events.Converters
{
public class MachineEventToViewConverter : IValueConverter
{
- private static List<FrameworkElement> _views = new List<FrameworkElement>();
+ private static Dictionary<EventTypes, Type> _eventViews = new Dictionary<EventTypes, Type>();
+
+ static MachineEventToViewConverter()
+ {
+ _eventViews.Add(EventTypes.JOB_STARTED, typeof(JobEventView));
+ _eventViews.Add(EventTypes.JOB_ABORTED, typeof(JobEventView));
+ _eventViews.Add(EventTypes.JOB_COMPLETED, typeof(JobEventView));
+ _eventViews.Add(EventTypes.JOB_FAILED, typeof(JobEventView));
+ }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
MachinesEvent ev = value as MachinesEvent;
+ FrameworkElement view = null;
if (ev != null)
{
- FrameworkElement view = _views.SingleOrDefault(x => x.GetType() == typeof(EventsViews.GeneralView));
-
- if (view != null)
+ if (_eventViews.ContainsKey(ev.Type))
{
- return view;
+ view = Activator.CreateInstance(_eventViews[ev.Type]) as FrameworkElement;
}
else
{
- view = Activator.CreateInstance<EventsViews.GeneralView>();
- return view;
+ view = Activator.CreateInstance<GeneralView>();
}
+
+ return view;
}
else
{
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/JobEventView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/JobEventView.xaml
new file mode 100644
index 000000000..d283b08d3
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/JobEventView.xaml
@@ -0,0 +1,27 @@
+<UserControl x:Class="Tango.PPC.Events.EventsViews.JobEventView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:entities="clr-namespace:Tango.BL.Entities;assembly=Tango.BL"
+ xmlns:local="clr-namespace:Tango.PPC.Events.EventsViews"
+ mc:Ignorable="d"
+ d:DesignHeight="220" d:DesignWidth="750" d:DataContext="{d:DesignInstance Type=entities:MachinesEvent, IsDesignTimeCreatable=False}">
+ <Grid Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <DockPanel>
+ <Image Stretch="None" Margin="20" DockPanel.Dock="Right" Source="../Images/machine_small.png" RenderOptions.BitmapScalingMode="Fant" />
+ <DockPanel Margin="35 20 20 20">
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" FontWeight="SemiBold" DockPanel.Dock="Top" Text="{Binding EventType.Title,FallbackValue='Unknown Event'}"></TextBlock>
+
+ <StackPanel Margin="0 30 0 0">
+ <TextBlock TextWrapping="Wrap" FontWeight="SemiBold" Text="{Binding EventType.Description,FallbackValue='No Description'}"></TextBlock>
+ <Rectangle Margin="0 5 0 10" StrokeThickness="2" Stroke="{StaticResource TangoDividerBrush}" />
+
+ <TextBlock Text="{Binding Description}" TextWrapping="Wrap">
+
+ </TextBlock>
+ </StackPanel>
+ </DockPanel>
+ </DockPanel>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/JobEventView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/JobEventView.xaml.cs
new file mode 100644
index 000000000..89faa3a85
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/JobEventView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.PPC.Events.EventsViews
+{
+ /// <summary>
+ /// Interaction logic for JobEventView.xaml
+ /// </summary>
+ public partial class JobEventView : UserControl
+ {
+ public JobEventView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Tango.PPC.Events.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Tango.PPC.Events.csproj
index e446e3812..e2133e585 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Tango.PPC.Events.csproj
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Tango.PPC.Events.csproj
@@ -72,6 +72,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="EventsViews\JobEventView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Resources\Styles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -91,6 +95,9 @@
<Compile Include="EventsViews\GeneralView.xaml.cs">
<DependentUpon>GeneralView.xaml</DependentUpon>
</Compile>
+ <Compile Include="EventsViews\JobEventView.xaml.cs">
+ <DependentUpon>JobEventView.xaml</DependentUpon>
+ </Compile>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
@@ -173,7 +180,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
+ <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/ViewModels/MainViewVM.cs
index 997ea70d5..d2a730cd7 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/ViewModels/MainViewVM.cs
@@ -97,7 +97,7 @@ namespace Tango.PPC.Events.ViewModels
using (var db = ObservablesContext.CreateDefault())
{
var last_week = DateTime.UtcNow.AddDays(-7);
- HistoryEvents = (await db.MachinesEvents.Where(x => x.MachineGuid == MachineProvider.Machine.Guid && x.DateTime > last_week).Take(100).Include(x => x.EventType).Where(x => (EventTypeNotificationTimes)x.EventType.EventNotificationTime != EventTypeNotificationTimes.None).ToListAsync()).OrderByDescending(x => x.DateTime).ToObservableCollection();
+ HistoryEvents = (await db.MachinesEvents.Where(x => x.MachineGuid == MachineProvider.Machine.Guid && x.DateTime > last_week).Take(100).Include(x => x.EventType).Where(x => (EventTypeNotificationTimes)x.EventType.EventNotificationTime != EventTypeNotificationTimes.None || x.EventType.Code == (int)EventTypes.JOB_FAILED || x.EventType.Code == (int)EventTypes.JOB_STARTED || x.EventType.Code == (int)EventTypes.JOB_COMPLETED || x.EventType.Code == (int)EventTypes.JOB_ABORTED).ToListAsync()).OrderByDescending(x => x.DateTime).ToObservableCollection();
}
MachineProvider.MachineOperator.StatusChanged += MachineOperator_StatusChanged;
@@ -160,6 +160,10 @@ namespace Tango.PPC.Events.ViewModels
_notifications.Add(new KeyValuePair<EventTypes, NotificationItem>(ev.EventType.Type, notificationItem));
}
+ else if (ev.IsJobProgressEvent())
+ {
+ HistoryEvents.Insert(0, ev);
+ }
});
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Views/MainView.xaml
index f263e4b7b..af42a5576 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Views/MainView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Views/MainView.xaml
@@ -135,7 +135,7 @@
</Style.Triggers>
</Style>
</Grid.Style>
- <touch:LightTouchDataGrid x:Name="gridEventsHistory" SelectionChanged="gridEventsHistory_SelectionChanged" RenderOptions.EdgeMode="Unspecified" SelectionMode="Single" EnableDragAndDrop="False" Style="{StaticResource TangoEventsGridHistory}" ItemsSource="{Binding HistoryEvents}" SelectedItem="{Binding SelectedHistoryEvent,Mode=TwoWay}" Margin="10">
+ <touch:LightTouchDataGrid x:Name="gridEventsHistory" SelectionChanged="gridEventsHistory_SelectionChanged" RenderOptions.EdgeMode="Unspecified" SelectionMode="Single" EnableDragAndDrop="False" Style="{StaticResource TangoEventsGrid}" ItemsSource="{Binding HistoryEvents}" SelectedItem="{Binding SelectedHistoryEvent,Mode=TwoWay}" Margin="10">
<touch:LightTouchDataGrid.Columns>
<touch:LightTouchDataGridColumn Width="120" Header="Severity" HorizontalContentAlignment="Center" SortMember="Category">
<touch:LightTouchDataGridColumn.CellTemplate>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Dialogs/BasicColorCorrectionView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Dialogs/BasicColorCorrectionView.xaml
index 9583d0738..4fcccc9e5 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Dialogs/BasicColorCorrectionView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Dialogs/BasicColorCorrectionView.xaml
@@ -27,10 +27,35 @@
<Image Source="../Images/JobView/error.png" Stretch="None" />
<Ellipse Width="60" Height="60" Margin="20 0 0 0" Fill="{Binding InvalidBrushStop.Brush}" />
<TextBlock VerticalAlignment="Center" Foreground="{StaticResource TangoGrayTextBrush}" Margin="20 0 0 0">
+ <TextBlock.Style>
+ <Style TargetType="TextBlock">
+ <Setter Property="Visibility" Value="Collapsed"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding InvalidBrushStop.BrushColorSpace}" Value="RGB">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TextBlock.Style>
<Run Text="{Binding InvalidBrushStop.Red}"></Run><Run>,</Run>
<Run Text="{Binding InvalidBrushStop.Green}"></Run><Run>,</Run>
<Run Text="{Binding InvalidBrushStop.Blue}"></Run>
</TextBlock>
+ <TextBlock VerticalAlignment="Center" Foreground="{StaticResource TangoGrayTextBrush}" Margin="20 0 0 0">
+ <TextBlock.Style>
+ <Style TargetType="TextBlock">
+ <Setter Property="Visibility" Value="Collapsed"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding InvalidBrushStop.BrushColorSpace}" Value="LAB">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TextBlock.Style>
+ <Run Text="{Binding InvalidBrushStop.L}"></Run><Run>,</Run>
+ <Run Text="{Binding InvalidBrushStop.A}"></Run><Run>,</Run>
+ <Run Text="{Binding InvalidBrushStop.B}"></Run>
+ </TextBlock>
</StackPanel>
<DockPanel Grid.Row="2" Margin="0 0 0 0">
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobSummeryViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobSummeryViewVM.cs
index 1a980fc4a..b413758c8 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobSummeryViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobSummeryViewVM.cs
@@ -89,7 +89,7 @@ namespace Tango.PPC.Jobs.ViewModels
catch (Exception ex)
{
LogManager.Log(ex, "Could not start the current job.");
- await NotificationProvider.ShowError($"Cannot start job.\n{ex.Message}.");
+ await NotificationProvider.ShowError($"{ex.Message}");
}
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs
index 3a777e142..0d1d2f3cb 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs
@@ -407,7 +407,7 @@ namespace Tango.PPC.Jobs.ViewModels
_check_gamut_thread = new Thread(CheckGamutThreadMethod);
_check_gamut_thread.IsBackground = true;
- StartSampleDyeCommand = new RelayCommand(StartSampleDye);
+ StartSampleDyeCommand = new RelayCommand(StartSampleDye, CanStartJob);
DyeCommand = new RelayCommand(StartJob, CanStartJob);
ApproveSampleCommand = new RelayCommand(ApproveSampleDye);
@@ -415,7 +415,7 @@ namespace Tango.PPC.Jobs.ViewModels
AnotherSampleCommand = new RelayCommand(DyeAnotherSample);
InvokeFineTuningPaletteCommand = new RelayCommand<FineTuneItem>(InvokeFineTuningPalette);
ResetFineTuningCommand = new RelayCommand(ResetFineTuning);
- StartFineTuningCommand = new RelayCommand(StartFineTuning, () => FineTuneItems.Any(x => x.IsSelected));
+ StartFineTuningCommand = new RelayCommand(StartFineTuning, () => FineTuneItems.Any(x => x.IsSelected) && CanStartJob());
RepeatFineTuningCommand = new RelayCommand(RepeatFineTuning);
ApproveFineTuningCommand = new RelayCommand(ApproveFineTuning);
OpenTwineCatalogCommand = new RelayCommand<BrushStop>(OpenTwineCatalog);
@@ -463,6 +463,8 @@ namespace Tango.PPC.Jobs.ViewModels
Job.RmlChanged -= OnRmlChanged;
Job.RmlChanged += OnRmlChanged;
+ Job.NameChanged -= Job_NameChanged;
+ Job.NameChanged += Job_NameChanged;
Job.ValidateOnPropertyChanged = true;
@@ -490,6 +492,7 @@ namespace Tango.PPC.Jobs.ViewModels
SegmentsCollectionView = CollectionViewSource.GetDefaultView(Job.Segments);
SegmentsCollectionView.SortDescriptions.Add(new SortDescription(nameof(Segment.SegmentIndex), ListSortDirection.Ascending));
+ ResetFineTuning();
_job_to_load = null;
}
@@ -517,7 +520,11 @@ namespace Tango.PPC.Jobs.ViewModels
View.DisplayFineTuning();
}
+ ValidateBrushStops();
+
DyeCommand.RaiseCanExecuteChanged();
+ StartSampleDyeCommand.RaiseCanExecuteChanged();
+ StartFineTuningCommand.RaiseCanExecuteChanged();
}
catch (Exception ex)
{
@@ -534,6 +541,11 @@ namespace Tango.PPC.Jobs.ViewModels
}
}
+ private void Job_NameChanged(object sender, string e)
+ {
+ DyeCommand.RaiseCanExecuteChanged();
+ }
+
/// <summary>
/// Saves the job.
/// </summary>
@@ -564,12 +576,17 @@ namespace Tango.PPC.Jobs.ViewModels
Job.LastUpdated = DateTime.UtcNow;
Job.JobStatus = BL.Enumerations.JobStatuses.Draft;
await _db.SaveChangesAsync();
- RaiseMessage(new JobSavedMessage() { Job = Job });
if (displayNotification)
{
await NotificationProvider.ShowInfo(String.Format("Job '{0}' saved successfully.", Job.Name));
}
+
+ RaiseMessage(new JobSavedMessage() { Job = Job });
+ }
+ else
+ {
+ await NotificationProvider.ShowError($"Error saving job. {Job.ValidationErrors.FirstOrDefault()}");
}
}
catch (Exception ex)
@@ -617,7 +634,7 @@ namespace Tango.PPC.Jobs.ViewModels
catch (Exception ex)
{
LogManager.Log(ex, "Could not start the current job.");
- await NotificationProvider.ShowError($"Cannot start job.\n{ex.Message}.");
+ await NotificationProvider.ShowError($"{ex.Message}.");
}
}
@@ -627,7 +644,7 @@ namespace Tango.PPC.Jobs.ViewModels
private bool CanStartJob()
{
return
- Job != null &&
+ Job != null && Job.Validate(_db) &&
!Job.Segments.SelectMany(x => x.BrushStops).ToList().Exists(x => x.IsOutOfGamut);
}
@@ -653,6 +670,8 @@ namespace Tango.PPC.Jobs.ViewModels
var replacement = CoatsCatalogItems.SingleOrDefault(x => x.Name == stop.ColorCatalog.Name);
stop.ColorCatalog = replacement;
}
+
+ ResetFineTuning();
}
#endregion
@@ -748,6 +767,8 @@ namespace Tango.PPC.Jobs.ViewModels
_db.Segments.Remove(segment);
ArrangeSegmentsIndices();
+
+ DyeCommand.RaiseCanExecuteChanged();
}
}
catch (Exception ex)
@@ -815,8 +836,9 @@ namespace Tango.PPC.Jobs.ViewModels
if (brushStop.Segment.BrushStops.Count > 2)
{
LogManager.Log($"removing brush stop {brushStop.StopIndex} from segment {brushStop.Segment.SegmentIndex}.");
+ var segment = brushStop.Segment;
_db.BrushStops.Remove(brushStop);
- ArrangeBrushStopsIndices(brushStop.Segment);
+ ArrangeBrushStopsIndices(segment);
}
else
{
@@ -946,6 +968,11 @@ namespace Tango.PPC.Jobs.ViewModels
}
}
+ private bool ValidateBrushStops()
+ {
+ return Job.Segments.SelectMany(x => x.BrushStops).ToList().All(x => x.Validate(_db));
+ }
+
#endregion
#region Job Selection Message
@@ -979,7 +1006,7 @@ namespace Tango.PPC.Jobs.ViewModels
catch (Exception ex)
{
LogManager.Log(ex, $"Error executing sample dye for job {Job.Name}.");
- await NotificationProvider.ShowError("An error occurred while trying to execute the sample dye.");
+ await NotificationProvider.ShowError(ex.Message);
}
}
@@ -1119,7 +1146,7 @@ namespace Tango.PPC.Jobs.ViewModels
catch (Exception ex)
{
LogManager.Log(ex, "Error executing fine tuning job.");
- await NotificationProvider.ShowError("An error occurred while trying to start the fine tuning job.");
+ await NotificationProvider.ShowError(ex.Message);
}
}
@@ -1177,7 +1204,7 @@ namespace Tango.PPC.Jobs.ViewModels
{
Thread.Sleep(500);
- if (Job != null && IsVisible && (Job.ColorSpace != null && (Job.ColorSpace.Code == BL.Enumerations.ColorSpaces.RGB.ToInt32() || Job.ColorSpace.Code == BL.Enumerations.ColorSpaces.LAB.ToInt32())))
+ if (Job != null && Job.Rml.Ccts.Count > 0 && IsVisible && (Job.ColorSpace != null && (Job.ColorSpace.Code == BL.Enumerations.ColorSpaces.RGB.ToInt32() || Job.ColorSpace.Code == BL.Enumerations.ColorSpaces.LAB.ToInt32())))
{
var brushStops = Job.Segments.SelectMany(x => x.BrushStops).Where(x => !x.Corrected && !x.OutOfGamutChecked).ToList();
@@ -1199,6 +1226,8 @@ namespace Tango.PPC.Jobs.ViewModels
InvokeUI(() =>
{
DyeCommand.RaiseCanExecuteChanged();
+ StartSampleDyeCommand.RaiseCanExecuteChanged();
+ StartFineTuningCommand.RaiseCanExecuteChanged();
});
}
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobsView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobsView.xaml.cs
index 2653179e1..23785881d 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobsView.xaml.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobsView.xaml.cs
@@ -28,23 +28,23 @@ namespace Tango.PPC.Jobs.Views
TangoIOC.Default.Register<IJobsView>(this);
}
- private void TouchNavigationLinks_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ private async void TouchNavigationLinks_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
- //if (dataGridJobs != null)
- //{
- // await Task.Delay(200);
+ if (dataGridJobs != null)
+ {
+ await Task.Delay(200);
- // if (navigationLinks.SelectedIndex == 0)
- // {
- // dataGridJobs.LayoutRows(false);
- // dataGridJobs.ScrollViewer.ScrollToTop();
- // }
- // else
- // {
- // dataGridJobsHistory.LayoutRows(false);
- // dataGridJobsHistory.ScrollViewer.ScrollToTop();
- // }
- //}
+ if (navigationLinks.SelectedIndex == 0)
+ {
+ dataGridJobs.LayoutRows(false);
+ dataGridJobs.ScrollViewer.ScrollToTop();
+ }
+ else
+ {
+ dataGridJobsHistory.LayoutRows(false);
+ dataGridJobsHistory.ScrollViewer.ScrollToTop();
+ }
+ }
}
public void ScrollToTop()
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs
index 7ccb76858..f9674e409 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs
@@ -80,6 +80,11 @@ namespace Tango.PPC.Common.EventLogging
_machineProvider.MachineOperator.RequestFailed += Machine_RequestFailed;
_machineProvider.MachineOperator.ResponseReceived += Machine_ResponseReceived;
_machineProvider.MachineOperator.StateChanged += MachineOperator_StateChanged;
+ _machineProvider.MachineOperator.PrintingStarted += MachineOperator_PrintingStarted;
+ _machineProvider.MachineOperator.PrintingAborted += MachineOperator_PrintingAborted;
+ _machineProvider.MachineOperator.PrintingCompleted += MachineOperator_PrintingCompleted;
+ _machineProvider.MachineOperator.PrintingFailed += MachineOperator_PrintingFailed;
+
}
#endregion
@@ -115,6 +120,46 @@ namespace Tango.PPC.Common.EventLogging
#region Event Handlers
/// <summary>
+ /// Handles the PrintingFailed event of the MachineOperator.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="PrintingFailedEventArgs"/> instance containing the event data.</param>
+ private void MachineOperator_PrintingFailed(object sender, PrintingFailedEventArgs e)
+ {
+ Log(EventTypes.JOB_FAILED, e.Exception.Message);
+ }
+
+ /// <summary>
+ /// Handles the PrintingCompleted event of the MachineOperator.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="PrintingEventArgs"/> instance containing the event data.</param>
+ private void MachineOperator_PrintingCompleted(object sender, PrintingEventArgs e)
+ {
+ Log(EventTypes.JOB_COMPLETED, $"Job '{e.Job.Name}' completed successfully.");
+ }
+
+ /// <summary>
+ /// Handles the PrintingAborted event of the MachineOperator.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="PrintingEventArgs"/> instance containing the event data.</param>
+ private void MachineOperator_PrintingAborted(object sender, PrintingEventArgs e)
+ {
+ Log(EventTypes.JOB_ABORTED, $"Job '{e.Job.Name}' has been aborted.");
+ }
+
+ /// <summary>
+ /// Handles the PrintingStarted event of the MachineOperator.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="PrintingEventArgs"/> instance containing the event data.</param>
+ private void MachineOperator_PrintingStarted(object sender, PrintingEventArgs e)
+ {
+ Log(EventTypes.JOB_STARTED, $"Job '{e.Job.Name}' started.");
+ }
+
+ /// <summary>
/// Handles the machine operator state changed event.
/// </summary>
/// <param name="sender">The sender.</param>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs
index dabfc5893..53e143def 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs
@@ -28,6 +28,8 @@ namespace Tango.PPC.UI.Connectivity
private INotificationProvider _notification;
private IMachineProvider _machineProvider;
private Rfc2898Cryptographer _cryptographer;
+ private System.Timers.Timer _updateTimer;
+ private WiFiNetwork _connectedNetwork;
/// <summary>
/// Occurs when the connectivity provider state has changed (e.g network connected/disconnected).
@@ -136,12 +138,40 @@ namespace Tango.PPC.UI.Connectivity
IsConnected = networks.Exists(x => x.IsConnected);
+ if (IsConnected)
+ {
+ _connectedNetwork = auto_connect_network;
+ }
+
if (auto_connect_network != null && !auto_connect_network.IsConnected)
{
auto_connect_network.AutoConnect = true;
await Connect(auto_connect_network, _cryptographer.Decrypt(settings.AutoConnectWiFiPassword));
}
});
+
+ _updateTimer = new System.Timers.Timer(TimeSpan.FromSeconds(30).TotalMilliseconds);
+ _updateTimer.Elapsed += _updateTimer_Elapsed;
+ _updateTimer.Start();
+ }
+
+ /// <summary>
+ /// Periodically checks if WiFI network is gone/disconnected.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="System.Timers.ElapsedEventArgs"/> instance containing the event data.</param>
+ private void _updateTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
+ {
+ if (IsConnected && _connectedNetwork != null)
+ {
+ var networks = GetAvailableWiFiNetworks().Result;
+ var matching_network = networks.FirstOrDefault(x => x.Name == _connectedNetwork.Name);
+
+ if (matching_network == null || !matching_network.AccessPoint.IsConnected)
+ {
+ OnConnectionStateChanged(false);
+ }
+ }
}
/// <summary>
@@ -264,6 +294,7 @@ namespace Tango.PPC.UI.Connectivity
settings.AutoConnectWiFiName = network.AutoConnect ? network.Name : null;
settings.AutoConnectWiFiPassword = _cryptographer.Encrypt(auth.Password);
settings.Save();
+ _connectedNetwork = network;
}
return result;
@@ -295,6 +326,10 @@ namespace Tango.PPC.UI.Connectivity
/// <param name="connected">if set to <c>true</c> [connected].</param>
protected virtual void OnConnectionStateChanged(bool connected)
{
+ if (!connected)
+ {
+ _connectedNetwork = null;
+ }
IsConnected = connected;
ConnectionStateChanged?.Invoke(this, new ConnectionStateEventArgs() { IsConnected = connected });
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs
index 1f09023cb..456c69625 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs
@@ -45,6 +45,8 @@ namespace Tango.PPC.UI.Printing
/// <returns></returns>
public async Task<JobHandler> Print(Job job, ObservablesContext context)
{
+ ThrowIfJobInvalid(job);
+
JobHandler handler = null;
#if STUBPRINT
@@ -149,6 +151,8 @@ namespace Tango.PPC.UI.Printing
/// <returns></returns>
public async Task<JobHandler> PrintSample(Job job, ObservablesContext context)
{
+ ThrowIfJobInvalid(job);
+
LogManager.Log("Cloning job...");
Job sampleDyeJob = job.Clone();
sampleDyeJob.Guid = job.Guid;
@@ -202,6 +206,8 @@ namespace Tango.PPC.UI.Printing
/// <returns></returns>
public async Task<JobHandler> PrintFineTuning(Job job, ObservablesContext context, IEnumerable<FineTuneItem> fineTuneItems)
{
+ ThrowIfJobInvalid(job);
+
LogManager.Log("Cloning job...");
Job fineTuneJob = job.Clone();
fineTuneJob.NumberOfUnits = 1;
@@ -241,5 +247,21 @@ namespace Tango.PPC.UI.Printing
{
TangoMessenger.Default.Send(new JobSavedMessage() { Job = job });
}
+
+ private void ThrowIfJobInvalid(Job job)
+ {
+ if (job.Segments.SelectMany(x => x.BrushStops).Any(x => x.IsOutOfGamut))
+ {
+ throw new InvalidOperationException("Error starting job. Color is out of range.");
+ }
+ if (job.Segments.SelectMany(x => x.BrushStops).Any(x => x.ColorSpace.IsCatalog && x.ColorCatalog == null))
+ {
+ throw new InvalidOperationException("Error starting job. Please select a catalog color.");
+ }
+ if (job.Rml.Ccts.Count == 0)
+ {
+ throw new InvalidOperationException($"Error starting job. No color table found for thread '{job.Rml.Name}'.");
+ }
+ }
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest b/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest
index d72e75011..efc5f8179 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest
@@ -16,7 +16,7 @@
Remove this element if your application requires this virtualization for backwards
compatibility.
-->
- <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
+ <!--<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />-->
</requestedPrivileges>
</security>
</trustInfo>
diff --git a/Software/Visual_Studio/Tango.BL/ColorConversion/TangoColorConverter.cs b/Software/Visual_Studio/Tango.BL/ColorConversion/TangoColorConverter.cs
index 2a2533ee6..d5ec5ab15 100644
--- a/Software/Visual_Studio/Tango.BL/ColorConversion/TangoColorConverter.cs
+++ b/Software/Visual_Studio/Tango.BL/ColorConversion/TangoColorConverter.cs
@@ -251,6 +251,11 @@ namespace Tango.BL.ColorConversion
conversionInput.ThreadA = 2.2555;//brushStop.Segment.Job.Rml.MediaColor.A;
conversionInput.ThreadB = -10.9325;//brushStop.Segment.Job.Rml.MediaColor.B;
+ if (brushStop.Segment.Job.Rml.Ccts.Count == 0)
+ {
+ throw new InvalidOperationException($"No CCT found for RML {brushStop.Segment.Job.Rml.Name}. Could not create a conversion input.");
+ }
+
conversionInput.ForwardData = ByteString.CopyFrom(brushStop.Segment.Job.Rml.Ccts.FirstOrDefault().ForwardData);
var machine = brushStop.Segment.Job.Machine;
diff --git a/Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs b/Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs
index 5f9760dca..817a69b32 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs
@@ -538,7 +538,7 @@ namespace Tango.BL.Entities
{
base.OnValidating(context);
- if (ColorSpace.Code == ColorSpaces.Twine.ToInt32() && ColorCatalog == null)
+ if (ColorSpace.IsCatalog && ColorCatalog == null)
{
InsertError(nameof(ColorCatalog), "Please specify a color code.");
}
diff --git a/Software/Visual_Studio/Tango.BL/Entities/Job.cs b/Software/Visual_Studio/Tango.BL/Entities/Job.cs
index 42156c6c8..b35681ca5 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/Job.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/Job.cs
@@ -231,6 +231,10 @@ namespace Tango.BL.Entities
{
OnLengthChanged();
}
+ else if (e.PropertyName == nameof(Segment.SegmentIndex))
+ {
+ RaisePropertyChanged(nameof(EffectiveSegments));
+ }
}
#endregion
diff --git a/Software/Visual_Studio/Tango.BL/Entities/MachinesEvent.cs b/Software/Visual_Studio/Tango.BL/Entities/MachinesEvent.cs
index 4b117f7fd..2738e0f08 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/MachinesEvent.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/MachinesEvent.cs
@@ -109,6 +109,15 @@ namespace Tango.BL.Entities
}
}
+ public bool IsJobProgressEvent()
+ {
+ return
+ Type == EventTypes.JOB_STARTED ||
+ Type == EventTypes.JOB_ABORTED ||
+ Type == EventTypes.JOB_COMPLETED ||
+ Type == EventTypes.JOB_FAILED;
+ }
+
/// <summary>
/// Initializes a new instance of the <see cref="MachinesEvent" /> class.
/// </summary>
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs
index 88ee7296b..7335cf867 100644
--- a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs
@@ -80,6 +80,30 @@ namespace Tango.BL.Enumerations
JOB_STATUS = 1009,
/// <summary>
+ /// (A job has been been started)
+ /// </summary>
+ [Description("A job has been been started")]
+ JOB_STARTED = 1010,
+
+ /// <summary>
+ /// (A job has been been aborted)
+ /// </summary>
+ [Description("A job has been been aborted")]
+ JOB_ABORTED = 1011,
+
+ /// <summary>
+ /// (A job has failed)
+ /// </summary>
+ [Description("A job has failed")]
+ JOB_FAILED = 1012,
+
+ /// <summary>
+ /// (Job completed successfully)
+ /// </summary>
+ [Description("Job completed successfully")]
+ JOB_COMPLETED = 1013,
+
+ /// <summary>
/// (Could not complete power-up )
/// </summary>
[Description("Could not complete power-up ")]
@@ -170,15 +194,15 @@ namespace Tango.BL.Enumerations
MACHINE_STATE_HW_CONFIG_FAILED = 2014,
/// <summary>
- /// (MACHINE_STATE_INITIAL_BLOWER_FAILED)
+ /// ()
/// </summary>
- [Description("MACHINE_STATE_INITIAL_BLOWER_FAILED")]
+ [Description("")]
MACHINE_STATE_INITIAL_BLOWER_FAILED = 2015,
/// <summary>
- /// (UNSPECIFIED ERROR)
+ /// (Unknown error occurred)
/// </summary>
- [Description("UNSPECIFIED ERROR")]
+ [Description("Unknown error occurred")]
UNSPECIFIED = 2016,
/// <summary>
diff --git a/Software/Visual_Studio/Tango.BL/ObservableEntity.cs b/Software/Visual_Studio/Tango.BL/ObservableEntity.cs
index 38a2f4c1c..464e8a743 100644
--- a/Software/Visual_Studio/Tango.BL/ObservableEntity.cs
+++ b/Software/Visual_Studio/Tango.BL/ObservableEntity.cs
@@ -613,6 +613,11 @@ Maybe you have deleted an entity that was no yet inserted into database?", LogCa
RaiseError(prop.Name);
}
+ foreach (var error in _currentErrors)
+ {
+ ValidationErrors.Add(error.Value);
+ }
+
return !HasErrors;
}
diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
index c5f13db7e..5b6b9b3a6 100644
--- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
+++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
@@ -1135,12 +1135,12 @@ namespace Tango.Integration.Operation
{
ContinueSingleSpoolJob(segment.GetNextSegment(), job, processParameters, handler);
}, () =>
- {
- PrintingAborted?.Invoke(this, new PrintingEventArgs(handler, handler.Job));
- PrintingEnded?.Invoke(this, new PrintingEventArgs(handler, handler.Job));
- Status = MachineStatuses.ReadyToDye;
- handler.RaiseCanceled();
- });
+ {
+ PrintingAborted?.Invoke(this, new PrintingEventArgs(handler, handler.Job));
+ PrintingEnded?.Invoke(this, new PrintingEventArgs(handler, handler.Job));
+ Status = MachineStatuses.ReadyToDye;
+ handler.RaiseCanceled();
+ });
}
});
}
@@ -1317,6 +1317,8 @@ namespace Tango.Integration.Operation
RunningJobStatus = null;
var originalJob = job;
+ var clonedJob = job.Clone();
+ clonedJob.Guid = job.Guid;
CurrentProcessParameters = processParameters;
@@ -1328,6 +1330,7 @@ namespace Tango.Integration.Operation
}
job = job.Clone();
+ job.Guid = originalJob.Guid;
int max = job.OrderedSegments.Last().SegmentIndex + 1;
@@ -1391,8 +1394,8 @@ namespace Tango.Integration.Operation
var result = await SendRequest<AbortJobRequest, AbortJobResponse>(new AbortJobRequest());
}
- PrintingAborted?.Invoke(this, new PrintingEventArgs(handler, originalJob));
- PrintingEnded?.Invoke(this, new PrintingEventArgs(handler, originalJob));
+ PrintingAborted?.Invoke(this, new PrintingEventArgs(handler, clonedJob));
+ PrintingEnded?.Invoke(this, new PrintingEventArgs(handler, clonedJob));
handler.RaiseCanceled();
}
}
@@ -1400,7 +1403,7 @@ namespace Tango.Integration.Operation
{
LogManager.Log(ex, "Failed to cancel job.");
}
- }, originalJob, ticket, processParameters, JobHandlingMode);
+ }, clonedJob, ticket, processParameters, JobHandlingMode);
handler.StatusChanged += (x, s) =>
{
@@ -1416,8 +1419,8 @@ namespace Tango.Integration.Operation
ThreadFactory.StartNew(async () =>
{
Status = MachineStatuses.GettingReady;
- RunningJob = originalJob;
- PrintingStarted?.Invoke(this, new PrintingEventArgs(handler, originalJob));
+ RunningJob = clonedJob;
+ PrintingStarted?.Invoke(this, new PrintingEventArgs(handler, clonedJob));
Thread.Sleep(100);
@@ -1532,8 +1535,8 @@ namespace Tango.Integration.Operation
{
UseKeepAlive = oldKeepAlive;
Status = MachineStatuses.ReadyToDye;
- PrintingFailed?.Invoke(this, new PrintingFailedEventArgs(handler, originalJob, ex));
- PrintingEnded?.Invoke(this, new PrintingEventArgs(handler, originalJob));
+ PrintingFailed?.Invoke(this, new PrintingFailedEventArgs(handler, clonedJob, ex));
+ PrintingEnded?.Invoke(this, new PrintingEventArgs(handler, clonedJob));
handler.RaiseFailed(ex);
LogRequestFailed(request, ex);
return;
@@ -1609,8 +1612,8 @@ namespace Tango.Integration.Operation
if (!handler.IsCanceled)
{
- PrintingFailed?.Invoke(this, new PrintingFailedEventArgs(handler, originalJob, ex));
- PrintingEnded?.Invoke(this, new PrintingEventArgs(handler, originalJob));
+ PrintingFailed?.Invoke(this, new PrintingFailedEventArgs(handler, clonedJob, ex));
+ PrintingEnded?.Invoke(this, new PrintingEventArgs(handler, clonedJob));
handler.RaiseFailed(ex);
LogRequestFailed(request, ex);
}
@@ -1629,8 +1632,8 @@ namespace Tango.Integration.Operation
UseKeepAlive = oldKeepAlive;
Status = MachineStatuses.ReadyToDye;
- PrintingCompleted?.Invoke(this, new PrintingEventArgs(handler, originalJob));
- PrintingEnded?.Invoke(this, new PrintingEventArgs(handler, originalJob));
+ PrintingCompleted?.Invoke(this, new PrintingEventArgs(handler, clonedJob));
+ PrintingEnded?.Invoke(this, new PrintingEventArgs(handler, clonedJob));
handler.RaiseCompleted();
}
});
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs
index 5ced6ffc2..97f7cdad9 100644
--- a/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs
+++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs
@@ -22,223 +22,224 @@ namespace Tango.PMR.Diagnostics {
static EventTypeReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
- "Cg9FdmVudFR5cGUucHJvdG8SFVRhbmdvLlBNUi5EaWFnbm9zdGljcyqrSwoJ",
+ "Cg9FdmVudFR5cGUucHJvdG8SFVRhbmdvLlBNUi5EaWFnbm9zdGljcyr0SwoJ",
"RXZlbnRUeXBlEggKBE5vbmUQABIRCgxSRVFVRVNUX1NFTlQQ6AcSFgoRUkVT",
"UE9OU0VfUkVDRUlWRUQQ6QcSEwoOUkVRVUVTVF9GQUlMRUQQ6gcSGgoVQVBQ",
"TElDQVRJT05fRVhDRVBUSU9OEOsHEhwKF0FQUExJQ0FUSU9OX0lORk9STUFU",
"SU9OEOwHEhgKE0FQUExJQ0FUSU9OX1NUQVJURUQQ7QcSGwoWQVBQTElDQVRJ",
"T05fVEVSTUlOQVRFRBDuBxIWChFSRUNPUkRJTkdfU1RBUlRFRBDvBxIWChFS",
- "RUNPUkRJTkdfU1RPUFBFRBDwBxIPCgpKT0JfU1RBVFVTEPEHEhkKFFBPV0VS",
- "X1VQX0JJVF9GQUlMVVJFENAPEiIKHUVNRVJHRU5DWV9QVVNIX0JVVFRPTl9Q",
- "UkVTU0VEENEPEhcKEkZST05UX0NPVkVSXzFfT1BFThDSDxIXChJGUk9OVF9D",
- "T1ZFUl8yX09QRU4Q0w8SFwoSRlJPTlRfQ09WRVJfM19PUEVOENQPEhcKEkZS",
- "T05UX0NPVkVSXzRfT1BFThDVDxIaChVDQVJUUklER0VTX0NPVkVSX09QRU4Q",
- "1g8SFAoPUkVBUl9DT1ZFUl9PUEVOENcPEiUKIE1BQ0hJTkVfSU5URVJOQUxf",
- "T1ZFUlRFTVBFUkFUVVJFENgPEh0KGE1BQ0hJTkVfRkFOU19SUE1fVE9PX0xP",
- "VxDZDxIZChRNQUNISU5FX0ZBTlNfU1RPUFBFRBDaDxIoCiNFTEVDVFJJQ0FM",
- "X0NBQklORVRfRkFOU19SUE1fVE9PX0xPVxDbDxIkCh9FTEVDVFJJQ0FMX0NB",
- "QklORVRfRkFOU19TVE9QUEVEENwPEh4KGU1BQ0hJTkVfU1RBVEVfTk9fQ0ZH",
- "X0ZJTEUQ3Q8SIwoeTUFDSElORV9TVEFURV9IV19DT05GSUdfRkFJTEVEEN4P",
- "EigKI01BQ0hJTkVfU1RBVEVfSU5JVElBTF9CTE9XRVJfRkFJTEVEEN8PEhAK",
- "C1VOU1BFQ0lGSUVEEOAPEhEKDFRIUkVBRF9CUkVBSxC4FxIxCixUSFJFQURf",
- "VEVOU0lPTl9DT05UUk9MX0ZBSUxVUkVfRkVFREVSX0RBTkNFUhC5FxIfChpX",
- "SU5ERVJfQ09ORV9ET0VTX05PVF9FWElTVBC6FxIdChhGRUVERVJfTU9UT1Jf",
- "T1ZFUkNVUlJFTlQQuxcSIwoeUklHSFRfTE9BREVSX01PVE9SX09WRVJDVVJS",
- "RU5UELwXEh0KGFBVTExFUl9NT1RPUl9PVkVSQ1VSUkVOVBC9FxIiCh1MRUZU",
- "X0xPQURFUl9NT1RPUl9PVkVSQ1VSUkVOVBC+FxIdChhXSU5ERVJfTU9UT1Jf",
- "T1ZFUkNVUlJFTlQQvxcSHAoXU0NSRVdfTU9UT1JfT1ZFUkNVUlJFTlQQwBcS",
- "IgodTE9BRElOR19BUk1fTU9UT1JfT1ZFUkNVUlJFTlQQwRcSIQocRkVFREVS",
- "X01PVE9SX09WRVJURU1QRVJBVFVSRRDCFxInCiJSSUdIVF9MT0FERVJfTU9U",
- "T1JfT1ZFUlRFTVBFUkFUVVJFEMMXEiEKHFBVTExFUl9NT1RPUl9PVkVSVEVN",
- "UEVSQVRVUkUQxBcSJgohTEVGVF9MT0FERVJfTU9UT1JfT1ZFUlRFTVBFUkFU",
- "VVJFEMUXEiEKHFdJTkRFUl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQxhcSIAob",
- "U0NSRVdfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMcXEiYKIUxPQURJTkdfQVJN",
- "X01PVE9SX09WRVJURU1QRVJBVFVSRRDIFxIXChJGRUVERVJfTU9UT1JfU1RB",
- "TEwQyRcSHQoYUklHSFRfTE9BREVSX01PVE9SX1NUQUxMEMoXEhcKElBVTExF",
- "Ul9NT1RPUl9TVEFMTBDLFxIcChdMRUZUX0xPQURFUl9NT1RPUl9TVEFMTBDM",
- "FxIXChJXSU5ERVJfTU9UT1JfU1RBTEwQzRcSFgoRU0NSRVdfTU9UT1JfU1RB",
- "TEwQzhcSHAoXTE9BRElOR19BUk1fTU9UT1JfU1RBTEwQzxcSHgoZRkVFREVS",
- "X01PVE9SX1VOREVSVk9MVEFHRRDQFxIkCh9SSUdIVF9MT0FERVJfTU9UT1Jf",
- "VU5ERVJWT0xUQUdFENEXEh4KGVBVTExFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ",
- "0hcSIwoeTEVGVF9MT0FERVJfTU9UT1JfVU5ERVJWT0xUQUdFENMXEh4KGVdJ",
- "TkRFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ1BcSHQoYU0NSRVdfTU9UT1JfVU5E",
- "RVJWT0xUQUdFENUXEiMKHkxPQURJTkdfQVJNX01PVE9SX1VOREVSVk9MVEFH",
- "RRDWFxIUCg9MVEZVX1VQX1RJTUVPVVQQ1xcSFgoRTFRGVV9ET1dOX1RJTUVP",
- "VVQQ2BcSFAoPUlRGVV9VUF9USU1FT1VUENkXEhYKEVJURlVfRE9XTl9USU1F",
- "T1VUENoXEh4KGVNDUkVXX01PVE9SX0xJTUlUX1RJTUVPVVQQ2xcSJAofV0lO",
- "REVSX0RBTkNFUl9NT1RPUl9PVkVSQ1VSUkVOVBDcFxIkCh9QVUxMRVJfREFO",
- "Q0VSX01PVE9SX09WRVJDVVJSRU5UEN0XEiQKH0ZFRURFUl9EQU5DRVJfTU9U",
- "T1JfT1ZFUkNVUlJFTlQQ3hcSKAojV0lOREVSX0RBTkNFUl9NT1RPUl9PVkVS",
- "VEVNUEVSQVRVUkUQ3xcSKAojUFVMTEVSX0RBTkNFUl9NT1RPUl9PVkVSVEVN",
- "UEVSQVRVUkUQ4BcSKAojRkVFREVSX0RBTkNFUl9NT1RPUl9PVkVSVEVNUEVS",
- "QVRVUkUQ4RcSHgoZV0lOREVSX0RBTkNFUl9NT1RPUl9TVEFMTBDiFxIeChlQ",
- "VUxMRVJfREFOQ0VSX01PVE9SX1NUQUxMEOMXEh4KGUZFRURFUl9EQU5DRVJf",
- "TU9UT1JfU1RBTEwQ5BcSJQogV0lOREVSX0RBTkNFUl9NT1RPUl9VTkRFUlZP",
- "TFRBR0UQ5RcSJQogUFVMTEVSX0RBTkNFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ",
- "5hcSJQogRkVFREVSX0RBTkNFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ5xcSMQos",
- "VEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlMVVJFX1BVTExFUl9EQU5DRVIQ",
- "6BcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlMVVJFX1dJTkRFUl9E",
- "QU5DRVIQ6RcSJQogTUFDSElORV9TVEFURV9OT19USFJFQURfREVURUNURUQQ",
- "6hcSHAoXRFJZRVJfTU9UT1JfT1ZFUkNVUlJFTlQQoB8SIAobRFJZRVJfTU9U",
- "T1JfT1ZFUlRFTVBFUkFUVVJFEKEfEhYKEURSWUVSX01PVE9SX1NUQUxMEKIf",
- "Eh0KGERSWUVSX01PVE9SX1VOREVSVk9MVEFHRRCjHxIUCg9EUllFUl9ET09S",
- "X09QRU4QpB8SIQocRFJZRVJfWk9ORV8xX09WRVJURU1QRVJBVFVSRRClHxIh",
- "ChxEUllFUl9aT05FXzJfT1ZFUlRFTVBFUkFUVVJFEKYfEiQKH0RSWUVSX1pP",
- "TkVfMV9VTkRFUlRFTVBFUkFUVVJFX0EQpx8SJAofRFJZRVJfWk9ORV8xX1VO",
- "REVSVEVNUEVSQVRVUkVfQhCoHxIkCh9EUllFUl9aT05FXzJfVU5ERVJURU1Q",
- "RVJBVFVSRV9CEKkfEhkKFERSWUVSX1RIRVJNQUxfQ1VUT0ZGEKofEi4KKURS",
- "WUVSX0hFQVRFUlNfWk9ORV8xX0NVUlJFTlRfT1VUX09GX1JBTkdFEKsfEi4K",
- "KURSWUVSX0hFQVRFUlNfWk9ORV8yX0NVUlJFTlRfT1VUX09GX1JBTkdFEKwf",
- "EiwKJ0RSWUVSX0hFQVRFUlNfWk9ORV8xX0NVUlJFTlRfTE9PUF9CUkVBSxCt",
- "HxIsCidEUllFUl9IRUFURVJTX1pPTkVfMl9DVVJSRU5UX0xPT1BfQlJFQUsQ",
- "rh8SGgoVRFJZRVJfRkFOX1JQTV9UT09fTE9XEK8fEhYKEURSWUVSX0ZBTl9T",
- "VE9QUEVEELAfEiAKG0RSWUVSX0xJRF9NT1RPUl9PVkVSQ1VSUkVOVBCxHxIk",
- "Ch9EUllFUl9MSURfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFELIfEhoKFURSWUVS",
- "X0xJRF9NT1RPUl9TVEFMTBCzHxIhChxEUllFUl9MSURfTU9UT1JfVU5ERVJW",
- "T0xUQUdFELQfEiQKH0RSWUVSX1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJFX0EQ",
- "tR8SJwoiRFlFSU5HX0hFQURfWk9ORV8xX09WRVJURU1QRVJBVFVSRRCIJxIn",
- "CiJEWUVJTkdfSEVBRF9aT05FXzJfT1ZFUlRFTVBFUkFUVVJFEIknEicKIkRZ",
- "RUlOR19IRUFEX1pPTkVfM19PVkVSVEVNUEVSQVRVUkUQiicSJwoiRFlFSU5H",
- "X0hFQURfWk9ORV80X09WRVJURU1QRVJBVFVSRRCLJxInCiJEWUVJTkdfSEVB",
- "RF9aT05FXzVfT1ZFUlRFTVBFUkFUVVJFEIwnEicKIkRZRUlOR19IRUFEX1pP",
- "TkVfNl9PVkVSVEVNUEVSQVRVUkUQjScSKgolRFlFSU5HX0hFQURfWk9ORV8x",
- "X1VOREVSVEVNUEVSQVRVUkVfQRCOJxIqCiVEWUVJTkdfSEVBRF9aT05FXzJf",
- "VU5ERVJURU1QRVJBVFVSRV9BEI8nEioKJURZRUlOR19IRUFEX1pPTkVfM19V",
- "TkRFUlRFTVBFUkFUVVJFX0EQkCcSKgolRFlFSU5HX0hFQURfWk9ORV80X1VO",
- "REVSVEVNUEVSQVRVUkVfQRCRJxIqCiVEWUVJTkdfSEVBRF9aT05FXzVfVU5E",
- "RVJURU1QRVJBVFVSRV9BEJInEioKJURZRUlOR19IRUFEX1pPTkVfNl9VTkRF",
- "UlRFTVBFUkFUVVJFX0EQkycSKgolRFlFSU5HX0hFQURfWk9ORV8xX1VOREVS",
- "VEVNUEVSQVRVUkVfQhCUJxIqCiVEWUVJTkdfSEVBRF9aT05FXzJfVU5ERVJU",
- "RU1QRVJBVFVSRV9CEJUnEioKJURZRUlOR19IRUFEX1pPTkVfM19VTkRFUlRF",
- "TVBFUkFUVVJFX0IQlicSKgolRFlFSU5HX0hFQURfWk9ORV80X1VOREVSVEVN",
- "UEVSQVRVUkVfQhCXJxIqCiVEWUVJTkdfSEVBRF9aT05FXzVfVU5ERVJURU1Q",
- "RVJBVFVSRV9CEJgnEioKJURZRUlOR19IRUFEX1pPTkVfNl9VTkRFUlRFTVBF",
- "UkFUVVJFX0IQmScSLAonRFlFSU5HX0hFQURfWk9ORV8xX0NVUlJFTlRfT1VU",
- "X09GX1JBTkdFEJonEiwKJ0RZRUlOR19IRUFEX1pPTkVfMl9DVVJSRU5UX09V",
- "VF9PRl9SQU5HRRCbJxIsCidEWUVJTkdfSEVBRF9aT05FXzNfQ1VSUkVOVF9P",
- "VVRfT0ZfUkFOR0UQnCcSLAonRFlFSU5HX0hFQURfWk9ORV80X0NVUlJFTlRf",
- "T1VUX09GX1JBTkdFEJ0nEi4KKURZRUlOR19IRUFEX1pPTkVfNV82X0NVUlJF",
- "TlRfT1VUX09GX1JBTkdFEJ4nEioKJURZRUlOR19IRUFEX1pPTkVfMV9DVVJS",
- "RU5UX0xPT1BfQlJFQUsQnycSKgolRFlFSU5HX0hFQURfWk9ORV8yX0NVUlJF",
- "TlRfTE9PUF9CUkVBSxCgJxIqCiVEWUVJTkdfSEVBRF9aT05FXzNfQ1VSUkVO",
- "VF9MT09QX0JSRUFLEKEnEioKJURZRUlOR19IRUFEX1pPTkVfNF9DVVJSRU5U",
- "X0xPT1BfQlJFQUsQoicSLAonRFlFSU5HX0hFQURfWk9ORV81XzZfQ1VSUkVO",
- "VF9MT09QX0JSRUFLEKMnEh8KGkRZRUlOR19IRUFEX1RIRVJNQUxfQ1VUT0ZG",
- "EKQnEiMKHkRZRUlOR19IRUFEX0NPVkVSX09QRU5fVElNRU9VVBClJxIkCh9E",
- "WUVJTkdfSEVBRF9DT1ZFUl9DTE9TRV9USU1FT1VUEKYnEigKI0RZRUlOR19I",
- "RUFEX0NPVkVSX01PVE9SX09WRVJDVVJSRU5UEKcnEiwKJ0RZRUlOR19IRUFE",
- "X0NPVkVSX01PVE9SX09WRVJURU1QRVJBVFVSRRCoJxIiCh1EWUVJTkdfSEVB",
- "RF9DT1ZFUl9NT1RPUl9TVEFMTBCpJxIpCiREWUVJTkdfSEVBRF9DT1ZFUl9N",
- "T1RPUl9VTkRFUlZPTFRBR0UQqicSNQowRFlFSU5HX0hFQURfQ0xFQU5JTkdf",
- "TUVDSEFOSVNNX01PVE9SX09WRVJDVVJSRU5UEKsnEjkKNERZRUlOR19IRUFE",
- "X0NMRUFOSU5HX01FQ0hBTklTTV9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQrCcS",
- "LwoqRFlFSU5HX0hFQURfQ0xFQU5JTkdfTUVDSEFOSVNNX01PVE9SX1NUQUxM",
- "EK0nEjYKMURZRUlOR19IRUFEX0NMRUFOSU5HX01FQ0hBTklTTV9NT1RPUl9V",
- "TkRFUlZPTFRBR0UQricSMAorRFlFSU5HX0hFQURfQ0xFQU5JTkdfSEVBRF9N",
- "T1RPUl9PVkVSQ1VSUkVOVBCvJxI0Ci9EWUVJTkdfSEVBRF9DTEVBTklOR19I",
- "RUFEX01PVE9SX09WRVJURU1QRVJBVFVSRRCwJxIqCiVEWUVJTkdfSEVBRF9D",
- "TEVBTklOR19IRUFEX01PVE9SX1NUQUxMELEnEjEKLERZRUlOR19IRUFEX0NM",
- "RUFOSU5HX0hFQURfTU9UT1JfVU5ERVJWT0xUQUdFELInEhoKFU1JWEVSX09W",
- "RVJURU1QRVJBVFVSRRDwLhIdChhNSVhFUl9VTkRFUlRFTVBFUkFUVVJFX0EQ",
- "8S4SHQoYTUlYRVJfVU5ERVJURU1QRVJBVFVSRV9CEPIuEhkKFE1JWEVSX1RI",
- "RVJNQUxfQ1VUT0ZGEPMuEh8KGk1JWEVSX0NVUlJFTlRfT1VUX09GX1JBTkdF",
- "EPQuEh0KGE1JWEVSX0NVUlJFTlRfTE9PUF9CUkVBSxD1LhIdChhESVNQRU5T",
- "RVJfMV9PVkVSUFJFU1NVUkUQ2DYSHQoYRElTUEVOU0VSXzJfT1ZFUlBSRVNT",
- "VVJFENk2Eh0KGERJU1BFTlNFUl8zX09WRVJQUkVTU1VSRRDaNhIdChhESVNQ",
- "RU5TRVJfNF9PVkVSUFJFU1NVUkUQ2zYSHQoYRElTUEVOU0VSXzVfT1ZFUlBS",
- "RVNTVVJFENw2Eh0KGERJU1BFTlNFUl82X09WRVJQUkVTU1VSRRDdNhIdChhE",
- "SVNQRU5TRVJfN19PVkVSUFJFU1NVUkUQ3jYSHQoYRElTUEVOU0VSXzhfT1ZF",
- "UlBSRVNTVVJFEN82Eh4KGURJU1BFTlNFUl8xX1VOREVSUFJFU1NVUkUQ4DYS",
- "HgoZRElTUEVOU0VSXzJfVU5ERVJQUkVTU1VSRRDhNhIeChlESVNQRU5TRVJf",
- "M19VTkRFUlBSRVNTVVJFEOI2Eh4KGURJU1BFTlNFUl80X1VOREVSUFJFU1NV",
- "UkUQ4zYSHgoZRElTUEVOU0VSXzVfVU5ERVJQUkVTU1VSRRDkNhIeChlESVNQ",
- "RU5TRVJfNl9VTkRFUlBSRVNTVVJFEOU2Eh4KGURJU1BFTlNFUl83X1VOREVS",
- "UFJFU1NVUkUQ5jYSHgoZRElTUEVOU0VSXzhfVU5ERVJQUkVTU1VSRRDnNhIW",
- "ChFESVNQRU5TRVJfMV9FTVBUWRDoNhIWChFESVNQRU5TRVJfMl9FTVBUWRDp",
- "NhIWChFESVNQRU5TRVJfM19FTVBUWRDqNhIWChFESVNQRU5TRVJfNF9FTVBU",
- "WRDrNhIWChFESVNQRU5TRVJfNV9FTVBUWRDsNhIWChFESVNQRU5TRVJfNl9F",
- "TVBUWRDtNhIWChFESVNQRU5TRVJfN19FTVBUWRDuNhIWChFESVNQRU5TRVJf",
- "OF9FTVBUWRDvNhIfChpESVNQRU5TRVJfMV9SRUZJTExfRkFJTFVSRRDwNhIf",
- "ChpESVNQRU5TRVJfMl9SRUZJTExfRkFJTFVSRRDxNhIfChpESVNQRU5TRVJf",
- "M19SRUZJTExfRkFJTFVSRRDyNhIfChpESVNQRU5TRVJfNF9SRUZJTExfRkFJ",
- "TFVSRRDzNhIfChpESVNQRU5TRVJfNV9SRUZJTExfRkFJTFVSRRD0NhIfChpE",
- "SVNQRU5TRVJfNl9SRUZJTExfRkFJTFVSRRD1NhIfChpESVNQRU5TRVJfN19S",
- "RUZJTExfRkFJTFVSRRD2NhIfChpESVNQRU5TRVJfOF9SRUZJTExfRkFJTFVS",
- "RRD3NhIiCh1ESVNQRU5TRVJfMV9NT1RPUl9PVkVSQ1VSUkVOVBD4NhIiCh1E",
- "SVNQRU5TRVJfMl9NT1RPUl9PVkVSQ1VSUkVOVBD5NhIiCh1ESVNQRU5TRVJf",
- "M19NT1RPUl9PVkVSQ1VSUkVOVBD6NhIiCh1ESVNQRU5TRVJfNF9NT1RPUl9P",
- "VkVSQ1VSUkVOVBD7NhIiCh1ESVNQRU5TRVJfNV9NT1RPUl9PVkVSQ1VSUkVO",
- "VBD8NhIiCh1ESVNQRU5TRVJfNl9NT1RPUl9PVkVSQ1VSUkVOVBD9NhIiCh1E",
- "SVNQRU5TRVJfN19NT1RPUl9PVkVSQ1VSUkVOVBD+NhIiCh1ESVNQRU5TRVJf",
- "OF9NT1RPUl9PVkVSQ1VSUkVOVBD/NhImCiFESVNQRU5TRVJfMV9NT1RPUl9P",
- "VkVSVEVNUEVSQVRVUkUQgDcSJgohRElTUEVOU0VSXzJfTU9UT1JfT1ZFUlRF",
- "TVBFUkFUVVJFEIE3EiYKIURJU1BFTlNFUl8zX01PVE9SX09WRVJURU1QRVJB",
- "VFVSRRCCNxImCiFESVNQRU5TRVJfNF9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQ",
- "gzcSJgohRElTUEVOU0VSXzVfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEIQ3EiYK",
- "IURJU1BFTlNFUl82X01PVE9SX09WRVJURU1QRVJBVFVSRRCFNxImCiFESVNQ",
- "RU5TRVJfN19NT1RPUl9PVkVSVEVNUEVSQVRVUkUQhjcSJgohRElTUEVOU0VS",
- "XzhfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEIc3EhwKF0RJU1BFTlNFUl8xX01P",
- "VE9SX1NUQUxMEIg3EhwKF0RJU1BFTlNFUl8yX01PVE9SX1NUQUxMEIk3EhwK",
- "F0RJU1BFTlNFUl8zX01PVE9SX1NUQUxMEIo3EhwKF0RJU1BFTlNFUl80X01P",
- "VE9SX1NUQUxMEIs3EhwKF0RJU1BFTlNFUl81X01PVE9SX1NUQUxMEIw3EhwK",
- "F0RJU1BFTlNFUl82X01PVE9SX1NUQUxMEI03EhwKF0RJU1BFTlNFUl83X01P",
- "VE9SX1NUQUxMEI43EhwKF0RJU1BFTlNFUl84X01PVE9SX1NUQUxMEI83EiMK",
- "HkRJU1BFTlNFUl8xX01PVE9SX1VOREVSVk9MVEFHRRCQNxIjCh5ESVNQRU5T",
- "RVJfMl9NT1RPUl9VTkRFUlZPTFRBR0UQkTcSIwoeRElTUEVOU0VSXzNfTU9U",
- "T1JfVU5ERVJWT0xUQUdFEJI3EiMKHkRJU1BFTlNFUl80X01PVE9SX1VOREVS",
- "Vk9MVEFHRRCTNxIjCh5ESVNQRU5TRVJfNV9NT1RPUl9VTkRFUlZPTFRBR0UQ",
- "lDcSIwoeRElTUEVOU0VSXzZfTU9UT1JfVU5ERVJWT0xUQUdFEJU3EiMKHkRJ",
- "U1BFTlNFUl83X01PVE9SX1VOREVSVk9MVEFHRRCWNxIjCh5ESVNQRU5TRVJf",
- "OF9NT1RPUl9VTkRFUlZPTFRBR0UQlzcSIQocRElTUEVOU0VSXzFfVVBQRVJf",
- "SEFSRF9MSU1JVBCYNxIhChxESVNQRU5TRVJfMl9VUFBFUl9IQVJEX0xJTUlU",
- "EJk3EiEKHERJU1BFTlNFUl8zX1VQUEVSX0hBUkRfTElNSVQQmjcSIQocRElT",
- "UEVOU0VSXzRfVVBQRVJfSEFSRF9MSU1JVBCbNxIhChxESVNQRU5TRVJfNV9V",
- "UFBFUl9IQVJEX0xJTUlUEJw3EiEKHERJU1BFTlNFUl82X1VQUEVSX0hBUkRf",
- "TElNSVQQnTcSIQocRElTUEVOU0VSXzdfVVBQRVJfSEFSRF9MSU1JVBCeNxIh",
- "ChxESVNQRU5TRVJfOF9VUFBFUl9IQVJEX0xJTUlUEJ83EiEKHERJU1BFTlNF",
- "Ul8xX0xPV0VSX0hBUkRfTElNSVQQoDcSIQocRElTUEVOU0VSXzJfTE9XRVJf",
- "SEFSRF9MSU1JVBChNxIhChxESVNQRU5TRVJfM19MT1dFUl9IQVJEX0xJTUlU",
- "EKI3EiEKHERJU1BFTlNFUl80X0xPV0VSX0hBUkRfTElNSVQQozcSIQocRElT",
- "UEVOU0VSXzVfTE9XRVJfSEFSRF9MSU1JVBCkNxIhChxESVNQRU5TRVJfNl9M",
- "T1dFUl9IQVJEX0xJTUlUEKU3EiEKHERJU1BFTlNFUl83X0xPV0VSX0hBUkRf",
- "TElNSVQQpjcSIQocRElTUEVOU0VSXzhfTE9XRVJfSEFSRF9MSU1JVBCnNxIe",
- "ChlESVNQRU5TRVJfMV9ISUdIX1BSRVNTVVJFEKg3Eh4KGURJU1BFTlNFUl8y",
- "X0hJR0hfUFJFU1NVUkUQqTcSHgoZRElTUEVOU0VSXzNfSElHSF9QUkVTU1VS",
- "RRCqNxIeChlESVNQRU5TRVJfNF9ISUdIX1BSRVNTVVJFEKs3Eh4KGURJU1BF",
- "TlNFUl81X0hJR0hfUFJFU1NVUkUQrDcSHgoZRElTUEVOU0VSXzZfSElHSF9Q",
- "UkVTU1VSRRCtNxIeChlESVNQRU5TRVJfN19ISUdIX1BSRVNTVVJFEK43Eh4K",
- "GURJU1BFTlNFUl84X0hJR0hfUFJFU1NVUkUQrzcSGQoUTUlEX1RBTktfMV9M",
- "T1dfTEVWRUwQwD4SGQoUTUlEX1RBTktfMl9MT1dfTEVWRUwQwT4SGQoUTUlE",
- "X1RBTktfM19MT1dfTEVWRUwQwj4SGQoUTUlEX1RBTktfNF9MT1dfTEVWRUwQ",
- "wz4SGQoUTUlEX1RBTktfNV9MT1dfTEVWRUwQxD4SGQoUTUlEX1RBTktfNl9M",
- "T1dfTEVWRUwQxT4SGQoUTUlEX1RBTktfN19MT1dfTEVWRUwQxj4SGQoUTUlE",
- "X1RBTktfOF9MT1dfTEVWRUwQxz4SFQoQTUlEX1RBTktfMV9FTVBUWRDIPhIV",
- "ChBNSURfVEFOS18yX0VNUFRZEMk+EhUKEE1JRF9UQU5LXzNfRU1QVFkQyj4S",
- "FQoQTUlEX1RBTktfNF9FTVBUWRDLPhIVChBNSURfVEFOS181X0VNUFRZEMw+",
- "EhUKEE1JRF9UQU5LXzZfRU1QVFkQzT4SFQoQTUlEX1RBTktfN19FTVBUWRDO",
- "PhIVChBNSURfVEFOS184X0VNUFRZEM8+EhgKE01JRF9UQU5LXzFfT1ZFUkZM",
- "T1cQ0D4SGAoTTUlEX1RBTktfMl9PVkVSRkxPVxDRPhIYChNNSURfVEFOS18z",
- "X09WRVJGTE9XENI+EhgKE01JRF9UQU5LXzRfT1ZFUkZMT1cQ0z4SGAoTTUlE",
- "X1RBTktfNV9PVkVSRkxPVxDUPhIYChNNSURfVEFOS182X09WRVJGTE9XENU+",
- "EhgKE01JRF9UQU5LXzdfT1ZFUkZMT1cQ1j4SGAoTTUlEX1RBTktfOF9PVkVS",
- "RkxPVxDXPhIcChdNSURfVEFOS18xX0ZJTExfVElNRU9VVBDYPhIcChdNSURf",
- "VEFOS18yX0ZJTExfVElNRU9VVBDZPhIcChdNSURfVEFOS18zX0ZJTExfVElN",
- "RU9VVBDaPhIcChdNSURfVEFOS180X0ZJTExfVElNRU9VVBDbPhIcChdNSURf",
- "VEFOS181X0ZJTExfVElNRU9VVBDcPhIcChdNSURfVEFOS182X0ZJTExfVElN",
- "RU9VVBDdPhIcChdNSURfVEFOS183X0ZJTExfVElNRU9VVBDePhIcChdNSURf",
- "VEFOS184X0ZJTExfVElNRU9VVBDfPhIdChhBSVJfRklMVEVSX05PVF9JTlNU",
- "QUxMRUQQqEYSFwoSQUlSX0ZJTFRFUl9DTE9HR0VEEKlGEiUKIFdBU1RFX0NP",
- "TlRBSU5FUl9FTVBUWUlOR19USU1FT1VUEKpGEhQKD05PX0FJUl9QUkVTU1VS",
- "RRCrRhIdChhXQVNURV9DT05UQUlORVJfT1ZFUkZMT1cQrEYSGgoVVk9DX1NF",
- "TlNPUl9BTEFSTV9USU1FEK1GEhgKE0NISUxMRVJfRFJZX0NPTlRBQ1QQrkYS",
- "GgoVSU5TVUZGSUNJRU5UX0FJUl9GTE9XEK9GEhsKFlZPQ19TRU5TT1JfQUxB",
- "Uk1fU0xPUEUQsEYSKgolSU5LX0NBUlRSSURHRV9QUkVTRU5DRV9TRU5TT1Jf",
- "VElNRU9VVBCQThIfChpJTktfQ0FSVFJJREdFX1JGSURfVElNRU9VVBCRThIh",
- "ChxOT19XQVNURV9DQVJUUklER0VfQVZBSUxBQkxFEJJOEh4KGUFMTF9XQVNU",
- "RV9DQVJUUklER0VTX0ZVTEwQk04SLAonV0FTVEVfQ0FSVFJJREdFX1BSRVNF",
- "TkNFX1NFTlNPUl9USU1FT1VUEJROEiEKHFdBU1RFX0NBUlRSSURHRV9SRklE",
- "X1RJTUVPVVQQlU5CIQofY29tLnR3aW5lLnRhbmdvLnBtci5kaWFnbm9zdGlj",
- "c2IGcHJvdG8z"));
+ "RUNPUkRJTkdfU1RPUFBFRBDwBxIPCgpKT0JfU1RBVFVTEPEHEhAKC0pPQl9T",
+ "VEFSVEVEEPIHEhAKC0pPQl9BQk9SVEVEEPMHEg8KCkpPQl9GQUlMRUQQ9AcS",
+ "EgoNSk9CX0NPTVBMRVRFRBD1BxIZChRQT1dFUl9VUF9CSVRfRkFJTFVSRRDQ",
+ "DxIiCh1FTUVSR0VOQ1lfUFVTSF9CVVRUT05fUFJFU1NFRBDRDxIXChJGUk9O",
+ "VF9DT1ZFUl8xX09QRU4Q0g8SFwoSRlJPTlRfQ09WRVJfMl9PUEVOENMPEhcK",
+ "EkZST05UX0NPVkVSXzNfT1BFThDUDxIXChJGUk9OVF9DT1ZFUl80X09QRU4Q",
+ "1Q8SGgoVQ0FSVFJJREdFU19DT1ZFUl9PUEVOENYPEhQKD1JFQVJfQ09WRVJf",
+ "T1BFThDXDxIlCiBNQUNISU5FX0lOVEVSTkFMX09WRVJURU1QRVJBVFVSRRDY",
+ "DxIdChhNQUNISU5FX0ZBTlNfUlBNX1RPT19MT1cQ2Q8SGQoUTUFDSElORV9G",
+ "QU5TX1NUT1BQRUQQ2g8SKAojRUxFQ1RSSUNBTF9DQUJJTkVUX0ZBTlNfUlBN",
+ "X1RPT19MT1cQ2w8SJAofRUxFQ1RSSUNBTF9DQUJJTkVUX0ZBTlNfU1RPUFBF",
+ "RBDcDxIeChlNQUNISU5FX1NUQVRFX05PX0NGR19GSUxFEN0PEiMKHk1BQ0hJ",
+ "TkVfU1RBVEVfSFdfQ09ORklHX0ZBSUxFRBDeDxIoCiNNQUNISU5FX1NUQVRF",
+ "X0lOSVRJQUxfQkxPV0VSX0ZBSUxFRBDfDxIQCgtVTlNQRUNJRklFRBDgDxIR",
+ "CgxUSFJFQURfQlJFQUsQuBcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9G",
+ "QUlMVVJFX0ZFRURFUl9EQU5DRVIQuRcSHwoaV0lOREVSX0NPTkVfRE9FU19O",
+ "T1RfRVhJU1QQuhcSHQoYRkVFREVSX01PVE9SX09WRVJDVVJSRU5UELsXEiMK",
+ "HlJJR0hUX0xPQURFUl9NT1RPUl9PVkVSQ1VSUkVOVBC8FxIdChhQVUxMRVJf",
+ "TU9UT1JfT1ZFUkNVUlJFTlQQvRcSIgodTEVGVF9MT0FERVJfTU9UT1JfT1ZF",
+ "UkNVUlJFTlQQvhcSHQoYV0lOREVSX01PVE9SX09WRVJDVVJSRU5UEL8XEhwK",
+ "F1NDUkVXX01PVE9SX09WRVJDVVJSRU5UEMAXEiIKHUxPQURJTkdfQVJNX01P",
+ "VE9SX09WRVJDVVJSRU5UEMEXEiEKHEZFRURFUl9NT1RPUl9PVkVSVEVNUEVS",
+ "QVRVUkUQwhcSJwoiUklHSFRfTE9BREVSX01PVE9SX09WRVJURU1QRVJBVFVS",
+ "RRDDFxIhChxQVUxMRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMQXEiYKIUxF",
+ "RlRfTE9BREVSX01PVE9SX09WRVJURU1QRVJBVFVSRRDFFxIhChxXSU5ERVJf",
+ "TU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMYXEiAKG1NDUkVXX01PVE9SX09WRVJU",
+ "RU1QRVJBVFVSRRDHFxImCiFMT0FESU5HX0FSTV9NT1RPUl9PVkVSVEVNUEVS",
+ "QVRVUkUQyBcSFwoSRkVFREVSX01PVE9SX1NUQUxMEMkXEh0KGFJJR0hUX0xP",
+ "QURFUl9NT1RPUl9TVEFMTBDKFxIXChJQVUxMRVJfTU9UT1JfU1RBTEwQyxcS",
+ "HAoXTEVGVF9MT0FERVJfTU9UT1JfU1RBTEwQzBcSFwoSV0lOREVSX01PVE9S",
+ "X1NUQUxMEM0XEhYKEVNDUkVXX01PVE9SX1NUQUxMEM4XEhwKF0xPQURJTkdf",
+ "QVJNX01PVE9SX1NUQUxMEM8XEh4KGUZFRURFUl9NT1RPUl9VTkRFUlZPTFRB",
+ "R0UQ0BcSJAofUklHSFRfTE9BREVSX01PVE9SX1VOREVSVk9MVEFHRRDRFxIe",
+ "ChlQVUxMRVJfTU9UT1JfVU5ERVJWT0xUQUdFENIXEiMKHkxFRlRfTE9BREVS",
+ "X01PVE9SX1VOREVSVk9MVEFHRRDTFxIeChlXSU5ERVJfTU9UT1JfVU5ERVJW",
+ "T0xUQUdFENQXEh0KGFNDUkVXX01PVE9SX1VOREVSVk9MVEFHRRDVFxIjCh5M",
+ "T0FESU5HX0FSTV9NT1RPUl9VTkRFUlZPTFRBR0UQ1hcSFAoPTFRGVV9VUF9U",
+ "SU1FT1VUENcXEhYKEUxURlVfRE9XTl9USU1FT1VUENgXEhQKD1JURlVfVVBf",
+ "VElNRU9VVBDZFxIWChFSVEZVX0RPV05fVElNRU9VVBDaFxIeChlTQ1JFV19N",
+ "T1RPUl9MSU1JVF9USU1FT1VUENsXEiQKH1dJTkRFUl9EQU5DRVJfTU9UT1Jf",
+ "T1ZFUkNVUlJFTlQQ3BcSJAofUFVMTEVSX0RBTkNFUl9NT1RPUl9PVkVSQ1VS",
+ "UkVOVBDdFxIkCh9GRUVERVJfREFOQ0VSX01PVE9SX09WRVJDVVJSRU5UEN4X",
+ "EigKI1dJTkRFUl9EQU5DRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEN8XEigK",
+ "I1BVTExFUl9EQU5DRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEOAXEigKI0ZF",
+ "RURFUl9EQU5DRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEOEXEh4KGVdJTkRF",
+ "Ul9EQU5DRVJfTU9UT1JfU1RBTEwQ4hcSHgoZUFVMTEVSX0RBTkNFUl9NT1RP",
+ "Ul9TVEFMTBDjFxIeChlGRUVERVJfREFOQ0VSX01PVE9SX1NUQUxMEOQXEiUK",
+ "IFdJTkRFUl9EQU5DRVJfTU9UT1JfVU5ERVJWT0xUQUdFEOUXEiUKIFBVTExF",
+ "Ul9EQU5DRVJfTU9UT1JfVU5ERVJWT0xUQUdFEOYXEiUKIEZFRURFUl9EQU5D",
+ "RVJfTU9UT1JfVU5ERVJWT0xUQUdFEOcXEjEKLFRIUkVBRF9URU5TSU9OX0NP",
+ "TlRST0xfRkFJTFVSRV9QVUxMRVJfREFOQ0VSEOgXEjEKLFRIUkVBRF9URU5T",
+ "SU9OX0NPTlRST0xfRkFJTFVSRV9XSU5ERVJfREFOQ0VSEOkXEiUKIE1BQ0hJ",
+ "TkVfU1RBVEVfTk9fVEhSRUFEX0RFVEVDVEVEEOoXEhwKF0RSWUVSX01PVE9S",
+ "X09WRVJDVVJSRU5UEKAfEiAKG0RSWUVSX01PVE9SX09WRVJURU1QRVJBVFVS",
+ "RRChHxIWChFEUllFUl9NT1RPUl9TVEFMTBCiHxIdChhEUllFUl9NT1RPUl9V",
+ "TkRFUlZPTFRBR0UQox8SFAoPRFJZRVJfRE9PUl9PUEVOEKQfEiEKHERSWUVS",
+ "X1pPTkVfMV9PVkVSVEVNUEVSQVRVUkUQpR8SIQocRFJZRVJfWk9ORV8yX09W",
+ "RVJURU1QRVJBVFVSRRCmHxIkCh9EUllFUl9aT05FXzFfVU5ERVJURU1QRVJB",
+ "VFVSRV9BEKcfEiQKH0RSWUVSX1pPTkVfMV9VTkRFUlRFTVBFUkFUVVJFX0IQ",
+ "qB8SJAofRFJZRVJfWk9ORV8yX1VOREVSVEVNUEVSQVRVUkVfQhCpHxIZChRE",
+ "UllFUl9USEVSTUFMX0NVVE9GRhCqHxIuCilEUllFUl9IRUFURVJTX1pPTkVf",
+ "MV9DVVJSRU5UX09VVF9PRl9SQU5HRRCrHxIuCilEUllFUl9IRUFURVJTX1pP",
+ "TkVfMl9DVVJSRU5UX09VVF9PRl9SQU5HRRCsHxIsCidEUllFUl9IRUFURVJT",
+ "X1pPTkVfMV9DVVJSRU5UX0xPT1BfQlJFQUsQrR8SLAonRFJZRVJfSEVBVEVS",
+ "U19aT05FXzJfQ1VSUkVOVF9MT09QX0JSRUFLEK4fEhoKFURSWUVSX0ZBTl9S",
+ "UE1fVE9PX0xPVxCvHxIWChFEUllFUl9GQU5fU1RPUFBFRBCwHxIgChtEUllF",
+ "Ul9MSURfTU9UT1JfT1ZFUkNVUlJFTlQQsR8SJAofRFJZRVJfTElEX01PVE9S",
+ "X09WRVJURU1QRVJBVFVSRRCyHxIaChVEUllFUl9MSURfTU9UT1JfU1RBTEwQ",
+ "sx8SIQocRFJZRVJfTElEX01PVE9SX1VOREVSVk9MVEFHRRC0HxIkCh9EUllF",
+ "Ul9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9BELUfEicKIkRZRUlOR19IRUFE",
+ "X1pPTkVfMV9PVkVSVEVNUEVSQVRVUkUQiCcSJwoiRFlFSU5HX0hFQURfWk9O",
+ "RV8yX09WRVJURU1QRVJBVFVSRRCJJxInCiJEWUVJTkdfSEVBRF9aT05FXzNf",
+ "T1ZFUlRFTVBFUkFUVVJFEIonEicKIkRZRUlOR19IRUFEX1pPTkVfNF9PVkVS",
+ "VEVNUEVSQVRVUkUQiycSJwoiRFlFSU5HX0hFQURfWk9ORV81X09WRVJURU1Q",
+ "RVJBVFVSRRCMJxInCiJEWUVJTkdfSEVBRF9aT05FXzZfT1ZFUlRFTVBFUkFU",
+ "VVJFEI0nEioKJURZRUlOR19IRUFEX1pPTkVfMV9VTkRFUlRFTVBFUkFUVVJF",
+ "X0EQjicSKgolRFlFSU5HX0hFQURfWk9ORV8yX1VOREVSVEVNUEVSQVRVUkVf",
+ "QRCPJxIqCiVEWUVJTkdfSEVBRF9aT05FXzNfVU5ERVJURU1QRVJBVFVSRV9B",
+ "EJAnEioKJURZRUlOR19IRUFEX1pPTkVfNF9VTkRFUlRFTVBFUkFUVVJFX0EQ",
+ "kScSKgolRFlFSU5HX0hFQURfWk9ORV81X1VOREVSVEVNUEVSQVRVUkVfQRCS",
+ "JxIqCiVEWUVJTkdfSEVBRF9aT05FXzZfVU5ERVJURU1QRVJBVFVSRV9BEJMn",
+ "EioKJURZRUlOR19IRUFEX1pPTkVfMV9VTkRFUlRFTVBFUkFUVVJFX0IQlCcS",
+ "KgolRFlFSU5HX0hFQURfWk9ORV8yX1VOREVSVEVNUEVSQVRVUkVfQhCVJxIq",
+ "CiVEWUVJTkdfSEVBRF9aT05FXzNfVU5ERVJURU1QRVJBVFVSRV9CEJYnEioK",
+ "JURZRUlOR19IRUFEX1pPTkVfNF9VTkRFUlRFTVBFUkFUVVJFX0IQlycSKgol",
+ "RFlFSU5HX0hFQURfWk9ORV81X1VOREVSVEVNUEVSQVRVUkVfQhCYJxIqCiVE",
+ "WUVJTkdfSEVBRF9aT05FXzZfVU5ERVJURU1QRVJBVFVSRV9CEJknEiwKJ0RZ",
+ "RUlOR19IRUFEX1pPTkVfMV9DVVJSRU5UX09VVF9PRl9SQU5HRRCaJxIsCidE",
+ "WUVJTkdfSEVBRF9aT05FXzJfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQmycSLAon",
+ "RFlFSU5HX0hFQURfWk9ORV8zX0NVUlJFTlRfT1VUX09GX1JBTkdFEJwnEiwK",
+ "J0RZRUlOR19IRUFEX1pPTkVfNF9DVVJSRU5UX09VVF9PRl9SQU5HRRCdJxIu",
+ "CilEWUVJTkdfSEVBRF9aT05FXzVfNl9DVVJSRU5UX09VVF9PRl9SQU5HRRCe",
+ "JxIqCiVEWUVJTkdfSEVBRF9aT05FXzFfQ1VSUkVOVF9MT09QX0JSRUFLEJ8n",
+ "EioKJURZRUlOR19IRUFEX1pPTkVfMl9DVVJSRU5UX0xPT1BfQlJFQUsQoCcS",
+ "KgolRFlFSU5HX0hFQURfWk9ORV8zX0NVUlJFTlRfTE9PUF9CUkVBSxChJxIq",
+ "CiVEWUVJTkdfSEVBRF9aT05FXzRfQ1VSUkVOVF9MT09QX0JSRUFLEKInEiwK",
+ "J0RZRUlOR19IRUFEX1pPTkVfNV82X0NVUlJFTlRfTE9PUF9CUkVBSxCjJxIf",
+ "ChpEWUVJTkdfSEVBRF9USEVSTUFMX0NVVE9GRhCkJxIjCh5EWUVJTkdfSEVB",
+ "RF9DT1ZFUl9PUEVOX1RJTUVPVVQQpScSJAofRFlFSU5HX0hFQURfQ09WRVJf",
+ "Q0xPU0VfVElNRU9VVBCmJxIoCiNEWUVJTkdfSEVBRF9DT1ZFUl9NT1RPUl9P",
+ "VkVSQ1VSUkVOVBCnJxIsCidEWUVJTkdfSEVBRF9DT1ZFUl9NT1RPUl9PVkVS",
+ "VEVNUEVSQVRVUkUQqCcSIgodRFlFSU5HX0hFQURfQ09WRVJfTU9UT1JfU1RB",
+ "TEwQqScSKQokRFlFSU5HX0hFQURfQ09WRVJfTU9UT1JfVU5ERVJWT0xUQUdF",
+ "EKonEjUKMERZRUlOR19IRUFEX0NMRUFOSU5HX01FQ0hBTklTTV9NT1RPUl9P",
+ "VkVSQ1VSUkVOVBCrJxI5CjREWUVJTkdfSEVBRF9DTEVBTklOR19NRUNIQU5J",
+ "U01fTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEKwnEi8KKkRZRUlOR19IRUFEX0NM",
+ "RUFOSU5HX01FQ0hBTklTTV9NT1RPUl9TVEFMTBCtJxI2CjFEWUVJTkdfSEVB",
+ "RF9DTEVBTklOR19NRUNIQU5JU01fTU9UT1JfVU5ERVJWT0xUQUdFEK4nEjAK",
+ "K0RZRUlOR19IRUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfT1ZFUkNVUlJFTlQQ",
+ "rycSNAovRFlFSU5HX0hFQURfQ0xFQU5JTkdfSEVBRF9NT1RPUl9PVkVSVEVN",
+ "UEVSQVRVUkUQsCcSKgolRFlFSU5HX0hFQURfQ0xFQU5JTkdfSEVBRF9NT1RP",
+ "Ul9TVEFMTBCxJxIxCixEWUVJTkdfSEVBRF9DTEVBTklOR19IRUFEX01PVE9S",
+ "X1VOREVSVk9MVEFHRRCyJxIaChVNSVhFUl9PVkVSVEVNUEVSQVRVUkUQ8C4S",
+ "HQoYTUlYRVJfVU5ERVJURU1QRVJBVFVSRV9BEPEuEh0KGE1JWEVSX1VOREVS",
+ "VEVNUEVSQVRVUkVfQhDyLhIZChRNSVhFUl9USEVSTUFMX0NVVE9GRhDzLhIf",
+ "ChpNSVhFUl9DVVJSRU5UX09VVF9PRl9SQU5HRRD0LhIdChhNSVhFUl9DVVJS",
+ "RU5UX0xPT1BfQlJFQUsQ9S4SHQoYRElTUEVOU0VSXzFfT1ZFUlBSRVNTVVJF",
+ "ENg2Eh0KGERJU1BFTlNFUl8yX09WRVJQUkVTU1VSRRDZNhIdChhESVNQRU5T",
+ "RVJfM19PVkVSUFJFU1NVUkUQ2jYSHQoYRElTUEVOU0VSXzRfT1ZFUlBSRVNT",
+ "VVJFENs2Eh0KGERJU1BFTlNFUl81X09WRVJQUkVTU1VSRRDcNhIdChhESVNQ",
+ "RU5TRVJfNl9PVkVSUFJFU1NVUkUQ3TYSHQoYRElTUEVOU0VSXzdfT1ZFUlBS",
+ "RVNTVVJFEN42Eh0KGERJU1BFTlNFUl84X09WRVJQUkVTU1VSRRDfNhIeChlE",
+ "SVNQRU5TRVJfMV9VTkRFUlBSRVNTVVJFEOA2Eh4KGURJU1BFTlNFUl8yX1VO",
+ "REVSUFJFU1NVUkUQ4TYSHgoZRElTUEVOU0VSXzNfVU5ERVJQUkVTU1VSRRDi",
+ "NhIeChlESVNQRU5TRVJfNF9VTkRFUlBSRVNTVVJFEOM2Eh4KGURJU1BFTlNF",
+ "Ul81X1VOREVSUFJFU1NVUkUQ5DYSHgoZRElTUEVOU0VSXzZfVU5ERVJQUkVT",
+ "U1VSRRDlNhIeChlESVNQRU5TRVJfN19VTkRFUlBSRVNTVVJFEOY2Eh4KGURJ",
+ "U1BFTlNFUl84X1VOREVSUFJFU1NVUkUQ5zYSFgoRRElTUEVOU0VSXzFfRU1Q",
+ "VFkQ6DYSFgoRRElTUEVOU0VSXzJfRU1QVFkQ6TYSFgoRRElTUEVOU0VSXzNf",
+ "RU1QVFkQ6jYSFgoRRElTUEVOU0VSXzRfRU1QVFkQ6zYSFgoRRElTUEVOU0VS",
+ "XzVfRU1QVFkQ7DYSFgoRRElTUEVOU0VSXzZfRU1QVFkQ7TYSFgoRRElTUEVO",
+ "U0VSXzdfRU1QVFkQ7jYSFgoRRElTUEVOU0VSXzhfRU1QVFkQ7zYSHwoaRElT",
+ "UEVOU0VSXzFfUkVGSUxMX0ZBSUxVUkUQ8DYSHwoaRElTUEVOU0VSXzJfUkVG",
+ "SUxMX0ZBSUxVUkUQ8TYSHwoaRElTUEVOU0VSXzNfUkVGSUxMX0ZBSUxVUkUQ",
+ "8jYSHwoaRElTUEVOU0VSXzRfUkVGSUxMX0ZBSUxVUkUQ8zYSHwoaRElTUEVO",
+ "U0VSXzVfUkVGSUxMX0ZBSUxVUkUQ9DYSHwoaRElTUEVOU0VSXzZfUkVGSUxM",
+ "X0ZBSUxVUkUQ9TYSHwoaRElTUEVOU0VSXzdfUkVGSUxMX0ZBSUxVUkUQ9jYS",
+ "HwoaRElTUEVOU0VSXzhfUkVGSUxMX0ZBSUxVUkUQ9zYSIgodRElTUEVOU0VS",
+ "XzFfTU9UT1JfT1ZFUkNVUlJFTlQQ+DYSIgodRElTUEVOU0VSXzJfTU9UT1Jf",
+ "T1ZFUkNVUlJFTlQQ+TYSIgodRElTUEVOU0VSXzNfTU9UT1JfT1ZFUkNVUlJF",
+ "TlQQ+jYSIgodRElTUEVOU0VSXzRfTU9UT1JfT1ZFUkNVUlJFTlQQ+zYSIgod",
+ "RElTUEVOU0VSXzVfTU9UT1JfT1ZFUkNVUlJFTlQQ/DYSIgodRElTUEVOU0VS",
+ "XzZfTU9UT1JfT1ZFUkNVUlJFTlQQ/TYSIgodRElTUEVOU0VSXzdfTU9UT1Jf",
+ "T1ZFUkNVUlJFTlQQ/jYSIgodRElTUEVOU0VSXzhfTU9UT1JfT1ZFUkNVUlJF",
+ "TlQQ/zYSJgohRElTUEVOU0VSXzFfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEIA3",
+ "EiYKIURJU1BFTlNFUl8yX01PVE9SX09WRVJURU1QRVJBVFVSRRCBNxImCiFE",
+ "SVNQRU5TRVJfM19NT1RPUl9PVkVSVEVNUEVSQVRVUkUQgjcSJgohRElTUEVO",
+ "U0VSXzRfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEIM3EiYKIURJU1BFTlNFUl81",
+ "X01PVE9SX09WRVJURU1QRVJBVFVSRRCENxImCiFESVNQRU5TRVJfNl9NT1RP",
+ "Ul9PVkVSVEVNUEVSQVRVUkUQhTcSJgohRElTUEVOU0VSXzdfTU9UT1JfT1ZF",
+ "UlRFTVBFUkFUVVJFEIY3EiYKIURJU1BFTlNFUl84X01PVE9SX09WRVJURU1Q",
+ "RVJBVFVSRRCHNxIcChdESVNQRU5TRVJfMV9NT1RPUl9TVEFMTBCINxIcChdE",
+ "SVNQRU5TRVJfMl9NT1RPUl9TVEFMTBCJNxIcChdESVNQRU5TRVJfM19NT1RP",
+ "Ul9TVEFMTBCKNxIcChdESVNQRU5TRVJfNF9NT1RPUl9TVEFMTBCLNxIcChdE",
+ "SVNQRU5TRVJfNV9NT1RPUl9TVEFMTBCMNxIcChdESVNQRU5TRVJfNl9NT1RP",
+ "Ul9TVEFMTBCNNxIcChdESVNQRU5TRVJfN19NT1RPUl9TVEFMTBCONxIcChdE",
+ "SVNQRU5TRVJfOF9NT1RPUl9TVEFMTBCPNxIjCh5ESVNQRU5TRVJfMV9NT1RP",
+ "Ul9VTkRFUlZPTFRBR0UQkDcSIwoeRElTUEVOU0VSXzJfTU9UT1JfVU5ERVJW",
+ "T0xUQUdFEJE3EiMKHkRJU1BFTlNFUl8zX01PVE9SX1VOREVSVk9MVEFHRRCS",
+ "NxIjCh5ESVNQRU5TRVJfNF9NT1RPUl9VTkRFUlZPTFRBR0UQkzcSIwoeRElT",
+ "UEVOU0VSXzVfTU9UT1JfVU5ERVJWT0xUQUdFEJQ3EiMKHkRJU1BFTlNFUl82",
+ "X01PVE9SX1VOREVSVk9MVEFHRRCVNxIjCh5ESVNQRU5TRVJfN19NT1RPUl9V",
+ "TkRFUlZPTFRBR0UQljcSIwoeRElTUEVOU0VSXzhfTU9UT1JfVU5ERVJWT0xU",
+ "QUdFEJc3EiEKHERJU1BFTlNFUl8xX1VQUEVSX0hBUkRfTElNSVQQmDcSIQoc",
+ "RElTUEVOU0VSXzJfVVBQRVJfSEFSRF9MSU1JVBCZNxIhChxESVNQRU5TRVJf",
+ "M19VUFBFUl9IQVJEX0xJTUlUEJo3EiEKHERJU1BFTlNFUl80X1VQUEVSX0hB",
+ "UkRfTElNSVQQmzcSIQocRElTUEVOU0VSXzVfVVBQRVJfSEFSRF9MSU1JVBCc",
+ "NxIhChxESVNQRU5TRVJfNl9VUFBFUl9IQVJEX0xJTUlUEJ03EiEKHERJU1BF",
+ "TlNFUl83X1VQUEVSX0hBUkRfTElNSVQQnjcSIQocRElTUEVOU0VSXzhfVVBQ",
+ "RVJfSEFSRF9MSU1JVBCfNxIhChxESVNQRU5TRVJfMV9MT1dFUl9IQVJEX0xJ",
+ "TUlUEKA3EiEKHERJU1BFTlNFUl8yX0xPV0VSX0hBUkRfTElNSVQQoTcSIQoc",
+ "RElTUEVOU0VSXzNfTE9XRVJfSEFSRF9MSU1JVBCiNxIhChxESVNQRU5TRVJf",
+ "NF9MT1dFUl9IQVJEX0xJTUlUEKM3EiEKHERJU1BFTlNFUl81X0xPV0VSX0hB",
+ "UkRfTElNSVQQpDcSIQocRElTUEVOU0VSXzZfTE9XRVJfSEFSRF9MSU1JVBCl",
+ "NxIhChxESVNQRU5TRVJfN19MT1dFUl9IQVJEX0xJTUlUEKY3EiEKHERJU1BF",
+ "TlNFUl84X0xPV0VSX0hBUkRfTElNSVQQpzcSHgoZRElTUEVOU0VSXzFfSElH",
+ "SF9QUkVTU1VSRRCoNxIeChlESVNQRU5TRVJfMl9ISUdIX1BSRVNTVVJFEKk3",
+ "Eh4KGURJU1BFTlNFUl8zX0hJR0hfUFJFU1NVUkUQqjcSHgoZRElTUEVOU0VS",
+ "XzRfSElHSF9QUkVTU1VSRRCrNxIeChlESVNQRU5TRVJfNV9ISUdIX1BSRVNT",
+ "VVJFEKw3Eh4KGURJU1BFTlNFUl82X0hJR0hfUFJFU1NVUkUQrTcSHgoZRElT",
+ "UEVOU0VSXzdfSElHSF9QUkVTU1VSRRCuNxIeChlESVNQRU5TRVJfOF9ISUdI",
+ "X1BSRVNTVVJFEK83EhkKFE1JRF9UQU5LXzFfTE9XX0xFVkVMEMA+EhkKFE1J",
+ "RF9UQU5LXzJfTE9XX0xFVkVMEME+EhkKFE1JRF9UQU5LXzNfTE9XX0xFVkVM",
+ "EMI+EhkKFE1JRF9UQU5LXzRfTE9XX0xFVkVMEMM+EhkKFE1JRF9UQU5LXzVf",
+ "TE9XX0xFVkVMEMQ+EhkKFE1JRF9UQU5LXzZfTE9XX0xFVkVMEMU+EhkKFE1J",
+ "RF9UQU5LXzdfTE9XX0xFVkVMEMY+EhkKFE1JRF9UQU5LXzhfTE9XX0xFVkVM",
+ "EMc+EhUKEE1JRF9UQU5LXzFfRU1QVFkQyD4SFQoQTUlEX1RBTktfMl9FTVBU",
+ "WRDJPhIVChBNSURfVEFOS18zX0VNUFRZEMo+EhUKEE1JRF9UQU5LXzRfRU1Q",
+ "VFkQyz4SFQoQTUlEX1RBTktfNV9FTVBUWRDMPhIVChBNSURfVEFOS182X0VN",
+ "UFRZEM0+EhUKEE1JRF9UQU5LXzdfRU1QVFkQzj4SFQoQTUlEX1RBTktfOF9F",
+ "TVBUWRDPPhIYChNNSURfVEFOS18xX09WRVJGTE9XENA+EhgKE01JRF9UQU5L",
+ "XzJfT1ZFUkZMT1cQ0T4SGAoTTUlEX1RBTktfM19PVkVSRkxPVxDSPhIYChNN",
+ "SURfVEFOS180X09WRVJGTE9XENM+EhgKE01JRF9UQU5LXzVfT1ZFUkZMT1cQ",
+ "1D4SGAoTTUlEX1RBTktfNl9PVkVSRkxPVxDVPhIYChNNSURfVEFOS183X09W",
+ "RVJGTE9XENY+EhgKE01JRF9UQU5LXzhfT1ZFUkZMT1cQ1z4SHAoXTUlEX1RB",
+ "TktfMV9GSUxMX1RJTUVPVVQQ2D4SHAoXTUlEX1RBTktfMl9GSUxMX1RJTUVP",
+ "VVQQ2T4SHAoXTUlEX1RBTktfM19GSUxMX1RJTUVPVVQQ2j4SHAoXTUlEX1RB",
+ "TktfNF9GSUxMX1RJTUVPVVQQ2z4SHAoXTUlEX1RBTktfNV9GSUxMX1RJTUVP",
+ "VVQQ3D4SHAoXTUlEX1RBTktfNl9GSUxMX1RJTUVPVVQQ3T4SHAoXTUlEX1RB",
+ "TktfN19GSUxMX1RJTUVPVVQQ3j4SHAoXTUlEX1RBTktfOF9GSUxMX1RJTUVP",
+ "VVQQ3z4SHQoYQUlSX0ZJTFRFUl9OT1RfSU5TVEFMTEVEEKhGEhcKEkFJUl9G",
+ "SUxURVJfQ0xPR0dFRBCpRhIlCiBXQVNURV9DT05UQUlORVJfRU1QVFlJTkdf",
+ "VElNRU9VVBCqRhIUCg9OT19BSVJfUFJFU1NVUkUQq0YSHQoYV0FTVEVfQ09O",
+ "VEFJTkVSX09WRVJGTE9XEKxGEhoKFVZPQ19TRU5TT1JfQUxBUk1fVElNRRCt",
+ "RhIYChNDSElMTEVSX0RSWV9DT05UQUNUEK5GEhoKFUlOU1VGRklDSUVOVF9B",
+ "SVJfRkxPVxCvRhIbChZWT0NfU0VOU09SX0FMQVJNX1NMT1BFELBGEioKJUlO",
+ "S19DQVJUUklER0VfUFJFU0VOQ0VfU0VOU09SX1RJTUVPVVQQkE4SHwoaSU5L",
+ "X0NBUlRSSURHRV9SRklEX1RJTUVPVVQQkU4SIQocTk9fV0FTVEVfQ0FSVFJJ",
+ "REdFX0FWQUlMQUJMRRCSThIeChlBTExfV0FTVEVfQ0FSVFJJREdFU19GVUxM",
+ "EJNOEiwKJ1dBU1RFX0NBUlRSSURHRV9QUkVTRU5DRV9TRU5TT1JfVElNRU9V",
+ "VBCUThIhChxXQVNURV9DQVJUUklER0VfUkZJRF9USU1FT1VUEJVOQiEKH2Nv",
+ "bS50d2luZS50YW5nby5wbXIuZGlhZ25vc3RpY3NiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Diagnostics.EventType), }, null));
@@ -293,6 +294,22 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("JOB_STATUS")] JobStatus = 1009,
/// <summary>
+ ///A job has been been started (Group = Application, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("JOB_STARTED")] JobStarted = 1010,
+ /// <summary>
+ ///A job has been been aborted (Group = Application, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("JOB_ABORTED")] JobAborted = 1011,
+ /// <summary>
+ ///A job has failed (Group = Application, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("JOB_FAILED")] JobFailed = 1012,
+ /// <summary>
+ ///Job completed successfully (Group = Application, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("JOB_COMPLETED")] JobCompleted = 1013,
+ /// <summary>
///Could not complete power-up (Group = GeneralHardware, Category = Critical)
/// </summary>
[pbr::OriginalName("POWER_UP_BIT_FAILURE")] PowerUpBitFailure = 2000,
@@ -353,11 +370,11 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("MACHINE_STATE_HW_CONFIG_FAILED")] MachineStateHwConfigFailed = 2014,
/// <summary>
- ///MACHINE_STATE_INITIAL_BLOWER_FAILED (Group = GeneralHardware, Category = Error)
+ /// (Group = GeneralHardware, Category = Error)
/// </summary>
[pbr::OriginalName("MACHINE_STATE_INITIAL_BLOWER_FAILED")] MachineStateInitialBlowerFailed = 2015,
/// <summary>
- ///UNSPECIFIED ERROR (Group = GeneralHardware, Category = Error)
+ ///Unknown error occurred (Group = GeneralHardware, Category = Error)
/// </summary>
[pbr::OriginalName("UNSPECIFIED")] Unspecified = 2016,
/// <summary>
@@ -593,15 +610,15 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("DRYER_ZONE_2_OVERTEMPERATURE")] DryerZone2Overtemperature = 4006,
/// <summary>
- ///The temperature in dryer zone 1 is too low (Group = Dryer, Category = Critical)
+ ///The temperature in dryer zone 1 is too low (Group = Dryer, Category = Warning)
/// </summary>
[pbr::OriginalName("DRYER_ZONE_1_UNDERTEMPERATURE_A")] DryerZone1UndertemperatureA = 4007,
/// <summary>
- ///The temperature in dryer zone 1 is too low (Group = Dryer, Category = Critical)
+ ///The temperature in dryer zone 1 is too low (Group = Dryer, Category = Error)
/// </summary>
[pbr::OriginalName("DRYER_ZONE_1_UNDERTEMPERATURE_B")] DryerZone1UndertemperatureB = 4008,
/// <summary>
- ///The temperature in dryer zone 2 is too low (Group = Dryer, Category = Critical)
+ ///The temperature in dryer zone 2 is too low (Group = Dryer, Category = Error)
/// </summary>
[pbr::OriginalName("DRYER_ZONE_2_UNDERTEMPERATURE_B")] DryerZone2UndertemperatureB = 4009,
/// <summary>
@@ -649,7 +666,7 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("DRYER_LID_MOTOR_UNDERVOLTAGE")] DryerLidMotorUndervoltage = 4020,
/// <summary>
- ///The temperature in dryer zone 2 is too low (Group = Dryer, Category = Critical)
+ ///The temperature in dryer zone 2 is too low (Group = Dryer, Category = Warning)
/// </summary>
[pbr::OriginalName("DRYER_ZONE_2_UNDERTEMPERATURE_A")] DryerZone2UndertemperatureA = 4021,
/// <summary>
@@ -677,51 +694,51 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_6_OVERTEMPERATURE")] DyeingHeadZone6Overtemperature = 5005,
/// <summary>
- ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Warning)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_1_UNDERTEMPERATURE_A")] DyeingHeadZone1UndertemperatureA = 5006,
/// <summary>
- ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Warning)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_A")] DyeingHeadZone2UndertemperatureA = 5007,
/// <summary>
- ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Warning)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_A")] DyeingHeadZone3UndertemperatureA = 5008,
/// <summary>
- ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Warning)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_4_UNDERTEMPERATURE_A")] DyeingHeadZone4UndertemperatureA = 5009,
/// <summary>
- ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Warning)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_5_UNDERTEMPERATURE_A")] DyeingHeadZone5UndertemperatureA = 5010,
/// <summary>
- ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Warning)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_6_UNDERTEMPERATURE_A")] DyeingHeadZone6UndertemperatureA = 5011,
/// <summary>
- ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_1_UNDERTEMPERATURE_B")] DyeingHeadZone1UndertemperatureB = 5012,
/// <summary>
- ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_B")] DyeingHeadZone2UndertemperatureB = 5013,
/// <summary>
- ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_B")] DyeingHeadZone3UndertemperatureB = 5014,
/// <summary>
- ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_4_UNDERTEMPERATURE_B")] DyeingHeadZone4UndertemperatureB = 5015,
/// <summary>
- ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_5_UNDERTEMPERATURE_B")] DyeingHeadZone5UndertemperatureB = 5016,
/// <summary>
- ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too low (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_6_UNDERTEMPERATURE_B")] DyeingHeadZone6UndertemperatureB = 5017,
/// <summary>
@@ -829,11 +846,11 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("MIXER_OVERTEMPERATURE")] MixerOvertemperature = 6000,
/// <summary>
- ///The temperature in the mixer is too low (Group = Mixer, Category = Critical)
+ ///The temperature in the mixer is too low (Group = Mixer, Category = Warning)
/// </summary>
[pbr::OriginalName("MIXER_UNDERTEMPERATURE_A")] MixerUndertemperatureA = 6001,
/// <summary>
- ///The temperature in the mixer is too low (Group = Mixer, Category = Critical)
+ ///The temperature in the mixer is too low (Group = Mixer, Category = Error)
/// </summary>
[pbr::OriginalName("MIXER_UNDERTEMPERATURE_B")] MixerUndertemperatureB = 6002,
/// <summary>
diff --git a/Software/Visual_Studio/Tango.PMR/Printing/JobTicket.cs b/Software/Visual_Studio/Tango.PMR/Printing/JobTicket.cs
index 3c6c56b85..7468346e4 100644
--- a/Software/Visual_Studio/Tango.PMR/Printing/JobTicket.cs
+++ b/Software/Visual_Studio/Tango.PMR/Printing/JobTicket.cs
@@ -25,7 +25,7 @@ namespace Tango.PMR.Printing {
"Cg9Kb2JUaWNrZXQucHJvdG8SElRhbmdvLlBNUi5QcmludGluZxoQSm9iU2Vn",
"bWVudC5wcm90bxoXUHJvY2Vzc1BhcmFtZXRlcnMucHJvdG8aFkpvYldpbmRp",
"bmdNZXRob2QucHJvdG8aDkpvYlNwb29sLnByb3RvGhdKb2JVcGxvYWRTdHJh",
- "dGVneS5wcm90byLDAwoJSm9iVGlja2V0EgwKBEd1aWQYASABKAkSDAoETmFt",
+ "dGVneS5wcm90byLpAwoJSm9iVGlja2V0EgwKBEd1aWQYASABKAkSDAoETmFt",
"ZRgCIAEoCRIaChJFbmFibGVJbnRlclNlZ21lbnQYAyABKAgSGgoSSW50ZXJT",
"ZWdtZW50TGVuZ3RoGAQgASgBEg4KBkxlbmd0aBgFIAEoARJAChFQcm9jZXNz",
"UGFyYW1ldGVycxgGIAEoCzIlLlRhbmdvLlBNUi5QcmludGluZy5Qcm9jZXNz",
@@ -35,12 +35,13 @@ namespace Tango.PMR.Printing {
"Hi5UYW5nby5QTVIuUHJpbnRpbmcuSm9iU2VnbWVudBI9Cg5VcGxvYWRTdHJh",
"dGVneRgKIAEoDjIlLlRhbmdvLlBNUi5QcmludGluZy5Kb2JVcGxvYWRTdHJh",
"dGVneRIaChJKb2JEZXNjcmlwdGlvbkZpbGUYCyABKAkSGQoRRW5hYmxlTHVi",
- "cmljYXRpb24YDCABKAhCHgocY29tLnR3aW5lLnRhbmdvLnBtci5wcmludGlu",
- "Z2IGcHJvdG8z"));
+ "cmljYXRpb24YDCABKAgSDQoFdW5pdHMYDSABKA0SFQoNU2FtcGxlV2luZGlu",
+ "ZxgOIAEoCEIeChxjb20udHdpbmUudGFuZ28ucG1yLnByaW50aW5nYgZwcm90",
+ "bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Tango.PMR.Printing.JobSegmentReflection.Descriptor, global::Tango.PMR.Printing.ProcessParametersReflection.Descriptor, global::Tango.PMR.Printing.JobWindingMethodReflection.Descriptor, global::Tango.PMR.Printing.JobSpoolReflection.Descriptor, global::Tango.PMR.Printing.JobUploadStrategyReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.JobTicket), global::Tango.PMR.Printing.JobTicket.Parser, new[]{ "Guid", "Name", "EnableInterSegment", "InterSegmentLength", "Length", "ProcessParameters", "WindingMethod", "Spool", "Segments", "UploadStrategy", "JobDescriptionFile", "EnableLubrication" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.JobTicket), global::Tango.PMR.Printing.JobTicket.Parser, new[]{ "Guid", "Name", "EnableInterSegment", "InterSegmentLength", "Length", "ProcessParameters", "WindingMethod", "Spool", "Segments", "UploadStrategy", "JobDescriptionFile", "EnableLubrication", "Units", "SampleWinding" }, null, null, null)
}));
}
#endregion
@@ -83,6 +84,8 @@ namespace Tango.PMR.Printing {
uploadStrategy_ = other.uploadStrategy_;
jobDescriptionFile_ = other.jobDescriptionFile_;
enableLubrication_ = other.enableLubrication_;
+ units_ = other.units_;
+ sampleWinding_ = other.sampleWinding_;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -221,6 +224,34 @@ namespace Tango.PMR.Printing {
}
}
+ /// <summary>Field number for the "units" field.</summary>
+ public const int UnitsFieldNumber = 13;
+ private uint units_;
+ /// <summary>
+ ///repeat the job
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public uint Units {
+ get { return units_; }
+ set {
+ units_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "SampleWinding" field.</summary>
+ public const int SampleWindingFieldNumber = 14;
+ private bool sampleWinding_;
+ /// <summary>
+ ///sample winding winds each segment densely on a small part of the spool, end moves one for the next segment
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool SampleWinding {
+ get { return sampleWinding_; }
+ set {
+ sampleWinding_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as JobTicket);
@@ -246,6 +277,8 @@ namespace Tango.PMR.Printing {
if (UploadStrategy != other.UploadStrategy) return false;
if (JobDescriptionFile != other.JobDescriptionFile) return false;
if (EnableLubrication != other.EnableLubrication) return false;
+ if (Units != other.Units) return false;
+ if (SampleWinding != other.SampleWinding) return false;
return true;
}
@@ -264,6 +297,8 @@ namespace Tango.PMR.Printing {
if (UploadStrategy != 0) hash ^= UploadStrategy.GetHashCode();
if (JobDescriptionFile.Length != 0) hash ^= JobDescriptionFile.GetHashCode();
if (EnableLubrication != false) hash ^= EnableLubrication.GetHashCode();
+ if (Units != 0) hash ^= Units.GetHashCode();
+ if (SampleWinding != false) hash ^= SampleWinding.GetHashCode();
return hash;
}
@@ -319,6 +354,14 @@ namespace Tango.PMR.Printing {
output.WriteRawTag(96);
output.WriteBool(EnableLubrication);
}
+ if (Units != 0) {
+ output.WriteRawTag(104);
+ output.WriteUInt32(Units);
+ }
+ if (SampleWinding != false) {
+ output.WriteRawTag(112);
+ output.WriteBool(SampleWinding);
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -358,6 +401,12 @@ namespace Tango.PMR.Printing {
if (EnableLubrication != false) {
size += 1 + 1;
}
+ if (Units != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Units);
+ }
+ if (SampleWinding != false) {
+ size += 1 + 1;
+ }
return size;
}
@@ -406,6 +455,12 @@ namespace Tango.PMR.Printing {
if (other.EnableLubrication != false) {
EnableLubrication = other.EnableLubrication;
}
+ if (other.Units != 0) {
+ Units = other.Units;
+ }
+ if (other.SampleWinding != false) {
+ SampleWinding = other.SampleWinding;
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -470,6 +525,14 @@ namespace Tango.PMR.Printing {
EnableLubrication = input.ReadBool();
break;
}
+ case 104: {
+ Units = input.ReadUInt32();
+ break;
+ }
+ case 112: {
+ SampleWinding = input.ReadBool();
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml
index 8d5e99f72..ae4b234b6 100644
--- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml
+++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml
Binary files differ
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs b/Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs
index 69e1d00b8..dcd643ace 100644
--- a/Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs
+++ b/Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs
@@ -525,18 +525,21 @@ namespace Tango.Touch.Controls
double position_y = e.Location.Y - _mouse_down_location.Y;
double bottom_offset = -(_grid_content.ActualHeight - (_border_viewport.ActualHeight + -position_y));
- _grid_content.BeginAnimation(Grid.MarginProperty, null);
+ if (_grid_content.ActualHeight > _border_viewport.ActualHeight)
+ {
+ _grid_content.BeginAnimation(Grid.MarginProperty, null);
- _grid_content.Margin = new Thickness(0, position_y, 0, 0);
+ _grid_content.Margin = new Thickness(0, position_y, 0, 0);
- if (_grid_content.Margin.Top > 0)
- {
- _grid_content.Margin = new Thickness(0, 0, 0, 0);
- }
+ if (_grid_content.Margin.Top > 0)
+ {
+ _grid_content.Margin = new Thickness(0, 0, 0, 0);
+ }
- if (_grid_content.Margin.Top < -(_grid_content.ActualHeight - _border_viewport.ActualHeight))
- {
- _grid_content.Margin = new Thickness(0, -(_grid_content.ActualHeight - _border_viewport.ActualHeight), 0, 0);
+ if (_grid_content.Margin.Top < -(_grid_content.ActualHeight - _border_viewport.ActualHeight))
+ {
+ _grid_content.Margin = new Thickness(0, -(_grid_content.ActualHeight - _border_viewport.ActualHeight), 0, 0);
+ }
}
if (position_y > 0)
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Events.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Events.xlsx
index a89765a30..a9183ec04 100644
--- a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Events.xlsx
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Events.xlsx
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs
index 21887a9f7..6797ac085 100644
--- a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs
@@ -46,9 +46,6 @@ namespace Tango.EventsTypesGenerator
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
- //Console.WriteLine("Clearing all event types...");
- //db.Database.ExecuteSqlCommand("DELETE FROM EVENT_TYPES");
-
foreach (var evType in results)
{
bool isNewEvent = false;
@@ -82,22 +79,22 @@ namespace Tango.EventsTypesGenerator
//TODO: Do this when Nadav fixes the excel.
- if (evType.ActionsUI != null)
- {
- List<EventTypeActions> actions = new List<EventTypeActions>();
+ //if (evType.ActionsUI != null)
+ //{
+ // List<EventTypeActions> actions = new List<EventTypeActions>();
- foreach (var item in evType.ActionsUI.Split('\n'))
- {
- EventTypeActions type;
+ // foreach (var item in evType.ActionsUI.Split('\n'))
+ // {
+ // EventTypeActions type;
- if (Enum.TryParse<EventTypeActions>(item.Replace(" ", ""), true, out type))
- {
- actions.Add(type);
- }
- }
+ // if (Enum.TryParse<EventTypeActions>(item.Replace(" ", ""), true, out type))
+ // {
+ // actions.Add(type);
+ // }
+ // }
- newEvent.Actions = new ReadOnlyCollection<EventTypeActions>(actions);
- }
+ // newEvent.Actions = new ReadOnlyCollection<EventTypeActions>(actions);
+ //}
newEvent.RequiresUserIntervention = evType.UserInterventionRequired == "Yes";