From 8a1e772f025eaf3bfdf17905d9e33c460993e559 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Mon, 1 Jul 2019 17:56:49 +0300 Subject: Many bug fixes !!! --- .../Views/MainView.xaml | 98 +++-- .../Native/Tango.ColorLib/ColorConverter.cpp | 56 +-- .../Native/Tango.ColorLib/Exports.cpp | 2 +- .../Tango.ColorLib/PMR/ColorLab/ColorSpace.pb-c.c | 4 +- .../Tango.ColorLib/PMR/ColorLab/ColorSpace.pb-c.h | 2 +- .../Tango.ColorLib/PMR/ColorLab/LiquidType.pb-c.c | 8 +- .../Tango.ColorLib/PMR/ColorLab/LiquidType.pb-c.h | 2 +- .../PMR/ColorLab/OutputCoordinates.pb-c.c | 45 +- .../PMR/ColorLab/OutputCoordinates.pb-c.h | 8 +- .../Converters/MachineEventToViewConverter.cs | 24 +- .../Tango.PPC.Events/EventsViews/JobEventView.xaml | 27 ++ .../EventsViews/JobEventView.xaml.cs | 28 ++ .../Tango.PPC.Events/Tango.PPC.Events.csproj | 9 +- .../Tango.PPC.Events/ViewModels/MainViewVM.cs | 6 +- .../Modules/Tango.PPC.Events/Views/MainView.xaml | 2 +- .../Dialogs/BasicColorCorrectionView.xaml | 25 ++ .../Tango.PPC.Jobs/ViewModels/JobSummeryViewVM.cs | 2 +- .../Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs | 47 +- .../Modules/Tango.PPC.Jobs/Views/JobsView.xaml.cs | 30 +- .../EventLogging/DefaultEventLogger.cs | 45 ++ .../Connectivity/DefaultConnectivityProvider.cs | 35 ++ .../Printing/DefaultPrintingManager.cs | 22 + .../Visual_Studio/PPC/Tango.PPC.UI/app.manifest | 2 +- .../ColorConversion/TangoColorConverter.cs | 5 + .../Visual_Studio/Tango.BL/Entities/BrushStop.cs | 2 +- Software/Visual_Studio/Tango.BL/Entities/Job.cs | 4 + .../Tango.BL/Entities/MachinesEvent.cs | 9 + .../Tango.BL/Enumerations/EventTypes.cs | 32 +- .../Visual_Studio/Tango.BL/ObservableEntity.cs | 5 + .../Tango.Integration/Operation/MachineOperator.cs | 37 +- .../Tango.PMR/Diagnostics/EventType.cs | 481 +++++++++++---------- .../Visual_Studio/Tango.PMR/Printing/JobTicket.cs | 71 ++- .../SQLExaminer/Configurations/UpdateMachine.xml | Bin 41074 -> 38534 bytes .../Tango.Touch/Controls/LightTouchScrollViewer.cs | 21 +- .../Tango.EventsTypesGenerator/Events.xlsx | Bin 53458 -> 53943 bytes .../Tango.EventsTypesGenerator/Program.cs | 29 +- 36 files changed, 830 insertions(+), 395 deletions(-) create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/JobEventView.xaml create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/JobEventView.xaml.cs (limited to 'Software/Visual_Studio') 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 @@ - - - R - - - - - - - - - - - - G - - - - - - - - - - - B - - - - - - - - - + + + + R + + + + + + + + + + + + G + + + + + + + + + + + B + + + + + + + + + + + + + L + + + + + + + + A + + + + + + + + B + + + + + + + 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 _views = new List(); + private static Dictionary _eventViews = new Dictionary(); + + 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(); - return view; + view = Activator.CreateInstance(); } + + 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 @@ + + + + + + + + + + + + + + + + + + + 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 +{ + /// + /// Interaction logic for JobEventView.xaml + /// + 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 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + MSBuild:Compile Designer @@ -91,6 +95,9 @@ GeneralView.xaml + + JobEventView.xaml + Code @@ -173,7 +180,7 @@ - + \ 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(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 @@ - + 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 @@ + + + , , + + + + + , + , + + 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(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(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(); + } + /// /// Saves the job. /// @@ -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(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 @@ -114,6 +119,46 @@ namespace Tango.PPC.Common.EventLogging #region Event Handlers + /// + /// Handles the PrintingFailed event of the MachineOperator. + /// + /// The source of the event. + /// The instance containing the event data. + private void MachineOperator_PrintingFailed(object sender, PrintingFailedEventArgs e) + { + Log(EventTypes.JOB_FAILED, e.Exception.Message); + } + + /// + /// Handles the PrintingCompleted event of the MachineOperator. + /// + /// The source of the event. + /// The instance containing the event data. + private void MachineOperator_PrintingCompleted(object sender, PrintingEventArgs e) + { + Log(EventTypes.JOB_COMPLETED, $"Job '{e.Job.Name}' completed successfully."); + } + + /// + /// Handles the PrintingAborted event of the MachineOperator. + /// + /// The source of the event. + /// The instance containing the event data. + private void MachineOperator_PrintingAborted(object sender, PrintingEventArgs e) + { + Log(EventTypes.JOB_ABORTED, $"Job '{e.Job.Name}' has been aborted."); + } + + /// + /// Handles the PrintingStarted event of the MachineOperator. + /// + /// The source of the event. + /// The instance containing the event data. + private void MachineOperator_PrintingStarted(object sender, PrintingEventArgs e) + { + Log(EventTypes.JOB_STARTED, $"Job '{e.Job.Name}' started."); + } + /// /// Handles the machine operator state changed event. /// 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; /// /// 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(); + } + + /// + /// Periodically checks if WiFI network is gone/disconnected. + /// + /// The source of the event. + /// The instance containing the event data. + 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); + } + } } /// @@ -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 /// if set to true [connected]. 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 /// public async Task Print(Job job, ObservablesContext context) { + ThrowIfJobInvalid(job); + JobHandler handler = null; #if STUBPRINT @@ -149,6 +151,8 @@ namespace Tango.PPC.UI.Printing /// public async Task 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 /// public async Task PrintFineTuning(Job job, ObservablesContext context, IEnumerable 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. --> - + 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; + } + /// /// Initializes a new instance of the class. /// 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 @@ -79,6 +79,30 @@ namespace Tango.BL.Enumerations [Description("Job status message has been received from embedded device")] JOB_STATUS = 1009, + /// + /// (A job has been been started) + /// + [Description("A job has been been started")] + JOB_STARTED = 1010, + + /// + /// (A job has been been aborted) + /// + [Description("A job has been been aborted")] + JOB_ABORTED = 1011, + + /// + /// (A job has failed) + /// + [Description("A job has failed")] + JOB_FAILED = 1012, + + /// + /// (Job completed successfully) + /// + [Description("Job completed successfully")] + JOB_COMPLETED = 1013, + /// /// (Could not complete power-up ) /// @@ -170,15 +194,15 @@ namespace Tango.BL.Enumerations MACHINE_STATE_HW_CONFIG_FAILED = 2014, /// - /// (MACHINE_STATE_INITIAL_BLOWER_FAILED) + /// () /// - [Description("MACHINE_STATE_INITIAL_BLOWER_FAILED")] + [Description("")] MACHINE_STATE_INITIAL_BLOWER_FAILED = 2015, /// - /// (UNSPECIFIED ERROR) + /// (Unknown error occurred) /// - [Description("UNSPECIFIED ERROR")] + [Description("Unknown error occurred")] UNSPECIFIED = 2016, /// 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(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 { /// [pbr::OriginalName("JOB_STATUS")] JobStatus = 1009, /// + ///A job has been been started (Group = Application, Category = Info) + /// + [pbr::OriginalName("JOB_STARTED")] JobStarted = 1010, + /// + ///A job has been been aborted (Group = Application, Category = Info) + /// + [pbr::OriginalName("JOB_ABORTED")] JobAborted = 1011, + /// + ///A job has failed (Group = Application, Category = Error) + /// + [pbr::OriginalName("JOB_FAILED")] JobFailed = 1012, + /// + ///Job completed successfully (Group = Application, Category = Info) + /// + [pbr::OriginalName("JOB_COMPLETED")] JobCompleted = 1013, + /// ///Could not complete power-up (Group = GeneralHardware, Category = Critical) /// [pbr::OriginalName("POWER_UP_BIT_FAILURE")] PowerUpBitFailure = 2000, @@ -353,11 +370,11 @@ namespace Tango.PMR.Diagnostics { /// [pbr::OriginalName("MACHINE_STATE_HW_CONFIG_FAILED")] MachineStateHwConfigFailed = 2014, /// - ///MACHINE_STATE_INITIAL_BLOWER_FAILED (Group = GeneralHardware, Category = Error) + /// (Group = GeneralHardware, Category = Error) /// [pbr::OriginalName("MACHINE_STATE_INITIAL_BLOWER_FAILED")] MachineStateInitialBlowerFailed = 2015, /// - ///UNSPECIFIED ERROR (Group = GeneralHardware, Category = Error) + ///Unknown error occurred (Group = GeneralHardware, Category = Error) /// [pbr::OriginalName("UNSPECIFIED")] Unspecified = 2016, /// @@ -593,15 +610,15 @@ namespace Tango.PMR.Diagnostics { /// [pbr::OriginalName("DRYER_ZONE_2_OVERTEMPERATURE")] DryerZone2Overtemperature = 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) /// [pbr::OriginalName("DRYER_ZONE_1_UNDERTEMPERATURE_A")] DryerZone1UndertemperatureA = 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) /// [pbr::OriginalName("DRYER_ZONE_1_UNDERTEMPERATURE_B")] DryerZone1UndertemperatureB = 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) /// [pbr::OriginalName("DRYER_ZONE_2_UNDERTEMPERATURE_B")] DryerZone2UndertemperatureB = 4009, /// @@ -649,7 +666,7 @@ namespace Tango.PMR.Diagnostics { /// [pbr::OriginalName("DRYER_LID_MOTOR_UNDERVOLTAGE")] DryerLidMotorUndervoltage = 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) /// [pbr::OriginalName("DRYER_ZONE_2_UNDERTEMPERATURE_A")] DryerZone2UndertemperatureA = 4021, /// @@ -677,51 +694,51 @@ namespace Tango.PMR.Diagnostics { /// [pbr::OriginalName("DYEING_HEAD_ZONE_6_OVERTEMPERATURE")] DyeingHeadZone6Overtemperature = 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) /// [pbr::OriginalName("DYEING_HEAD_ZONE_1_UNDERTEMPERATURE_A")] DyeingHeadZone1UndertemperatureA = 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) /// [pbr::OriginalName("DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_A")] DyeingHeadZone2UndertemperatureA = 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) /// [pbr::OriginalName("DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_A")] DyeingHeadZone3UndertemperatureA = 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) /// [pbr::OriginalName("DYEING_HEAD_ZONE_4_UNDERTEMPERATURE_A")] DyeingHeadZone4UndertemperatureA = 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) /// [pbr::OriginalName("DYEING_HEAD_ZONE_5_UNDERTEMPERATURE_A")] DyeingHeadZone5UndertemperatureA = 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) /// [pbr::OriginalName("DYEING_HEAD_ZONE_6_UNDERTEMPERATURE_A")] DyeingHeadZone6UndertemperatureA = 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) /// [pbr::OriginalName("DYEING_HEAD_ZONE_1_UNDERTEMPERATURE_B")] DyeingHeadZone1UndertemperatureB = 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) /// [pbr::OriginalName("DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_B")] DyeingHeadZone2UndertemperatureB = 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) /// [pbr::OriginalName("DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_B")] DyeingHeadZone3UndertemperatureB = 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) /// [pbr::OriginalName("DYEING_HEAD_ZONE_4_UNDERTEMPERATURE_B")] DyeingHeadZone4UndertemperatureB = 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) /// [pbr::OriginalName("DYEING_HEAD_ZONE_5_UNDERTEMPERATURE_B")] DyeingHeadZone5UndertemperatureB = 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) /// [pbr::OriginalName("DYEING_HEAD_ZONE_6_UNDERTEMPERATURE_B")] DyeingHeadZone6UndertemperatureB = 5017, /// @@ -829,11 +846,11 @@ namespace Tango.PMR.Diagnostics { /// [pbr::OriginalName("MIXER_OVERTEMPERATURE")] MixerOvertemperature = 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) /// [pbr::OriginalName("MIXER_UNDERTEMPERATURE_A")] MixerUndertemperatureA = 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) /// [pbr::OriginalName("MIXER_UNDERTEMPERATURE_B")] MixerUndertemperatureB = 6002, /// 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 { } } + /// Field number for the "units" field. + public const int UnitsFieldNumber = 13; + private uint units_; + /// + ///repeat the job + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint Units { + get { return units_; } + set { + units_ = value; + } + } + + /// Field number for the "SampleWinding" field. + public const int SampleWindingFieldNumber = 14; + private bool sampleWinding_; + /// + ///sample winding winds each segment densely on a small part of the spool, end moves one for the next segment + /// + [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 Binary files a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml and b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml 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 Binary files a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Events.xlsx and b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Events.xlsx 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 actions = new List(); + //if (evType.ActionsUI != null) + //{ + // List actions = new List(); - foreach (var item in evType.ActionsUI.Split('\n')) - { - EventTypeActions type; + // foreach (var item in evType.ActionsUI.Split('\n')) + // { + // EventTypeActions type; - if (Enum.TryParse(item.Replace(" ", ""), true, out type)) - { - actions.Add(type); - } - } + // if (Enum.TryParse(item.Replace(" ", ""), true, out type)) + // { + // actions.Add(type); + // } + // } - newEvent.Actions = new ReadOnlyCollection(actions); - } + // newEvent.Actions = new ReadOnlyCollection(actions); + //} newEvent.RequiresUserIntervention = evType.UserInterventionRequired == "Yes"; -- cgit v1.3.1