From cc2b95c9144d8a3486314766b645021a9a914d25 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Fri, 13 Dec 2019 02:14:37 +0200 Subject: Implemented power up screen. Implemented power on emulator. Implemented power via machine operator. --- .../PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs') diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs index 01a47539e..48e59562c 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs @@ -4,6 +4,9 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Threading; +using Tango.BL; +using Tango.BL.Builders; +using Tango.BL.Entities; using Tango.Core.DI; using Tango.Integration.ExternalBridge; using Tango.Integration.Operation; @@ -17,6 +20,7 @@ using Tango.PPC.Common.Notifications; using Tango.PPC.Common.WatchDog; using Tango.PPC.UI.Dialogs; using Tango.SharedUI; +using System.Data.Entity; namespace Tango.PPC.UI.ViewModels { @@ -58,6 +62,7 @@ namespace Tango.PPC.UI.ViewModels { base.OnApplicationReady(); MachineProvider.MachineOperator.CartridgeValidationRequestReceived += MachineOperator_CartridgeValidationRequestReceived; + MachineProvider.MachineOperator.PowerUpStarted += MachineOperator_PowerUpStarted; } #region Event Handlers @@ -92,6 +97,72 @@ namespace Tango.PPC.UI.ViewModels }); } + private async void MachineOperator_PowerUpStarted(object sender, EventArgs e) + { + LogManager.Log("Power up detected, showing power up screen..."); + + PowerUpViewVM vm; + + try + { + List rmls = new List(); + + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + rmls = await db.Rmls.ToListAsync(); + } + + var selectedRml = rmls.SingleOrDefault(x => x.Guid == Settings.LastPowerUpSelectedRmlGuid); + + vm = new PowerUpViewVM(); + vm.Rmls = rmls; + vm.SelectedRml = selectedRml != null ? selectedRml : rmls.FirstOrDefault(); + vm.IsSelectedRml = selectedRml != null; + } + catch (Exception ex) + { + LogManager.Log(ex, "Error initializing power up screen."); + return; + } + + InvokeUI(async () => + { + await NotificationProvider.ShowDialog(vm); + + await Task.Factory.StartNew(() => + { + try + { + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + List processTables = new List(); + + if (vm.IsSelectedRml) + { + processTables = new RmlBuilder(db).Set(vm.SelectedRml.Guid).WithActiveParametersGroup().Build().GetActiveProcessGroup().ProcessParametersTables.ToList(); + } + else + { + var rmlsToAvg = new RmlsCollectionBuilder(db).SetAll().WithActiveParametersGroup().Build(); + processTables = rmlsToAvg.Select(x => x.GetActiveProcessGroup()).SelectMany(x => x.ProcessParametersTables).ToList(); + } + + var processToLoad = processTables.OrderBy(x => x.GetAverageTemperature()).First(); + + var r = MachineProvider.MachineOperator.UploadProcessParameters(processToLoad).Result; + + Settings.LastPowerUpSelectedRmlGuid = vm.IsSelectedRml ? vm.SelectedRml.Guid : null; + Settings.Save(); + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error occurred while trying to get and upload the proper process parameters after power screen closed."); + } + }); + }); + } + #endregion } } -- cgit v1.3.1 From f73b77c8619d0fb49af93e4ac5c73dd13d5d1b1a Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Fri, 13 Dec 2019 16:49:52 +0200 Subject: Implemented site catalogs ! --- Software/DB/PPC/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/PPC/Tango_log.ldf | Bin 53673984 -> 53673984 bytes .../SQLExaminer Projects/Provision Machine.sdeproj | 327 ++++++++++++++++++++- Software/DB/TCC/TCC.mdf | Bin 8388608 -> 8388608 bytes Software/DB/TCC/TCC_log.ldf | Bin 8388608 -> 8388608 bytes Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 22675456 -> 22675456 bytes .../ViewModels/MainViewVM.cs | 2 +- .../Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs | 4 +- .../Tango.PPC.Jobs/ViewModels/JobsViewVM.cs | 10 +- .../ViewModels/MainViewVM.cs | 15 +- .../Tango.PPC.MachineSettings/Views/MainView.xaml | 2 +- .../PPC/Tango.PPC.Common/PPCSettings.cs | 6 + .../PPC/Tango.PPC.UI/Dialogs/PowerUpViewVM.cs | 4 +- .../PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs | 4 +- .../Tango.BL/Builders/CatalogBuilder.cs | 49 +++ .../Tango.BL/Builders/CatalogsCollectionBuilder.cs | 41 +++ .../Tango.BL/Builders/ColorCatalogBuilder.cs | 49 --- .../Tango.BL/Builders/RmlsCollectionBuilder.cs | 26 +- .../Visual_Studio/Tango.BL/DTO/SitesCatalogDTO.cs | 14 + .../Tango.BL/DTO/SitesCatalogDTOBase.cs | 41 +++ .../Tango.BL/Entities/HardwareBlowerBase.cs | 4 - .../Tango.BL/Entities/SitesCatalog.cs | 12 + .../Tango.BL/Entities/SitesCatalogBase.cs | 86 ++++++ .../Visual_Studio/Tango.BL/ObservablesContext.cs | 8 + .../ObservablesEntitiesAdapterExtension.cs | 38 +++ .../ObservablesStaticCollectionsExtension.cs | 38 +++ Software/Visual_Studio/Tango.BL/Tango.BL.csproj | 7 +- .../Tango.DAL.Remote/DB/RemoteADO.Context.cs | 1 + .../Tango.DAL.Remote/DB/RemoteADO.edmx | 33 +++ .../Tango.DAL.Remote/DB/RemoteADO.edmx.diagram | 153 +++++----- .../Tango.DAL.Remote/DB/SITES_CATALOGS.cs | 23 ++ .../Tango.DAL.Remote/Tango.DAL.Remote.csproj | 3 + .../Configurations/ProvisionMachine.xml | Bin 73758 -> 87374 bytes .../SQLExaminer/Configurations/UpdateMachine.xml | Bin 40278 -> 54676 bytes 35 files changed, 846 insertions(+), 154 deletions(-) create mode 100644 Software/Visual_Studio/Tango.BL/Builders/CatalogBuilder.cs create mode 100644 Software/Visual_Studio/Tango.BL/Builders/CatalogsCollectionBuilder.cs delete mode 100644 Software/Visual_Studio/Tango.BL/Builders/ColorCatalogBuilder.cs create mode 100644 Software/Visual_Studio/Tango.BL/DTO/SitesCatalogDTO.cs create mode 100644 Software/Visual_Studio/Tango.BL/DTO/SitesCatalogDTOBase.cs create mode 100644 Software/Visual_Studio/Tango.BL/Entities/SitesCatalog.cs create mode 100644 Software/Visual_Studio/Tango.BL/Entities/SitesCatalogBase.cs create mode 100644 Software/Visual_Studio/Tango.DAL.Remote/DB/SITES_CATALOGS.cs (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs') diff --git a/Software/DB/PPC/Tango.mdf b/Software/DB/PPC/Tango.mdf index 35dde42f3..ec8ed5ec8 100644 Binary files a/Software/DB/PPC/Tango.mdf and b/Software/DB/PPC/Tango.mdf differ diff --git a/Software/DB/PPC/Tango_log.ldf b/Software/DB/PPC/Tango_log.ldf index 60f6da390..91c5d6631 100644 Binary files a/Software/DB/PPC/Tango_log.ldf and b/Software/DB/PPC/Tango_log.ldf differ diff --git a/Software/DB/SQLExaminer Projects/Provision Machine.sdeproj b/Software/DB/SQLExaminer Projects/Provision Machine.sdeproj index 5f4b977ae..ede868748 100644 --- a/Software/DB/SQLExaminer Projects/Provision Machine.sdeproj +++ b/Software/DB/SQLExaminer Projects/Provision Machine.sdeproj @@ -95,6 +95,8 @@ + + @@ -125,6 +127,8 @@ + + @@ -133,6 +137,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -156,6 +211,7 @@ + @@ -369,6 +425,15 @@ + + + + + + + + + @@ -499,6 +564,8 @@ + + @@ -538,6 +605,8 @@ + + @@ -625,6 +694,11 @@ + + + + + @@ -638,6 +712,7 @@ + @@ -766,6 +841,8 @@ + + @@ -798,6 +875,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -831,6 +936,21 @@ + + + + + + + + + + + + + + + @@ -842,6 +962,7 @@ + @@ -957,7 +1078,7 @@ - + @@ -1035,7 +1156,7 @@ WHERE MACHINES.SERIAL_NUMBER = '@' - + @@ -1103,7 +1224,7 @@ WHERE MACHINES.SERIAL_NUMBER = '@' - + @@ -1113,6 +1234,7 @@ WHERE MACHINES.SERIAL_NUMBER = '@' + @@ -1165,7 +1287,7 @@ WHERE MACHINES.SERIAL_NUMBER = '@' - + @@ -1240,7 +1362,7 @@ WHERE MACHINES.SERIAL_NUMBER = '@' - + @@ -1312,7 +1434,7 @@ WHERE MACHINES.SERIAL_NUMBER = '@']]> - + @@ -1390,7 +1512,7 @@ WHERE MACHINES.SERIAL_NUMBER = '@' - + @@ -1420,6 +1542,11 @@ WHERE MACHINES.SERIAL_NUMBER = '@' + + + + + @@ -1498,7 +1625,7 @@ WHERE MACHINES.SERIAL_NUMBER = '@' - + @@ -1560,7 +1687,185 @@ WHERE MACHINES.SERIAL_NUMBER = '@' - + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + +
+
+
+
+
+ @@ -1621,7 +1926,7 @@ WHERE MACHINES.SERIAL_NUMBER = '@']]> - + @@ -1697,7 +2002,7 @@ WHERE MACHINES.SERIAL_NUMBER = '@' - + diff --git a/Software/DB/TCC/TCC.mdf b/Software/DB/TCC/TCC.mdf index 7acd2ca82..c6f9a4e37 100644 Binary files a/Software/DB/TCC/TCC.mdf and b/Software/DB/TCC/TCC.mdf differ diff --git a/Software/DB/TCC/TCC_log.ldf b/Software/DB/TCC/TCC_log.ldf index d61145d85..bb23dc9c6 100644 Binary files a/Software/DB/TCC/TCC_log.ldf and b/Software/DB/TCC/TCC_log.ldf differ diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index ddfd3abd8..4b4e5b56d 100644 Binary files a/Software/DB/Tango.mdf and b/Software/DB/Tango.mdf differ diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf index 58b7b4e60..369c83d64 100644 Binary files a/Software/DB/Tango_log.ldf and b/Software/DB/Tango_log.ldf differ diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Catalogs/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Catalogs/ViewModels/MainViewVM.cs index 3cc4406d6..4d88a71d9 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Catalogs/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Catalogs/ViewModels/MainViewVM.cs @@ -197,7 +197,7 @@ namespace Tango.MachineStudio.Catalogs.ViewModels _activeCatalogContext = ObservablesContext.CreateDefault(); - ActiveCatalog = await new ColorCatalogBuilder(_activeCatalogContext).Set(SelectedCatalog.Guid).WithGroups().WithItems().WithRecipes().BuildAsync(); + ActiveCatalog = await new CatalogBuilder(_activeCatalogContext).Set(SelectedCatalog.Guid).WithGroups().WithItems().WithRecipes().BuildAsync(); SelectedGroup = ActiveCatalog.ColorCatalogsGroups.FirstOrDefault(); RMLS = await _activeCatalogContext.Rmls.ToListAsync(); 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 dac8f9e49..0a5167900 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 @@ -468,7 +468,7 @@ namespace Tango.PPC.Jobs.ViewModels Job.ValidateOnPropertyChanged = true; LogManager.Log("Loading RMLS..."); - Rmls = (await new RmlsCollectionBuilder(_db).SetAll().WithActiveParametersGroup().WithCAT(Job.MachineGuid).WithCCT().WithLiquidFactors().BuildAsync()).ToList(); + Rmls = (await new RmlsCollectionBuilder(_db).SetAll().WithActiveParametersGroup().WithCAT(Job.MachineGuid).WithCCT().WithLiquidFactors().WithSite(MachineProvider.Machine.SiteGuid).BuildAsync()).ToList(); LogManager.Log("Loading Color Spaces..."); ColorSpaces = await _db.ColorSpaces.ToListAsync(); LogManager.Log("Loading Spool Types..."); @@ -478,7 +478,7 @@ namespace Tango.PPC.Jobs.ViewModels if (Job.ColorSpace.Space == BL.Enumerations.ColorSpaces.Catalog) { - SelectedCatalog = await new ColorCatalogBuilder(_db).Set(Job.ColorCatalogGuid).WithGroups().WithItems().BuildAsync(); + SelectedCatalog = await new CatalogBuilder(_db).Set(Job.ColorCatalogGuid).WithGroups().WithItems().BuildAsync(); if (SelectedCatalog != null) { diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs index e80154413..798b333e7 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs @@ -48,7 +48,8 @@ namespace Tango.PPC.Jobs.ViewModels public class JobsViewVM : PPCViewModel { private ObservablesContext _db; //Holds the db context for the job list. - private ObservableCollection _catalogs; //Holds the available color catalogs. + private ObservableCollection _catalogs; //Holds the available color catalogs for the site. + private ObservableCollection _rmls; //Holds the available RML for the site. public enum JobsCategory { @@ -505,7 +506,7 @@ namespace Tango.PPC.Jobs.ViewModels job.ColorSpaceGuid = Adapter.ColorSpaces.FirstOrDefault(x => x.Code == vm.SelectedColorSpace.ToInt32()).Guid; job.MachineGuid = MachineProvider.Machine.Guid; job.UserGuid = AuthenticationProvider.CurrentUser.Guid; - job.RmlGuid = Settings.DefaultRmlGuid != null ? Settings.DefaultRmlGuid : Adapter.Rmls.FirstOrDefault().Guid; + job.RmlGuid = Settings.DefaultRmlGuid != null ? Settings.DefaultRmlGuid : _rmls.FirstOrDefault().Guid; job.WindingMethodGuid = Adapter.WindingMethods.FirstOrDefault().Guid; job.SpoolTypeGuid = Settings.DefaultSpoolTypeGuid != null ? Settings.DefaultSpoolTypeGuid : Adapter.SpoolTypes.FirstOrDefault().Guid; @@ -726,9 +727,10 @@ namespace Tango.PPC.Jobs.ViewModels StorageProvider.RegisterFileHandler(ExplorerFileDefinition.Pulse.Extension, HandlePulseFileLoaded); //Load catalogs. - using (ObservablesContext c = ObservablesContext.CreateDefault()) + using (ObservablesContext db = ObservablesContext.CreateDefault()) { - _catalogs = (await c.ColorCatalogs.ToListAsync()).ToObservableCollection(); + _catalogs = await new CatalogsCollectionBuilder(db).SetAll().WithSite(MachineProvider.Machine.SiteGuid).BuildAsync(); + _rmls = await new RmlsCollectionBuilder(db).SetAll().WithSite(MachineProvider.Machine.SiteGuid).BuildAsync(); } MachineDataSynchronizer.SynchronizationEnded += MachineDataSynchronizer_SynchronizationEnded; diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs index 1af9b8609..d12617264 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs @@ -9,6 +9,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Data; using Tango.BL; +using Tango.BL.Builders; using Tango.BL.Entities; using Tango.BL.Enumerations; using Tango.Core.Commands; @@ -52,6 +53,13 @@ namespace Tango.PPC.MachineSettings.ViewModels set { _selectedColorSpaces = value; RaisePropertyChangedAuto(); } } + private ObservableCollection _rmls; + public ObservableCollection Rmls + { + get { return _rmls; } + set { _rmls = value; RaisePropertyChangedAuto(); } + } + private bool _enableHotSpot; public bool EnableHotSpot { @@ -211,11 +219,16 @@ namespace Tango.PPC.MachineSettings.ViewModels } - public override void OnApplicationReady() + public async override void OnApplicationReady() { base.OnApplicationReady(); MachineDataSynchronizer.SynchronizationStarted += (_, __) => InvalidateRelayCommands(); MachineDataSynchronizer.SynchronizationEnded += (_, __) => InvalidateRelayCommands(); + + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + Rmls = await new RmlsCollectionBuilder(db).SetAll().WithSite(MachineProvider.Machine.SiteGuid).BuildAsync(); + } } public override void OnNavigatedTo() diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml index e8bd657a0..017649f8e 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml @@ -137,7 +137,7 @@ Default Thread - + Default Spool diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs index 0c3800d53..2f470df12 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs @@ -204,6 +204,11 @@ namespace Tango.PPC.Common /// public String LastPowerUpSelectedRmlGuid { get; set; } + /// + /// Gets or sets the power up screen timeout. + /// + public TimeSpan PowerUpScreenTimeout { get; set; } + /// /// Gets the machine service address. /// @@ -243,6 +248,7 @@ namespace Tango.PPC.Common SynchronizeDiagnostics = true; SynchronizationInterval = TimeSpan.FromMinutes(60); FirmwareVersion = "1.0.0.0"; + PowerUpScreenTimeout = TimeSpan.FromSeconds(20); } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerUpViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerUpViewVM.cs index 22e489ffa..413b8453d 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerUpViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerUpViewVM.cs @@ -5,6 +5,8 @@ using System.Text; using System.Threading.Tasks; using System.Timers; using Tango.BL.Entities; +using Tango.PPC.Common; +using Tango.Settings; using Tango.SharedUI; namespace Tango.PPC.UI.Dialogs @@ -83,7 +85,7 @@ namespace Tango.PPC.UI.Dialogs public PowerUpViewVM() { - RemainingSeconds = 20; + RemainingSeconds = (int)SettingsManager.Default.GetOrCreate().PowerUpScreenTimeout.TotalSeconds; CanClose = false; IsMinimalTemperature = true; IsTimeoutEnabled = true; diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs index 48e59562c..c3fa97d13 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs @@ -109,7 +109,7 @@ namespace Tango.PPC.UI.ViewModels using (ObservablesContext db = ObservablesContext.CreateDefault()) { - rmls = await db.Rmls.ToListAsync(); + rmls = await new RmlsCollectionBuilder(db).SetAll().WithSite(MachineProvider.Machine.SiteGuid).BuildListAsync(); } var selectedRml = rmls.SingleOrDefault(x => x.Guid == Settings.LastPowerUpSelectedRmlGuid); @@ -143,7 +143,7 @@ namespace Tango.PPC.UI.ViewModels } else { - var rmlsToAvg = new RmlsCollectionBuilder(db).SetAll().WithActiveParametersGroup().Build(); + var rmlsToAvg = new RmlsCollectionBuilder(db).SetAll().WithSite(MachineProvider.Machine.SiteGuid).WithActiveParametersGroup().Build(); processTables = rmlsToAvg.Select(x => x.GetActiveProcessGroup()).SelectMany(x => x.ProcessParametersTables).ToList(); } diff --git a/Software/Visual_Studio/Tango.BL/Builders/CatalogBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/CatalogBuilder.cs new file mode 100644 index 000000000..ffe6924dd --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/Builders/CatalogBuilder.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using System.Data.Entity; + +namespace Tango.BL.Builders +{ + public class CatalogBuilder : EntityBuilderBase + { + public CatalogBuilder(ObservablesContext context) : base(context) + { + + } + + public virtual CatalogBuilder WithGroups() + { + return AddQueryStep(1, (query) => + { + return query.Include(x => x.ColorCatalogsGroups); + }); + } + + public virtual CatalogBuilder WithItems() + { + return AddQueryStep(2, (query) => + { + return query.Include(x => x.ColorCatalogsGroups.Select(y => y.ColorCatalogsItems)); + }); + } + + public virtual CatalogBuilder WithRecipes(Rml rml = null) + { + return AddQueryStep(3, (query) => + { + if (rml != null) + { + return query.Include(x => x.ColorCatalogsGroups.Select(y => y.ColorCatalogsItems.Select(z => z.ColorCatalogsItemsRecipes.Where(r => r.RmlGuid == rml.Guid)))); + } + else + { + return query.Include(x => x.ColorCatalogsGroups.Select(y => y.ColorCatalogsItems.Select(z => z.ColorCatalogsItemsRecipes))); + } + }); + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/Builders/CatalogsCollectionBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/CatalogsCollectionBuilder.cs new file mode 100644 index 000000000..9b24899c4 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/Builders/CatalogsCollectionBuilder.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using System.Data.Entity; + +namespace Tango.BL.Builders +{ + public class CatalogsCollectionBuilder : EntityCollectionBuilderBase + { + public CatalogsCollectionBuilder(ObservablesContext context) : base(context) + { + } + + public virtual CatalogsCollectionBuilder WithSite(String siteGuid) + { + return AddQueryStep(1, (query) => + { + if (siteGuid != null) + { + var siteCatalogsGuids = Context.SitesCatalogs.Where(x => x.SiteGuid == siteGuid).ToList().Select(x => x.CatalogGuid).Where(x => x != null).Distinct().ToArray(); + + if (siteCatalogsGuids.Length > 0) + { + return query.Where(x => siteCatalogsGuids.Contains(x.Guid)); + } + else + { + return query; + } + } + else + { + return query; + } + }); + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/Builders/ColorCatalogBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/ColorCatalogBuilder.cs deleted file mode 100644 index 5ddc84bc5..000000000 --- a/Software/Visual_Studio/Tango.BL/Builders/ColorCatalogBuilder.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.BL.Entities; -using System.Data.Entity; - -namespace Tango.BL.Builders -{ - public class ColorCatalogBuilder : EntityBuilderBase - { - public ColorCatalogBuilder(ObservablesContext context) : base(context) - { - - } - - public virtual ColorCatalogBuilder WithGroups() - { - return AddQueryStep(1, (query) => - { - return query.Include(x => x.ColorCatalogsGroups); - }); - } - - public virtual ColorCatalogBuilder WithItems() - { - return AddQueryStep(2, (query) => - { - return query.Include(x => x.ColorCatalogsGroups.Select(y => y.ColorCatalogsItems)); - }); - } - - public virtual ColorCatalogBuilder WithRecipes(Rml rml = null) - { - return AddQueryStep(3, (query) => - { - if (rml != null) - { - return query.Include(x => x.ColorCatalogsGroups.Select(y => y.ColorCatalogsItems.Select(z => z.ColorCatalogsItemsRecipes.Where(r => r.RmlGuid == rml.Guid)))); - } - else - { - return query.Include(x => x.ColorCatalogsGroups.Select(y => y.ColorCatalogsItems.Select(z => z.ColorCatalogsItemsRecipes))); - } - }); - } - } -} diff --git a/Software/Visual_Studio/Tango.BL/Builders/RmlsCollectionBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/RmlsCollectionBuilder.cs index 055f02474..9408d714b 100644 --- a/Software/Visual_Studio/Tango.BL/Builders/RmlsCollectionBuilder.cs +++ b/Software/Visual_Studio/Tango.BL/Builders/RmlsCollectionBuilder.cs @@ -14,9 +14,33 @@ namespace Tango.BL.Builders { } - public virtual RmlsCollectionBuilder WithCCT() + public virtual RmlsCollectionBuilder WithSite(String siteGuid) { return AddQueryStep(1, (query) => + { + if (siteGuid != null) + { + var siteRmlsGuids = Context.SitesRmls.Where(x => x.SiteGuid == siteGuid).ToList().Select(x => x.RmlGuid).Where(x => x != null).Distinct().ToArray(); + + if (siteRmlsGuids.Length > 0) + { + return query.Where(x => siteRmlsGuids.Contains(x.Guid)); + } + else + { + return query; + } + } + else + { + return query; + } + }); + } + + public virtual RmlsCollectionBuilder WithCCT() + { + return AddQueryStep(2, (query) => { return query.Include(x => x.Cct); }); diff --git a/Software/Visual_Studio/Tango.BL/DTO/SitesCatalogDTO.cs b/Software/Visual_Studio/Tango.BL/DTO/SitesCatalogDTO.cs new file mode 100644 index 000000000..4e1d44e6d --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/DTO/SitesCatalogDTO.cs @@ -0,0 +1,14 @@ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.DTO +{ + public class SitesCatalogDTO : SitesCatalogDTOBase + { + + } +} diff --git a/Software/Visual_Studio/Tango.BL/DTO/SitesCatalogDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/SitesCatalogDTOBase.cs new file mode 100644 index 000000000..b673d5660 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/DTO/SitesCatalogDTOBase.cs @@ -0,0 +1,41 @@ + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango Observables Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; + +namespace Tango.BL.DTO +{ + public abstract class SitesCatalogDTOBase : ObservableEntityDTO + { + + /// + /// site guid + /// + public String SiteGuid + { + get; set; + } + + /// + /// catalog guid + /// + public String CatalogGuid + { + get; set; + } + + } +} diff --git a/Software/Visual_Studio/Tango.BL/Entities/HardwareBlowerBase.cs b/Software/Visual_Studio/Tango.BL/Entities/HardwareBlowerBase.cs index bbc55d245..c6c166498 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/HardwareBlowerBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/HardwareBlowerBase.cs @@ -129,10 +129,6 @@ namespace Tango.BL.Entities /// [Column("VOLTAGE")] - - [Description("Voltage Description")] - [Range(-10000,1000000)] - public Double Voltage { get diff --git a/Software/Visual_Studio/Tango.BL/Entities/SitesCatalog.cs b/Software/Visual_Studio/Tango.BL/Entities/SitesCatalog.cs new file mode 100644 index 000000000..886d06719 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/Entities/SitesCatalog.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.Entities +{ + public class SitesCatalog : SitesCatalogBase + { + } +} diff --git a/Software/Visual_Studio/Tango.BL/Entities/SitesCatalogBase.cs b/Software/Visual_Studio/Tango.BL/Entities/SitesCatalogBase.cs new file mode 100644 index 000000000..85175d6ad --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/Entities/SitesCatalogBase.cs @@ -0,0 +1,86 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango Observables Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Xml.Serialization; +using Newtonsoft.Json; +using System.Linq; +using Tango.DAL.Remote.DB; +using Tango.Core; +using System.ComponentModel; + +namespace Tango.BL.Entities +{ + [Table("SITES_CATALOGS")] + public abstract class SitesCatalogBase : ObservableEntity + { + + protected String _siteguid; + + /// + /// Gets or sets the sitescatalogbase site guid. + /// + + [Column("SITE_GUID")] + + public String SiteGuid + { + get + { + return _siteguid; + } + + set + { + if (_siteguid != value) + { + _siteguid = value; + + } + } + } + + protected String _catalogguid; + + /// + /// Gets or sets the sitescatalogbase catalog guid. + /// + + [Column("CATALOG_GUID")] + + public String CatalogGuid + { + get + { + return _catalogguid; + } + + set + { + if (_catalogguid != value) + { + _catalogguid = value; + + } + } + } + + /// + /// Initializes a new instance of the class. + /// + public SitesCatalogBase() : base() + { + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/ObservablesContext.cs b/Software/Visual_Studio/Tango.BL/ObservablesContext.cs index d47f6514b..4eaf256d2 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesContext.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesContext.cs @@ -518,6 +518,14 @@ namespace Tango.BL get; set; } + /// + /// Gets or sets the SitesCatalogs. + /// + public DbSet SitesCatalogs + { + get; set; + } + /// /// Gets or sets the SitesRmls. /// diff --git a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs index 139c90158..c86933713 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs @@ -2249,6 +2249,42 @@ namespace Tango.BL } + private ObservableCollection _sitescatalogs; + /// + /// Gets or sets the SitesCatalogs. + /// + public ObservableCollection SitesCatalogs + { + get + { + return _sitescatalogs; + } + + set + { + _sitescatalogs = value; RaisePropertyChanged(nameof(SitesCatalogs)); + } + + } + + private ICollectionView _sitescatalogsViewSource; + /// + /// Gets or sets the SitesCatalogs View Source. + /// + public ICollectionView SitesCatalogsViewSource + { + get + { + return _sitescatalogsViewSource; + } + + set + { + _sitescatalogsViewSource = value; RaisePropertyChanged(nameof(SitesCatalogsViewSource)); + } + + } + private ObservableCollection _sitesrmls; /// /// Gets or sets the SitesRmls. @@ -2919,6 +2955,8 @@ namespace Tango.BL SitesViewSource = CreateCollectionView(Sites); + SitesCatalogsViewSource = CreateCollectionView(SitesCatalogs); + SitesRmlsViewSource = CreateCollectionView(SitesRmls); SpoolTypesViewSource = CreateCollectionView(SpoolTypes); diff --git a/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs b/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs index e509d0e3c..efa188fec 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs @@ -2249,6 +2249,42 @@ namespace Tango.BL } + private ObservableCollection _sitescatalogs; + /// + /// Gets or sets the SitesCatalogs. + /// + public ObservableCollection SitesCatalogs + { + get + { + return _sitescatalogs; + } + + set + { + _sitescatalogs = value; RaisePropertyChanged(nameof(SitesCatalogs)); + } + + } + + private ICollectionView _sitescatalogsViewSource; + /// + /// Gets or sets the SitesCatalogs View Source. + /// + public ICollectionView SitesCatalogsViewSource + { + get + { + return _sitescatalogsViewSource; + } + + set + { + _sitescatalogsViewSource = value; RaisePropertyChanged(nameof(SitesCatalogsViewSource)); + } + + } + private ObservableCollection _sitesrmls; /// /// Gets or sets the SitesRmls. @@ -2919,6 +2955,8 @@ namespace Tango.BL SitesViewSource = CreateCollectionView(Sites); + SitesCatalogsViewSource = CreateCollectionView(SitesCatalogs); + SitesRmlsViewSource = CreateCollectionView(SitesRmls); SpoolTypesViewSource = CreateCollectionView(SpoolTypes); diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index d75cdc0c1..99855796d 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -84,7 +84,7 @@ GlobalVersionInfo.cs - + @@ -93,6 +93,7 @@ + @@ -236,6 +237,8 @@ + + @@ -339,6 +342,8 @@ + + diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs index 9f81121ca..3ef793f7f 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs @@ -87,6 +87,7 @@ namespace Tango.DAL.Remote.DB public virtual DbSet ROLES_PERMISSIONS { get; set; } public virtual DbSet SEGMENTS { get; set; } public virtual DbSet SITES { get; set; } + public virtual DbSet SITES_CATALOGS { get; set; } public virtual DbSet SITES_RMLS { get; set; } public virtual DbSet SPOOL_TYPES { get; set; } public virtual DbSet SPOOLS { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx index 2c003669e..fe8f0194b 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -933,6 +933,16 @@ + + + + + + + + + + @@ -2252,6 +2262,7 @@ + @@ -2660,6 +2671,7 @@ + @@ -4080,6 +4092,16 @@ + + + + + + + + + + @@ -6351,6 +6373,17 @@ + + + + + + + + + + + diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram index e7b00e86f..6abe85e1b 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,82 +5,83 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/SITES_CATALOGS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/SITES_CATALOGS.cs new file mode 100644 index 000000000..df712045c --- /dev/null +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/SITES_CATALOGS.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Tango.DAL.Remote.DB +{ + using System; + using System.Collections.Generic; + + public partial class SITES_CATALOGS + { + public int ID { get; set; } + public string GUID { get; set; } + public System.DateTime LAST_UPDATED { get; set; } + public string SITE_GUID { get; set; } + public string CATALOG_GUID { get; set; } + } +} diff --git a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj index 4150c2771..75fa9179c 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj +++ b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj @@ -264,6 +264,9 @@ RemoteADO.tt + + RemoteADO.tt + RemoteADO.tt diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml index 733b4ae8e..c36c6a9b7 100644 Binary files a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml and b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml differ diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml index 083c7cf12..97dad3717 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 -- cgit v1.3.1 From db58a90f0c08242491b96476e228b0d7f4a92a86 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Sat, 14 Dec 2019 01:42:51 +0200 Subject: Implemented full transparent color support on infra and PPC! Fixed issue with fine tunning causing delay in job load. Added async support for IColorConverter. --- Software/DB/PPC/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/PPC/Tango_log.ldf | Bin 53673984 -> 53673984 bytes Software/DB/TCC/TCC.mdf | Bin 8388608 -> 8388608 bytes Software/DB/TCC/TCC_log.ldf | Bin 8388608 -> 8388608 bytes Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 22675456 -> 22675456 bytes .../PMR/Messages/Exports/JobFileBrushStop.proto | 1 + .../FirmwareUpgrade/VersionFileDescriptor.proto | 4 +- .../Tango.PPC.Jobs/Controls/JobSummeryViewer.xaml | 3 + .../Tango.PPC.Jobs/Controls/RunningJobViewer.xaml | 3 + .../Tango.PPC.Jobs/Images/JobView/transparent.jpg | Bin 0 -> 27097 bytes .../Images/JobView/transparent_small.jpg | Bin 0 -> 10743 bytes .../Modules/Tango.PPC.Jobs/Tango.PPC.Jobs.csproj | 8 +- .../Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs | 66 ++++-- .../PPC/Modules/Tango.PPC.Jobs/Views/JobView.xaml | 233 ++++++++++++++------- .../PPC/Tango.PPC.Common/Models/FineTuneItem.cs | 2 + .../PPC/Tango.PPC.Common/PPCSettings.cs | 6 + .../PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs | 14 ++ .../Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs | 8 + .../Visual_Studio/Tango.BL/Entities/BrushStop.cs | 23 +- .../Tango.BL/Entities/BrushStopBase.cs | 38 ++++ .../Visual_Studio/Tango.BL/Entities/Segment.cs | 4 +- Software/Visual_Studio/Tango.BL/LiquidVolume.cs | 12 ++ .../Tango.ColorConversion/DefaultColorConverter.cs | 24 +++ .../Tango.ColorConversion/IColorConverter.cs | 3 + .../Tango.DAL.Remote/DB/BRUSH_STOPS.cs | 1 + .../Tango.DAL.Remote/DB/RemoteADO.edmx | 3 + .../Tango.DAL.Remote/DB/RemoteADO.edmx.diagram | 154 +++++++------- .../DefaultGradientGenerationConfiguration.cs | 2 +- .../Tango.Integration/Operation/MachineOperator.cs | 27 ++- .../Tango.PMR/Exports/JobFileBrushStop.cs | 36 +++- 31 files changed, 481 insertions(+), 194 deletions(-) create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Images/JobView/transparent.jpg create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Images/JobView/transparent_small.jpg (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs') diff --git a/Software/DB/PPC/Tango.mdf b/Software/DB/PPC/Tango.mdf index ec8ed5ec8..a204a2664 100644 Binary files a/Software/DB/PPC/Tango.mdf and b/Software/DB/PPC/Tango.mdf differ diff --git a/Software/DB/PPC/Tango_log.ldf b/Software/DB/PPC/Tango_log.ldf index 91c5d6631..38b8da37b 100644 Binary files a/Software/DB/PPC/Tango_log.ldf and b/Software/DB/PPC/Tango_log.ldf differ diff --git a/Software/DB/TCC/TCC.mdf b/Software/DB/TCC/TCC.mdf index c6f9a4e37..37ed9b842 100644 Binary files a/Software/DB/TCC/TCC.mdf and b/Software/DB/TCC/TCC.mdf differ diff --git a/Software/DB/TCC/TCC_log.ldf b/Software/DB/TCC/TCC_log.ldf index bb23dc9c6..616875f6b 100644 Binary files a/Software/DB/TCC/TCC_log.ldf and b/Software/DB/TCC/TCC_log.ldf differ diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index 4b4e5b56d..5650526a0 100644 Binary files a/Software/DB/Tango.mdf and b/Software/DB/Tango.mdf differ diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf index 369c83d64..6a5c87335 100644 Binary files a/Software/DB/Tango_log.ldf and b/Software/DB/Tango_log.ldf differ diff --git a/Software/PMR/Messages/Exports/JobFileBrushStop.proto b/Software/PMR/Messages/Exports/JobFileBrushStop.proto index fae9f77c0..bbcedbf4a 100644 --- a/Software/PMR/Messages/Exports/JobFileBrushStop.proto +++ b/Software/PMR/Messages/Exports/JobFileBrushStop.proto @@ -28,4 +28,5 @@ message JobFileBrushStop bool Corrected = 21; string ColorCatalogGuid = 22; string ColorCatalogItemGuid = 23; + bool IsTransparent = 25; } \ No newline at end of file diff --git a/Software/PMR/Messages/FirmwareUpgrade/VersionFileDescriptor.proto b/Software/PMR/Messages/FirmwareUpgrade/VersionFileDescriptor.proto index 9e74cdee6..2907cfd36 100644 --- a/Software/PMR/Messages/FirmwareUpgrade/VersionFileDescriptor.proto +++ b/Software/PMR/Messages/FirmwareUpgrade/VersionFileDescriptor.proto @@ -10,4 +10,6 @@ message VersionFileDescriptor string FileName = 1; string Version = 2; VersionFileDestination Destination = 3; -} \ No newline at end of file +} + +//Do not put type 'bytes' in this file. It will cause the json deserialization to fail !!! \ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Controls/JobSummeryViewer.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Controls/JobSummeryViewer.xaml index ba6c13e91..afe331145 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Controls/JobSummeryViewer.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Controls/JobSummeryViewer.xaml @@ -66,6 +66,9 @@ + + + diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Controls/RunningJobViewer.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Controls/RunningJobViewer.xaml index 97aedcf89..5d3f3f1fc 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Controls/RunningJobViewer.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Controls/RunningJobViewer.xaml @@ -57,6 +57,9 @@ + + + diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Images/JobView/transparent.jpg b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Images/JobView/transparent.jpg new file mode 100644 index 000000000..cf1d94d12 Binary files /dev/null and b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Images/JobView/transparent.jpg differ diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Images/JobView/transparent_small.jpg b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Images/JobView/transparent_small.jpg new file mode 100644 index 000000000..c682a4c7e Binary files /dev/null and b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Images/JobView/transparent_small.jpg differ diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Tango.PPC.Jobs.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Tango.PPC.Jobs.csproj index 02343c0cc..5e1fd39bd 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Tango.PPC.Jobs.csproj +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Tango.PPC.Jobs.csproj @@ -497,10 +497,16 @@ + + + + + + - + \ No newline at end of file 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 0a5167900..5ec1c34ec 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 @@ -412,7 +412,7 @@ namespace Tango.PPC.Jobs.ViewModels RepeatSampleDyeCommand = new RelayCommand(RepeatSampleDye); AnotherSampleCommand = new RelayCommand(DyeAnotherSample); InvokeFineTuningPaletteCommand = new RelayCommand(InvokeFineTuningPalette); - ResetFineTuningCommand = new RelayCommand(ResetFineTuning); + ResetFineTuningCommand = new RelayCommand(() => ResetFineTuning(true)); StartFineTuningCommand = new RelayCommand(StartFineTuning, () => FineTuneItems.Any(x => x.IsSelected) && CanStartJob()); RepeatFineTuningCommand = new RelayCommand(RepeatFineTuning); ApproveFineTuningCommand = new RelayCommand(ApproveFineTuning); @@ -670,7 +670,7 @@ namespace Tango.PPC.Jobs.ViewModels { return Job != null && Job.Validate(_db) && - !Job.Segments.SelectMany(x => x.BrushStops).ToList().Exists(x => x.IsOutOfGamut); + !Job.Segments.SelectMany(x => x.BrushStops).Where(x => !x.IsTransparent).ToList().Exists(x => x.IsOutOfGamut); } #endregion @@ -902,22 +902,28 @@ namespace Tango.PPC.Jobs.ViewModels if (vm == null || vm.Result == BasicColorCorrectionViewVM.ColorCorrectionDialogResult.MoreOptions) { - conversionOutput = _converter.Convert(brushStop, true); + NotificationProvider.SetGlobalBusyMessage("Generating color hive..."); - suggestions = conversionOutput.CreateHiveSuggestions(); - - if (vm == null) + await Task.Factory.StartNew(() => { - var center = suggestions.GetCenterSuggestion(); - center.Coordinates.Red = brushStop.Red; - center.Coordinates.Green = brushStop.Green; - center.Coordinates.Blue = brushStop.Blue; - - center.Coordinates.L = brushStop.L; - center.Coordinates.A = brushStop.A; - center.Coordinates.B = brushStop.B; - } + conversionOutput = _converter.Convert(brushStop, true); + + suggestions = conversionOutput.CreateHiveSuggestions(); + if (vm == null) + { + var center = suggestions.GetCenterSuggestion(); + center.Coordinates.Red = brushStop.Red; + center.Coordinates.Green = brushStop.Green; + center.Coordinates.Blue = brushStop.Blue; + + center.Coordinates.L = brushStop.L; + center.Coordinates.A = brushStop.A; + center.Coordinates.B = brushStop.B; + } + }); + + NotificationProvider.ReleaseGlobalBusyMessage(); LogManager.Log("Invoking hive color conversion dialog..."); vm = await NotificationProvider.ShowDialog(new AdvancedColorCorrectionViewVM() { @@ -963,6 +969,7 @@ namespace Tango.PPC.Jobs.ViewModels } finally { + NotificationProvider.ReleaseGlobalBusyMessage(); DyeCommand.RaiseCanExecuteChanged(); } } @@ -1112,7 +1119,7 @@ namespace Tango.PPC.Jobs.ViewModels /// /// Synchronizes the fine tune items to brush stops. /// - private void SyncFineTuneItemsToBrushStops() + private async void SyncFineTuneItemsToBrushStops(bool displayBusy = false) { try { @@ -1124,18 +1131,27 @@ namespace Tango.PPC.Jobs.ViewModels } else { + if (displayBusy) + { + NotificationProvider.SetGlobalBusyMessage("Generating suggestions..."); + } + FineTuneItems.Clear(); - foreach (var stop in Job.Segments.SelectMany(x => x.BrushStops).Where(x => x.ColorSpace.Space == BL.Enumerations.ColorSpaces.RGB || x.ColorSpace.Space == BL.Enumerations.ColorSpaces.LAB).DistinctBy(x => x.Color)) + foreach (var stop in Job.Segments.SelectMany(x => x.BrushStops).Where(x => !x.IsTransparent).Where(x => x.ColorSpace.Space == BL.Enumerations.ColorSpaces.RGB || x.ColorSpace.Space == BL.Enumerations.ColorSpaces.LAB).DistinctBy(x => x.Color)) { - FineTuneItem item = new FineTuneItem(_converter.Convert(stop, true)); + var conversionoutput = await _converter.ConvertAsync(stop, true); + FineTuneItem item = new FineTuneItem(conversionoutput); + item.BrushStop = stop; item.BrushStops = Job.Segments.SelectMany(x => x.BrushStops).Where(x => x.Color == stop.Color).ToList(); - item.SelectedSuggestion = item.Suggestions[item.Suggestions.Count / 2]; + item.SelectedSuggestion = item.Suggestions.GetCenterSuggestion(); item.SelectedChanged += () => StartFineTuningCommand.RaiseCanExecuteChanged(); FineTuneItems.Add(item); } _jobs_fine_tune_items[Job.Guid] = FineTuneItems.ToList(); + + NotificationProvider.ReleaseGlobalBusyMessage(); } ApprovalFineTuneItems = FineTuneItems.Where(x => x.IsSelected).ToObservableCollection(); @@ -1147,6 +1163,10 @@ namespace Tango.PPC.Jobs.ViewModels { LogManager.Log(ex, "Error while trying to synchronize fine tuning items with brush stops."); } + finally + { + NotificationProvider.ReleaseGlobalBusyMessage(); + } } /// @@ -1173,19 +1193,23 @@ namespace Tango.PPC.Jobs.ViewModels LogManager.Log(ex, "Error invoking the fine tunning palette"); await NotificationProvider.ShowError("An error occurred while trying to display the fine tunning palette."); } + finally + { + NotificationProvider.ReleaseGlobalBusyMessage(); + } } /// /// Resets the fine tuning. /// - private void ResetFineTuning() + private void ResetFineTuning(bool displayBusy = false) { if (Job != null && _jobs_fine_tune_items.ContainsKey(Job.Guid)) { _jobs_fine_tune_items.Remove(Job.Guid); } - SyncFineTuneItemsToBrushStops(); + SyncFineTuneItemsToBrushStops(displayBusy); } /// diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobView.xaml index 5f59549dd..9b28d7709 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/Views/JobView.xaml @@ -26,6 +26,8 @@ + + + @@ -147,6 +164,17 @@ + + + + + + Transparent + + + + + @@ -172,7 +200,10 @@ - + + + + @@ -214,7 +245,11 @@ - + + + + + + + + + + @@ -247,77 +302,90 @@ - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + Transparent + + + + + + + + + + + + + + + + + + + + + + + + @@ -334,13 +402,14 @@ - - - - - + + + + + + diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Models/FineTuneItem.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Models/FineTuneItem.cs index 2eea5c3ce..c03be1ae9 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Models/FineTuneItem.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Models/FineTuneItem.cs @@ -18,6 +18,8 @@ namespace Tango.PPC.Common.Models { public event Action SelectedChanged; + public BrushStop BrushStop { get; set; } + /// /// Gets or sets the brush stops. /// diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs index 2f470df12..acdfb6a8a 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs @@ -204,6 +204,11 @@ namespace Tango.PPC.Common /// public String LastPowerUpSelectedRmlGuid { get; set; } + /// + /// Gets or sets a value indicating whether to display the power up screen. + /// + public bool DisplayPowerUpScreen { get; set; } + /// /// Gets or sets the power up screen timeout. /// @@ -248,6 +253,7 @@ namespace Tango.PPC.Common SynchronizeDiagnostics = true; SynchronizationInterval = TimeSpan.FromMinutes(60); FirmwareVersion = "1.0.0.0"; + DisplayPowerUpScreen = true; PowerUpScreenTimeout = TimeSpan.FromSeconds(20); } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs index c3fa97d13..8a4d20b76 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs @@ -101,10 +101,18 @@ namespace Tango.PPC.UI.ViewModels { LogManager.Log("Power up detected, showing power up screen..."); + if (!Settings.DisplayPowerUpScreen) + { + LogManager.Log("Power up screen disabled. skipping..."); + return; + } + PowerUpViewVM vm; try { + LogManager.Log("Loading site rmls..."); + List rmls = new List(); using (ObservablesContext db = ObservablesContext.CreateDefault()) @@ -131,6 +139,8 @@ namespace Tango.PPC.UI.ViewModels await Task.Factory.StartNew(() => { + LogManager.Log("Power up screen closed."); + try { using (ObservablesContext db = ObservablesContext.CreateDefault()) @@ -139,16 +149,20 @@ namespace Tango.PPC.UI.ViewModels if (vm.IsSelectedRml) { + LogManager.Log($"Selected rml '{vm.SelectedRml.Name}'..."); processTables = new RmlBuilder(db).Set(vm.SelectedRml.Guid).WithActiveParametersGroup().Build().GetActiveProcessGroup().ProcessParametersTables.ToList(); } else { + LogManager.Log("Selected minimal temperature..."); var rmlsToAvg = new RmlsCollectionBuilder(db).SetAll().WithSite(MachineProvider.Machine.SiteGuid).WithActiveParametersGroup().Build(); processTables = rmlsToAvg.Select(x => x.GetActiveProcessGroup()).SelectMany(x => x.ProcessParametersTables).ToList(); } var processToLoad = processTables.OrderBy(x => x.GetAverageTemperature()).First(); + LogManager.Log($"Selected process parameters:\nRML: {processToLoad.ProcessParametersTablesGroup.Rml.Name}\nGroup: {processToLoad.ProcessParametersTablesGroup.Name}\nProcess Table: {processToLoad.Name}"); + LogManager.Log("Uploading process parameters..."); var r = MachineProvider.MachineOperator.UploadProcessParameters(processToLoad).Result; Settings.LastPowerUpSelectedRmlGuid = vm.IsSelectedRml ? vm.SelectedRml.Guid : null; diff --git a/Software/Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs index 41fa3ed57..e561871d7 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/BrushStopDTOBase.cs @@ -285,5 +285,13 @@ namespace Tango.BL.DTO get; set; } + /// + /// is transparent + /// + public Boolean IsTransparent + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs b/Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs index 8c755455f..b4655c8e6 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/BrushStop.cs @@ -79,6 +79,7 @@ namespace Tango.BL.Entities _colorPropertyNames.Add(nameof(Color)); _colorPropertyNames.Add(nameof(ColorCatalogsItem)); + _colorPropertyNames.Add(nameof(IsTransparent)); } /// @@ -283,7 +284,7 @@ namespace Tango.BL.Entities [JsonIgnore] public bool IsOutOfGamut { - get { return _isOutOfGamut; } + get { return _isOutOfGamut && !IsTransparent; } set { if (_isOutOfGamut != value) @@ -621,6 +622,17 @@ namespace Tango.BL.Entities PerformColorSynchronization(propName); } + protected override void OnIsTransparentChanged(bool istransparent) + { + base.OnIsTransparentChanged(istransparent); + RaisePropertyChanged(nameof(IsOutOfGamut)); + OutOfGamutChecked = false; + if (Segment != null) + { + Segment.RaiseHasOutOfGamutBrushStop(); + } + } + #endregion #region Properties Changed @@ -717,7 +729,14 @@ namespace Tango.BL.Entities try { var tables = Segment.Job.Rml.GetActiveProcessGroup().ProcessParametersTables.OrderBy(x => x.TableIndex).ToList(); - return (tables[1].MaxInkUptake / tables[0].MaxInkUptake) * 100; + if (tables.Count > 1) + { + return (tables[1].MaxInkUptake / tables[0].MaxInkUptake) * 100; + } + else + { + return MAX_TOTAL_LIQUID_VOLUME; + } } catch { diff --git a/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs b/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs index e02d3f613..0f742cc0b 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs @@ -84,6 +84,8 @@ namespace Tango.BL.Entities public event EventHandler CorrectedChanged; + public event EventHandler IsTransparentChanged; + public event EventHandler ColorCatalogChanged; public event EventHandler ColorCatalogsItemChanged; @@ -979,6 +981,33 @@ namespace Tango.BL.Entities } } + protected Boolean _istransparent; + + /// + /// Gets or sets the brushstopbase is transparent. + /// + + [Column("IS_TRANSPARENT")] + + public Boolean IsTransparent + { + get + { + return _istransparent; + } + + set + { + if (_istransparent != value) + { + _istransparent = value; + + OnIsTransparentChanged(value); + + } + } + } + protected ColorCatalog _colorcatalog; /// @@ -1368,6 +1397,15 @@ namespace Tango.BL.Entities RaisePropertyChanged(nameof(Corrected)); } + /// + /// Called when the IsTransparent has changed. + /// + protected virtual void OnIsTransparentChanged(Boolean istransparent) + { + IsTransparentChanged?.Invoke(this, istransparent); + RaisePropertyChanged(nameof(IsTransparent)); + } + /// /// Called when the ColorCatalog has changed. /// diff --git a/Software/Visual_Studio/Tango.BL/Entities/Segment.cs b/Software/Visual_Studio/Tango.BL/Entities/Segment.cs index 56d863299..ab0211b73 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/Segment.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/Segment.cs @@ -228,7 +228,7 @@ namespace Tango.BL.Entities foreach (var stop in BrushStops.ToList().OrderBy(x => x.StopIndex).ToList()) { - stops.Add(new GradientStop(stop.Color, stop.OffsetPercent / 100d)); + stops.Add(new GradientStop(stop.IsTransparent ? Colors.Transparent : stop.Color, stop.OffsetPercent / 100d)); } LinearGradientBrush brush = new LinearGradientBrush(); @@ -244,7 +244,7 @@ namespace Tango.BL.Entities { for (int i = 0; i < BrushStops.Count; i++) { - _brush.GradientStops[i].Color = BrushStops[i].Color; + _brush.GradientStops[i].Color = BrushStops[i].IsTransparent ? Colors.Transparent : BrushStops[i].Color; _brush.GradientStops[i].Offset = BrushStops[i].OffsetPercent / 100d; } diff --git a/Software/Visual_Studio/Tango.BL/LiquidVolume.cs b/Software/Visual_Studio/Tango.BL/LiquidVolume.cs index 723356ef6..793f94212 100644 --- a/Software/Visual_Studio/Tango.BL/LiquidVolume.cs +++ b/Software/Visual_Studio/Tango.BL/LiquidVolume.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; using Tango.Core; using Tango.BL.Dispensing; using Tango.BL.Entities; +using Tango.BL.Enumerations; namespace Tango.BL { @@ -66,6 +67,12 @@ namespace Tango.BL } } + [JsonIgnore] + public LiquidTypes LiquidType + { + get { return (LiquidTypes)IdsPack.LiquidType.Code; } + } + [JsonIgnore] public DispenserStepDivisions DispenserStepDivision { @@ -203,5 +210,10 @@ namespace Tango.BL cloned.Volume = Volume; return cloned; } + + public override string ToString() + { + return $"{LiquidType}, {Volume}"; + } } } diff --git a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs index 7137145f8..14569fdc0 100644 --- a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs +++ b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs @@ -272,5 +272,29 @@ namespace Tango.ColorConversion return processParameters; } + + public Task ConvertAsync(BrushStop stop, Configuration configuration, Rml rml, bool generateHive) + { + return Task.Factory.StartNew(() => + { + return Convert(stop, configuration, rml, generateHive); + }); + } + + public Task ConvertAsync(BrushStop stop, bool generateHive) + { + return Task.Factory.StartNew(() => + { + return Convert(stop, generateHive); + }); + } + + public Task ConvertAsync(Job job, Color color, bool generateHive) + { + return Task.Factory.StartNew(() => + { + return Convert(job, color, generateHive); + }); + } } } diff --git a/Software/Visual_Studio/Tango.ColorConversion/IColorConverter.cs b/Software/Visual_Studio/Tango.ColorConversion/IColorConverter.cs index 64615f4ae..5206509a9 100644 --- a/Software/Visual_Studio/Tango.ColorConversion/IColorConverter.cs +++ b/Software/Visual_Studio/Tango.ColorConversion/IColorConverter.cs @@ -18,6 +18,9 @@ namespace Tango.ColorConversion ConversionOutput Convert(BrushStop stop, Configuration configuration, Rml rml, bool generateHive); ConversionOutput Convert(BrushStop stop, bool generateHive); ConversionOutput Convert(Job job, Color color, bool generateHive); + Task ConvertAsync(BrushStop stop, Configuration configuration, Rml rml, bool generateHive); + Task ConvertAsync(BrushStop stop, bool generateHive); + Task ConvertAsync(Job job, Color color, bool generateHive); bool IsOutOfGamut(BrushStop stop); ProcessParametersTable GetRecommendedProcessParameters(Job job); ProcessParametersTable GetRecommendedProcessParameters(Job job, ProcessParametersTablesGroup group); diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/BRUSH_STOPS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/BRUSH_STOPS.cs index 60d4a2e98..6ba539edb 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/BRUSH_STOPS.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/BRUSH_STOPS.cs @@ -50,6 +50,7 @@ namespace Tango.DAL.Remote.DB public bool CORRECTED { get; set; } public string COLOR_CATALOG_GUID { get; set; } public string COLOR_CATALOGS_ITEM_GUID { get; set; } + public bool IS_TRANSPARENT { get; set; } public virtual COLOR_CATALOGS COLOR_CATALOGS { get; set; } public virtual COLOR_CATALOGS_ITEMS COLOR_CATALOGS_ITEMS { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx index fe8f0194b..83e251c1e 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -90,6 +90,7 @@ + @@ -3110,6 +3111,7 @@ + @@ -5436,6 +5438,7 @@ + diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram index 6abe85e1b..77b14d7c2 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,83 +5,83 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/Tango.Integration/Operation/DefaultGradientGenerationConfiguration.cs b/Software/Visual_Studio/Tango.Integration/Operation/DefaultGradientGenerationConfiguration.cs index acc0c6723..42ad58c17 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/DefaultGradientGenerationConfiguration.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/DefaultGradientGenerationConfiguration.cs @@ -92,7 +92,7 @@ namespace Tango.Integration.Operation stop.SetLiquidVolumes(job.Machine.Configuration, job.Rml, processParameters); } - if (stop.BrushColorSpace == ColorSpaces.RGB || stop.BrushColorSpace == ColorSpaces.LAB) + if ((stop.BrushColorSpace == ColorSpaces.RGB || stop.BrushColorSpace == ColorSpaces.LAB) && !stop.IsTransparent) { var output = converter.Convert(segment.Job, stop.Color, false); output.ApplyOnBrushStop(stop, processParameters); diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs index 6baefa370..a96693bdf 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs @@ -1707,7 +1707,7 @@ namespace Tango.Integration.Operation if (stop.ColorCatalogsItem.Cyan > 0) { - var liquidVolume = stop.LiquidVolumes.SingleOrDefault(x => x.IdsPack.LiquidType.Code == LiquidTypes.Cyan.ToInt32()); + var liquidVolume = stop.LiquidVolumes.SingleOrDefault(x => x.LiquidType == LiquidTypes.Cyan); if (liquidVolume == null) { @@ -1719,7 +1719,7 @@ namespace Tango.Integration.Operation if (stop.ColorCatalogsItem.Magenta > 0) { - var liquidVolume = stop.LiquidVolumes.SingleOrDefault(x => x.IdsPack.LiquidType.Code == LiquidTypes.Magenta.ToInt32()); + var liquidVolume = stop.LiquidVolumes.SingleOrDefault(x => x.LiquidType == LiquidTypes.Magenta); if (liquidVolume == null) { @@ -1731,7 +1731,7 @@ namespace Tango.Integration.Operation if (stop.ColorCatalogsItem.Yellow > 0) { - var liquidVolume = stop.LiquidVolumes.SingleOrDefault(x => x.IdsPack.LiquidType.Code == LiquidTypes.Yellow.ToInt32()); + var liquidVolume = stop.LiquidVolumes.SingleOrDefault(x => x.LiquidType == LiquidTypes.Yellow); if (liquidVolume == null) { @@ -1743,7 +1743,7 @@ namespace Tango.Integration.Operation if (stop.ColorCatalogsItem.Black > 0) { - var liquidVolume = stop.LiquidVolumes.SingleOrDefault(x => x.IdsPack.LiquidType.Code == LiquidTypes.Black.ToInt32()); + var liquidVolume = stop.LiquidVolumes.SingleOrDefault(x => x.LiquidType == LiquidTypes.Black); if (liquidVolume == null) { @@ -1770,7 +1770,7 @@ namespace Tango.Integration.Operation if (job.EnableLubrication) { - var lubricantVolume = stop.LiquidVolumes.SingleOrDefault(x => x.IdsPack != null && x.IdsPack.LiquidType != null && x.IdsPack.LiquidType.Code == LiquidTypes.Lubricant.ToInt32()); + var lubricantVolume = stop.LiquidVolumes.SingleOrDefault(x => x.IdsPack != null && x.IdsPack.LiquidType != null && x.LiquidType == LiquidTypes.Lubricant); if (lubricantVolume != null) { @@ -1807,6 +1807,23 @@ namespace Tango.Integration.Operation job.NumberOfUnits = 1; } + //Modify transparent brush stops. (Transparent stops should be all zeros and 100% TI) + foreach (var stop in job.Segments.SelectMany(x => x.BrushStops).Where(x => x.IsTransparent).ToList()) + { + foreach (var liquidVolume in stop.LiquidVolumes.Where(x => x.LiquidType != LiquidTypes.TransparentInk && x.LiquidType != LiquidTypes.Lubricant).ToList()) + { + liquidVolume.Volume = 0; + } + + var tiLiquid = stop.LiquidVolumes.SingleOrDefault(x => x.IdsPack != null && x.IdsPack.LiquidType != null && x.LiquidType == LiquidTypes.TransparentInk); + + if (tiLiquid != null) + { + tiLiquid.Volume = 100; + } + } + //Modify transparent brush stops. + if (EnableJobLiquidQuantityValidation) { ValidateJobLiquidQuantity(job, processParameters, job.Machine.Configuration); diff --git a/Software/Visual_Studio/Tango.PMR/Exports/JobFileBrushStop.cs b/Software/Visual_Studio/Tango.PMR/Exports/JobFileBrushStop.cs index 36da58b4e..2b4d84ac6 100644 --- a/Software/Visual_Studio/Tango.PMR/Exports/JobFileBrushStop.cs +++ b/Software/Visual_Studio/Tango.PMR/Exports/JobFileBrushStop.cs @@ -23,7 +23,7 @@ namespace Tango.PMR.Exports { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChZKb2JGaWxlQnJ1c2hTdG9wLnByb3RvEhFUYW5nby5QTVIuRXhwb3J0cxoZ", - "Sm9iRmlsZUxpcXVpZFZvbHVtZS5wcm90byLUAgoQSm9iRmlsZUJydXNoU3Rv", + "Sm9iRmlsZUxpcXVpZFZvbHVtZS5wcm90byLrAgoQSm9iRmlsZUJydXNoU3Rv", "cBIWCg5Db2xvclNwYWNlR3VpZBgBIAEoCRIVCg1PZmZzZXRQZXJjZW50GAIg", "ASgBEgwKBEN5YW4YAyABKAESDwoHTWFnZW50YRgEIAEoARIOCgZZZWxsb3cY", "BSABKAESDQoFQmxhY2sYBiABKAESCwoDUmVkGAcgASgFEg0KBUdyZWVuGAgg", @@ -31,12 +31,12 @@ namespace Tango.PMR.Exports { "DCABKAESPQoNTGlxdWlkVm9sdW1lcxgYIAMoCzImLlRhbmdvLlBNUi5FeHBv", "cnRzLkpvYkZpbGVMaXF1aWRWb2x1bWUSEQoJQ29ycmVjdGVkGBUgASgIEhgK", "EENvbG9yQ2F0YWxvZ0d1aWQYFiABKAkSHAoUQ29sb3JDYXRhbG9nSXRlbUd1", - "aWQYFyABKAlCHQobY29tLnR3aW5lLnRhbmdvLnBtci5leHBvcnRzYgZwcm90", - "bzM=")); + "aWQYFyABKAkSFQoNSXNUcmFuc3BhcmVudBgZIAEoCEIdChtjb20udHdpbmUu", + "dGFuZ28ucG1yLmV4cG9ydHNiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tango.PMR.Exports.JobFileLiquidVolumeReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Exports.JobFileBrushStop), global::Tango.PMR.Exports.JobFileBrushStop.Parser, new[]{ "ColorSpaceGuid", "OffsetPercent", "Cyan", "Magenta", "Yellow", "Black", "Red", "Green", "Blue", "L", "A", "B", "LiquidVolumes", "Corrected", "ColorCatalogGuid", "ColorCatalogItemGuid" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Exports.JobFileBrushStop), global::Tango.PMR.Exports.JobFileBrushStop.Parser, new[]{ "ColorSpaceGuid", "OffsetPercent", "Cyan", "Magenta", "Yellow", "Black", "Red", "Green", "Blue", "L", "A", "B", "LiquidVolumes", "Corrected", "ColorCatalogGuid", "ColorCatalogItemGuid", "IsTransparent" }, null, null, null) })); } #endregion @@ -83,6 +83,7 @@ namespace Tango.PMR.Exports { corrected_ = other.corrected_; colorCatalogGuid_ = other.colorCatalogGuid_; colorCatalogItemGuid_ = other.colorCatalogItemGuid_; + isTransparent_ = other.isTransparent_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -265,6 +266,17 @@ namespace Tango.PMR.Exports { } } + /// Field number for the "IsTransparent" field. + public const int IsTransparentFieldNumber = 25; + private bool isTransparent_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool IsTransparent { + get { return isTransparent_; } + set { + isTransparent_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as JobFileBrushStop); @@ -294,6 +306,7 @@ namespace Tango.PMR.Exports { if (Corrected != other.Corrected) return false; if (ColorCatalogGuid != other.ColorCatalogGuid) return false; if (ColorCatalogItemGuid != other.ColorCatalogItemGuid) return false; + if (IsTransparent != other.IsTransparent) return false; return true; } @@ -316,6 +329,7 @@ namespace Tango.PMR.Exports { if (Corrected != false) hash ^= Corrected.GetHashCode(); if (ColorCatalogGuid.Length != 0) hash ^= ColorCatalogGuid.GetHashCode(); if (ColorCatalogItemGuid.Length != 0) hash ^= ColorCatalogItemGuid.GetHashCode(); + if (IsTransparent != false) hash ^= IsTransparent.GetHashCode(); return hash; } @@ -387,6 +401,10 @@ namespace Tango.PMR.Exports { output.WriteString(ColorCatalogItemGuid); } liquidVolumes_.WriteTo(output, _repeated_liquidVolumes_codec); + if (IsTransparent != false) { + output.WriteRawTag(200, 1); + output.WriteBool(IsTransparent); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -438,6 +456,9 @@ namespace Tango.PMR.Exports { if (ColorCatalogItemGuid.Length != 0) { size += 2 + pb::CodedOutputStream.ComputeStringSize(ColorCatalogItemGuid); } + if (IsTransparent != false) { + size += 2 + 1; + } return size; } @@ -492,6 +513,9 @@ namespace Tango.PMR.Exports { if (other.ColorCatalogItemGuid.Length != 0) { ColorCatalogItemGuid = other.ColorCatalogItemGuid; } + if (other.IsTransparent != false) { + IsTransparent = other.IsTransparent; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -566,6 +590,10 @@ namespace Tango.PMR.Exports { liquidVolumes_.AddEntriesFrom(input, _repeated_liquidVolumes_codec); break; } + case 200: { + IsTransparent = input.ReadBool(); + break; + } } } } -- cgit v1.3.1