From d9a89773f2f283fbf5596799dd4d50d231817203 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Wed, 12 Dec 2018 18:23:24 +0200 Subject: IHotSpot Provider & IRemoteAssistance Provider. --- .../Modules/Tango.MachineStudio.Developer/Views/JobView.xaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml index b9c27e4f9..4fba0cc0b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml @@ -740,7 +740,11 @@ Segment Length - + + + + + -- cgit v1.3.1 From 97ea085d1fac43aedc5258486ef355eb13abc195 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 13 Dec 2018 17:16:43 +0200 Subject: Fixed issues in segment indices !!! Fixed issue with PPC fine tuning. Added support to Twine & Panton in color conversion. --- Software/DB/PPC/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/PPC/Tango_log.ldf | Bin 20578304 -> 20578304 bytes Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 20578304 -> 20578304 bytes .../Converters/JobToColumnDefinitionsConverter.cs | 2 +- .../ViewModels/MainViewVM.cs | 8 +++-- .../Views/JobView.xaml.cs | 4 +-- .../Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs | 5 +++ .../Printing/DefaultPrintingManager.cs | 2 +- .../Visual_Studio/PPC/Tango.PPC.UI/app.manifest | 2 +- .../ColorConversion/TangoColorConverter.cs | 14 ++++++++ .../Tango.BL/EntitiesExtensions/BrushStop.cs | 10 ++++++ .../Tango.BL/EntitiesExtensions/Job.cs | 25 ++++++++++--- .../Tango.BL/EntitiesExtensions/Segment.cs | 10 ++++++ .../Tango.Integration/Operation/MachineOperator.cs | 39 +++++++-------------- 15 files changed, 83 insertions(+), 38 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views') diff --git a/Software/DB/PPC/Tango.mdf b/Software/DB/PPC/Tango.mdf index 8f59fd29d..623792e8e 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 c8d82d51f..0b0bee34f 100644 Binary files a/Software/DB/PPC/Tango_log.ldf and b/Software/DB/PPC/Tango_log.ldf differ diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index 9ce9473be..632cae29a 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 63d4bebf6..c04361480 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.Developer/Converters/JobToColumnDefinitionsConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/JobToColumnDefinitionsConverter.cs index 0aadeca68..2ce5886c6 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/JobToColumnDefinitionsConverter.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Converters/JobToColumnDefinitionsConverter.cs @@ -21,7 +21,7 @@ namespace Tango.MachineStudio.Developer.Converters double totalLength = job.Segments.Sum(x => x.Length); - foreach (var segment in job.Segments) + foreach (var segment in job.OrderedSegments) { columns.Add(new ColumnDefinition() { Width = new GridLength(segment.Length / totalLength, GridUnitType.Star) }); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index b75a84a6c..55ef56ce4 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -1708,7 +1708,7 @@ namespace Tango.MachineStudio.Developer.ViewModels LogManager.Log("Setting selected segment..."); - _selectedSegment = ActiveJob.Segments.FirstOrDefault(); + _selectedSegment = ActiveJob.OrderedSegments.FirstOrDefault(); ActiveJob.LengthChanged -= ActiveJob_LengthChanged; ActiveJob.LengthChanged += ActiveJob_LengthChanged; @@ -2153,10 +2153,14 @@ namespace Tango.MachineStudio.Developer.ViewModels { LogManager.LogFormat("Duplicating {0} segments...", SelectedSegments.Count); + int start_index = SelectedSegments.Max(x => x.SegmentIndex); + + ActiveJob.Segments.Where(x => x.SegmentIndex > start_index).ToList().ForEach(x => x.SegmentIndex = x.SegmentIndex + SelectedSegments.Count); + foreach (var segment in SelectedSegments.OrderBy(x => x.SegmentIndex)) { var cloned = segment.Clone(); - cloned.SegmentIndex = ActiveJob.Segments.Max(x => x.SegmentIndex) + 1; + cloned.SegmentIndex = start_index++; ActiveJob.Segments.Add(cloned); SelectedSegment = cloned; } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs index 8c58690fd..f3af53352 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs @@ -65,11 +65,11 @@ namespace Tango.MachineStudio.Developer.Views if (_vm != null && _vm.ActiveJob != null) { List segments = new List(); - foreach (var s in _vm.ActiveJob.Segments.OrderBy(x => x.SegmentIndex)) + foreach (var s in _vm.ActiveJob.OrderedSegments) { segments.Add(s); - if (_vm.ActiveJob.EnableInterSegment && _vm.ActiveJob.Segments.IndexOf(s) != _vm.ActiveJob.Segments.Count - 1) + if (_vm.ActiveJob.EnableInterSegment && _vm.ActiveJob.OrderedSegments.IndexOf(s) != _vm.ActiveJob.OrderedSegments.Count - 1) { segments.Add(new Segment() { 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 b009762b4..98f429889 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 @@ -888,6 +888,11 @@ namespace Tango.PPC.Jobs.ViewModels /// private void ResetFineTuning() { + if (Job != null && _jobs_fine_tune_items.ContainsKey(Job.Guid)) + { + _jobs_fine_tune_items.Remove(Job.Guid); + } + SyncFineTuneItemsToBrushStops(); } 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 1a509f78b..347701c6e 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs @@ -121,7 +121,7 @@ namespace Tango.PPC.UI.Printing { sampleDyeJob.NumberOfUnits = 1; - foreach (var segment in sampleDyeJob.Segments) + foreach (var segment in sampleDyeJob.OrderedSegments) { segment.Length = job.SampleUnitsOrMeters; } 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 327880b63..776fa7448 100644 --- a/Software/Visual_Studio/Tango.BL/ColorConversion/TangoColorConverter.cs +++ b/Software/Visual_Studio/Tango.BL/ColorConversion/TangoColorConverter.cs @@ -199,6 +199,20 @@ namespace Tango.BL.ColorConversion ConversionInput conversionInput = new ConversionInput(); conversionInput.ColorSpace = (PMR.ColorLab.ColorSpace)brushStop.ColorSpace.Code; + + if (conversionInput.ColorSpace == PMR.ColorLab.ColorSpace.Twine || conversionInput.ColorSpace == PMR.ColorLab.ColorSpace.Panton) + { + conversionInput.ColorSpace = PMR.ColorLab.ColorSpace.Volume; + + if (brushStop.ColorCatalog != null) + { + brushStop.SetVolume(Enumerations.LiquidTypes.Cyan, brushStop.ColorCatalog.Cyan); + brushStop.SetVolume(Enumerations.LiquidTypes.Magenta, brushStop.ColorCatalog.Magenta); + brushStop.SetVolume(Enumerations.LiquidTypes.Yellow, brushStop.ColorCatalog.Yellow); + brushStop.SetVolume(Enumerations.LiquidTypes.Black, brushStop.ColorCatalog.Black); + } + } + conversionInput.InputCoordinates = new InputCoordinates(); conversionInput.SegmentLength = brushStop.Segment.Length; //TODO: for gradient ? diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/BrushStop.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/BrushStop.cs index 19258026c..5524cbd06 100644 --- a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/BrushStop.cs +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/BrushStop.cs @@ -328,6 +328,16 @@ namespace Tango.BL.Entities typeof(BrushStop).GetProperty("V" + packIndex).SetValue(this, volume); } + public void SetVolume(LiquidTypes liquidType, double volume) + { + SetVolume(Segment.Job.Machine.Configuration.IdsPacks.SingleOrDefault(x => x.LiquidType.Code == liquidType.ToInt32()).PackIndex, volume); + } + + public double GetVolume(LiquidTypes liquidType) + { + return GetVolume(Segment.Job.Machine.Configuration.IdsPacks.SingleOrDefault(x => x.LiquidType.Code == liquidType.ToInt32()).PackIndex); + } + public int GetDispensingDivision(int packIndex) { return (int)typeof(BrushStop).GetProperty("V" + packIndex + "Div").GetValue(this); diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs index 95779f03e..6ae2f1daf 100644 --- a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs @@ -150,13 +150,15 @@ namespace Tango.BL.Entities { if (EnableInterSegment && IsAllSegmentsPerSpool) { + int max = Segments.Max(x => x.SegmentIndex); + ObservableCollection effectiveSegments = new ObservableCollection(); - foreach (var s in Segments.ToList()) + foreach (var s in Segments.ToList().OrderBy(x => x.SegmentIndex)) { effectiveSegments.Add(s); - if (Segments.IndexOf(s) != Segments.Count - 1) + if (s.SegmentIndex != max) { effectiveSegments.Add(CreateInterSegment(InterSegmentLength)); } @@ -166,11 +168,24 @@ namespace Tango.BL.Entities } else { - return Segments; + return Segments.OrderBy(x => x.SegmentIndex).ToObservableCollection(); } } } + /// + /// Gets the ordered segments. + /// + [NotMapped] + [JsonIgnore] + public ObservableCollection OrderedSegments + { + get + { + return Segments.OrderBy(x => x.SegmentIndex).ToObservableCollection(); + } + } + /// /// Gets or sets the job fine tuning status. /// @@ -370,7 +385,7 @@ namespace Tango.BL.Entities int fromAngle = -90; double totalLength = Segments.Sum(x => x.Length); //Excluding inter segment. - foreach (var segment in Segments.ToList().OrderBy(x => x.SegmentIndex)) + foreach (var segment in OrderedSegments) { int toAngle = (int)((segment.Length / totalLength) * 360d); g.FillPie(segment.CreateGdiBrush(bmp.Width - 2, bmp.Height - 2), new Rectangle(0, 0, bmp.Width - 2, bmp.Height - 2), fromAngle, toAngle); @@ -538,7 +553,7 @@ namespace Tango.BL.Entities jobFile.Type = job.Type; jobFile.WindingMethodGuid = job.WindingMethodGuid; - foreach (var segment in job.Segments.OrderBy(x => x.SegmentIndex)) + foreach (var segment in job.OrderedSegments) { JobFileSegment s = new JobFileSegment(); s.Length = segment.Length; diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Segment.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Segment.cs index e2c919938..8737e0413 100644 --- a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Segment.cs +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Segment.cs @@ -297,6 +297,16 @@ namespace Tango.BL.Entities return stop; } + public Segment GetNextSegment() + { + return Job.OrderedSegments.FirstOrDefault(x => x.SegmentIndex > SegmentIndex); + } + + public Segment GetPreviousSegment() + { + return Job.OrderedSegments.LastOrDefault(x => x.SegmentIndex < SegmentIndex); + } + /// /// Gets the duration estimation for this job. /// diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs index 63a19dcac..991442510 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs @@ -764,23 +764,6 @@ namespace Tango.Integration.Operation CurrentProcessParameters = processParameters; - if (job.NumberOfUnits < 1) - { - job.NumberOfUnits = 1; - } - - job = job.Clone(); - - var segments = job.Segments.ToList(); - - for (int i = 0; i < job.NumberOfUnits - 1; i++) - { - foreach (var s in segments) - { - job.Segments.Add(s); - } - } - var request = new ResumeCurrentJobRequest(); JobHandler handler = null; @@ -981,7 +964,7 @@ namespace Tango.Integration.Operation handler.RaiseStatusReceived(response.Message.Status); - if (!responseLogged && segment == job.Segments.First()) + if (!responseLogged && segment == job.OrderedSegments.First()) { responseLogged = true; Status = MachineStatuses.Printing; @@ -1009,7 +992,7 @@ namespace Tango.Integration.Operation } }, () => { - if (segment == job.Segments.Last()) + if (segment == job.OrderedSegments.Last()) { Status = MachineStatuses.ReadyToDye; PrintingCompleted?.Invoke(this, new PrintingEventArgs(handler, handler.Job)); @@ -1019,7 +1002,7 @@ namespace Tango.Integration.Operation { handler.RaiseSpoolChangeRequired(() => { - ContinueSingleSpoolJob(job.Segments[job.Segments.IndexOf(segment) + 1], job, processParameters, handler); + ContinueSingleSpoolJob(segment.GetNextSegment(), job, processParameters, handler); },() => { PrintingAborted?.Invoke(this, new PrintingEventArgs(handler, handler.Job)); @@ -1198,13 +1181,17 @@ namespace Tango.Integration.Operation job = job.Clone(); - var segments = job.Segments.ToList(); + int max = job.OrderedSegments.Last().SegmentIndex; + + var segments = job.OrderedSegments.ToList(); for (int i = 0; i < job.NumberOfUnits - 1; i++) { foreach (var s in segments) { - job.Segments.Add(s); + var cloned = s.Clone(job); + cloned.SegmentIndex = max++; + job.Segments.Add(cloned); } } @@ -1223,7 +1210,7 @@ namespace Tango.Integration.Operation processParameters.MapPrimitivesTo(process); ticket.ProcessParameters = process; - foreach (var segment in job.Segments) + foreach (var segment in job.OrderedSegments) { ticket.Segments.Add(CreatePMRJobSegment(segment, job, processParameters)); } @@ -1253,7 +1240,7 @@ namespace Tango.Integration.Operation if (!job.IsAllSegmentsPerSpool) { - ContinueSingleSpoolJob(job.Segments.First(), job, processParameters, handler); + ContinueSingleSpoolJob(job.OrderedSegments.First(), job, processParameters, handler); return handler; } @@ -1385,7 +1372,7 @@ namespace Tango.Integration.Operation job = job.Clone(); - var segments = job.Segments.ToList(); + var segments = job.OrderedSegments.ToList(); for (int i = 0; i < job.NumberOfUnits - 1; i++) { @@ -1410,7 +1397,7 @@ namespace Tango.Integration.Operation processParameters.MapPrimitivesTo(process); ticket.ProcessParameters = process; - foreach (var segment in job.Segments) + foreach (var segment in job.OrderedSegments) { JobSegment jobSegment = new JobSegment(); jobSegment.Length = segment.LengthWithFactor; -- cgit v1.3.1 From 3e71ab50870db524f7e17aa9d2042da52b15ad63 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Wed, 26 Dec 2018 14:04:34 +0200 Subject: Implemented integration IJobRunsLogger. Implemented DEBUG/RELEASE JsonController. Implemented Local/Remote machine studio setting. --- Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 20578304 -> 22675456 bytes .../ViewModels/MainViewVM.cs | 5 + .../Views/MachineJobSelectionView.xaml | 2 +- .../ViewModels/MainViewVM.cs | 7 +- .../JobRunsLogging/DefaultJobRunsLogger.cs | 113 ----------- .../JobRunsLogging/IJobRunsLogger.cs | 14 -- .../MachineStudioSettings.cs | 12 ++ .../Tango.MachineStudio.Common.csproj | 4 +- .../DefaultAuthenticationProvider.cs | 6 +- .../DefaultStudioApplicationManager.cs | 6 +- .../Tango.MachineStudio.UI/ViewModelLocator.cs | 3 - .../ViewModels/LoginViewVM.cs | 2 +- .../JobRuns/BasicJobRunsLogger.cs | 221 +++++++++++++++++++++ .../Tango.Integration/JobRuns/IJobRunsLogger.cs | 41 ++++ .../Operation/IMachineOperator.cs | 6 + .../Tango.Integration/Operation/MachineOperator.cs | 8 + .../Tango.Integration/Tango.Integration.csproj | 4 +- .../Tango.Web/Controllers/JsonController.cs | 4 + .../MachineService - Web Deploy.pubxml | 2 +- 20 files changed, 315 insertions(+), 145 deletions(-) delete mode 100644 Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/DefaultJobRunsLogger.cs delete mode 100644 Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/IJobRunsLogger.cs create mode 100644 Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs create mode 100644 Software/Visual_Studio/Tango.Integration/JobRuns/IJobRunsLogger.cs (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views') diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index ec34a5443..7752f6ed6 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 91c25afa9..ae6147d84 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.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index 333a31802..84fffcc74 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -1845,6 +1845,11 @@ namespace Tango.MachineStudio.Developer.ViewModels { await _machineDbContext.Jobs.Where(x => x.MachineGuid == SelectedMachine.Guid).Include(x => x.User).Include(x => x.User.Contact).LoadAsync(); + foreach (var job in SelectedMachine.Jobs) + { + await job.Reload(_machineDbContext); + } + await _machineDbContext.ColorSpaces.LoadAsync(); await Task.Factory.StartNew(() => diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml index 1cb8536e0..ab97d7858 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml @@ -196,7 +196,7 @@ - + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/MainViewVM.cs index 492ccd30e..fd897e811 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/MainViewVM.cs @@ -78,8 +78,11 @@ namespace Tango.MachineStudio.Statistics.ViewModels InvokeUIOnIdle(() => { - GenerateTimelineJobStatusChart(); - GeneratePieFailedReasonsChart(); + if (_job_runs.Count > 0) + { + GenerateTimelineJobStatusChart(); + GeneratePieFailedReasonsChart(); + } }); } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/DefaultJobRunsLogger.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/DefaultJobRunsLogger.cs deleted file mode 100644 index b405a6729..000000000 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/DefaultJobRunsLogger.cs +++ /dev/null @@ -1,113 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.BL; -using Tango.BL.Entities; -using Tango.BL.Enumerations; -using Tango.Core; -using Tango.Core.DI; -using Tango.Integration.ExternalBridge; -using Tango.Integration.Operation; -using Tango.MachineStudio.Common.StudioApplication; - -namespace Tango.MachineStudio.Common.JobRunsLogging -{ - public class DefaultJobRunsLogger : ExtendedObject, IJobRunsLogger - { - private ObservablesContext _context; - private DateTime _start_date; - private Job _job; - private IStudioApplicationManager applicationManager; - - public void Init(IStudioApplicationManager appManager) - { - applicationManager = appManager; - _context = ObservablesContext.CreateDefault(); - applicationManager.ConnectedMachineChanged += ApplicationManager_ConnectedMachineChanged; - } - - private void ApplicationManager_ConnectedMachineChanged(object sender, IExternalBridgeClient machine) - { - if (machine != null) - { - machine.PrintingStarted -= Machine_PrintingStarted; - machine.PrintingStarted += Machine_PrintingStarted; - machine.PrintingCompleted -= Machine_PrintingCompleted; - machine.PrintingCompleted += Machine_PrintingCompleted; - machine.PrintingAborted -= Machine_PrintingAborted; - machine.PrintingAborted += Machine_PrintingAborted; - machine.PrintingFailed -= Machine_PrintingFailed; - machine.PrintingFailed += Machine_PrintingFailed; - } - } - - private void Machine_PrintingFailed(object sender, PrintingFailedEventArgs e) - { - if (e.Job.Guid == _job.Guid) - { - Task.Factory.StartNew(() => - { - _context.JobRuns.Add(new JobRun() - { - StartDate = _start_date, - EndDate = DateTime.UtcNow, - JobGuid = _job.Guid, - JobRunStatus = JobRunStatus.Failed, - EndPosition = e.JobHandler.Status.Progress, - FailedMessage = e.Exception.Message, - }); - - _context.SaveChanges(); - }); - } - } - - private void Machine_PrintingAborted(object sender, PrintingEventArgs e) - { - if (e.Job.Guid == _job.Guid) - { - Task.Factory.StartNew(() => - { - _context.JobRuns.Add(new JobRun() - { - StartDate = _start_date, - EndDate = DateTime.UtcNow, - JobGuid = _job.Guid, - EndPosition = e.JobHandler.Status.Progress, - JobRunStatus = JobRunStatus.Aborted, - }); - - _context.SaveChanges(); - }); - } - } - - private void Machine_PrintingCompleted(object sender, PrintingEventArgs e) - { - if (e.Job.Guid == _job.Guid) - { - Task.Factory.StartNew(() => - { - _context.JobRuns.Add(new JobRun() - { - StartDate = _start_date, - EndDate = DateTime.UtcNow, - JobGuid = _job.Guid, - EndPosition = e.JobHandler.Status.Progress, - JobRunStatus = JobRunStatus.Completed, - }); - - _context.SaveChanges(); - }); - } - } - - private void Machine_PrintingStarted(object sender, PrintingEventArgs e) - { - _job = e.Job; - _start_date = DateTime.UtcNow; - } - } -} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/IJobRunsLogger.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/IJobRunsLogger.cs deleted file mode 100644 index c3eca953b..000000000 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/IJobRunsLogger.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.MachineStudio.Common.StudioApplication; - -namespace Tango.MachineStudio.Common.JobRunsLogging -{ - public interface IJobRunsLogger - { - void Init(IStudioApplicationManager appManager); - } -} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs index 1d3660c5f..2de954cbe 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs @@ -18,6 +18,12 @@ namespace Tango.MachineStudio.Common public WindowState State { get; set; } } + public enum WorkingEnvironment + { + Remote, + Local + } + /// /// Gets or sets the last login email. /// @@ -88,6 +94,11 @@ namespace Tango.MachineStudio.Common /// public String LastMainModuleName { get; set; } + /// + /// Gets or sets the working environment. + /// + public WorkingEnvironment Environment { get; set; } + /// /// Initializes a new instance of the class. /// @@ -98,6 +109,7 @@ namespace Tango.MachineStudio.Common MachineServiceAddress = "http://machineservice.twine-srv.com/"; DefaultIssueReportTags = new List(); StudioModulesBounds = new List(); + Environment = WorkingEnvironment.Remote; } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj index cd99b00d0..85b194173 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj @@ -104,8 +104,6 @@ - - @@ -310,7 +308,7 @@ - + \ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Authentication/DefaultAuthenticationProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Authentication/DefaultAuthenticationProvider.cs index 4acc76c25..19192020e 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Authentication/DefaultAuthenticationProvider.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Authentication/DefaultAuthenticationProvider.cs @@ -54,6 +54,7 @@ namespace Tango.MachineStudio.UI.Authentication { var settings = SettingsManager.Default.GetOrCreate(); + IWebTransportClient service = new WebTransportClient(); var response = service.PostJson(settings.MachineServiceAddress + "/api/MachineStudio/Login", new LoginRequest() { @@ -65,7 +66,10 @@ namespace Tango.MachineStudio.UI.Authentication AccessToken = response.Token; - ObservablesContext.OverrideSettingsDataSource(response.DataSource); + if (settings.Environment == MachineStudioSettings.WorkingEnvironment.Remote) + { + ObservablesContext.OverrideSettingsDataSource(response.DataSource); + } ObservablesStaticCollections.Instance.Initialize(); diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs index ccedde974..baa550017 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs @@ -26,7 +26,6 @@ using Tango.MachineStudio.Common.Notifications; using Tango.MachineStudio.UI.Views; using Tango.Integration.Operation; using Tango.MachineStudio.UI.Windows; -using Tango.MachineStudio.Common.JobRunsLogging; namespace Tango.MachineStudio.UI.StudioApplication { @@ -40,7 +39,6 @@ namespace Tango.MachineStudio.UI.StudioApplication private INavigationManager _navigationManager; private IStudioModuleLoader _moduleLoader; private INotificationProvider _notification; - private IJobRunsLogger _jobRunsLogger; private List _openedWindows; private List _notified_view_models; @@ -53,9 +51,8 @@ namespace Tango.MachineStudio.UI.StudioApplication /// Initializes a new instance of the class. /// /// The navigation manager. - public DefaultStudioApplicationManager(INavigationManager navigationManager, IStudioModuleLoader moduleLoader, INotificationProvider notification, IJobRunsLogger jobRunsLogger) + public DefaultStudioApplicationManager(INavigationManager navigationManager, IStudioModuleLoader moduleLoader, INotificationProvider notification) { - _jobRunsLogger = jobRunsLogger; _moduleLoader = moduleLoader; _navigationManager = navigationManager; _notification = notification; @@ -350,7 +347,6 @@ namespace Tango.MachineStudio.UI.StudioApplication }); ApplicationReady?.Invoke(this, new EventArgs()); - _jobRunsLogger.Init(this); } /// diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs index cac4ee0c0..3c548855d 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs @@ -8,7 +8,6 @@ using Tango.MachineStudio.Common.Diagnostics; using Tango.MachineStudio.Common.EventLogging; using Tango.MachineStudio.Common.FirmwareUpgrade; using Tango.MachineStudio.Common.Html; -using Tango.MachineStudio.Common.JobRunsLogging; using Tango.MachineStudio.Common.Modules; using Tango.MachineStudio.Common.Navigation; using Tango.MachineStudio.Common.Notifications; @@ -71,7 +70,6 @@ namespace Tango.MachineStudio.UI TangoIOC.Default.Unregister(); TangoIOC.Default.Unregister(); TangoIOC.Default.Unregister(); - TangoIOC.Default.Unregister(); TangoIOC.Default.Unregister(); @@ -80,7 +78,6 @@ namespace Tango.MachineStudio.UI TangoIOC.Default.Register(); TangoIOC.Default.Register(); TangoIOC.Default.Register(); - TangoIOC.Default.Register(); TangoIOC.Default.Register(); TangoIOC.Default.Register(); TangoIOC.Default.Register(); diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs index 59cc69a57..730027a67 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs @@ -139,7 +139,7 @@ namespace Tango.MachineStudio.UI.ViewModels catch (Exception ex) { LogManager.Log(ex, "Login Error."); - _notificationProvider.ShowError($"The specified email or password was incorrect, or you don't have a permission to run this application.\nError: {ex.Message}"); + _notificationProvider.ShowError($"The specified email or password was incorrect, or you don't have a permission to run this application.\nError: {ex.FlattenMessage()}"); } finally { diff --git a/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs new file mode 100644 index 000000000..07844af17 --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs @@ -0,0 +1,221 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL; +using Tango.BL.Entities; +using Tango.BL.Enumerations; +using Tango.Integration.Operation; + +namespace Tango.Integration.JobRuns +{ + /// + /// Represents a basic database job runs logger. + /// + /// + public class BasicJobRunsLogger : IJobRunsLogger + { + private DateTime _start_date; + private Job _job; + + #region Properties + + /// + /// Gets the machine operator. + /// + public IMachineOperator MachineOperator { get; private set; } + + /// + /// Gets a value indicating whether this instance is started. + /// + public bool IsStarted { get; private set; } + + /// + /// Gets or sets the job designations of which the logger should log (supports multiple flags). + /// + public JobDesignations JobDesignation { get; set; } + + #endregion + + #region Constructors + + /// + /// Initializes a new instance of the class. + /// + /// The machine operator. + public BasicJobRunsLogger(IMachineOperator machineOperator) + { + JobDesignation = JobDesignations.Default; + MachineOperator = machineOperator; + Init(); + } + + #endregion + + #region Private Methods + + /// + /// Initializes this instance. + /// + private void Init() + { + MachineOperator.PrintingStarted -= Machine_PrintingStarted; + MachineOperator.PrintingStarted += Machine_PrintingStarted; + MachineOperator.PrintingCompleted -= Machine_PrintingCompleted; + MachineOperator.PrintingCompleted += Machine_PrintingCompleted; + MachineOperator.PrintingAborted -= Machine_PrintingAborted; + MachineOperator.PrintingAborted += Machine_PrintingAborted; + MachineOperator.PrintingFailed -= Machine_PrintingFailed; + MachineOperator.PrintingFailed += Machine_PrintingFailed; + } + + private bool ShouldLog() + { + return IsStarted && _job != null && JobDesignation.HasFlag(_job.Designation); + } + + #endregion + + #region Public Methods + + /// + /// Starts the logger. + /// + public void Start() + { + IsStarted = true; + } + + /// + /// Stops the logger. + /// + public void Stop() + { + IsStarted = false; + } + + #endregion + + #region Event Handlers + + private void Machine_PrintingFailed(object sender, PrintingFailedEventArgs e) + { + if (ShouldLog()) + { + if (e.Job.Guid == _job.Guid) + { + Task.Factory.StartNew(() => + { + using (var db = ObservablesContext.CreateDefault()) + { + db.JobRuns.Add(new JobRun() + { + StartDate = _start_date, + EndDate = DateTime.UtcNow, + JobGuid = _job.Guid, + JobRunStatus = JobRunStatus.Failed, + EndPosition = e.JobHandler.Status.Progress, + FailedMessage = e.Exception.Message, + }); + + e.Job.LastRun = DateTime.UtcNow; + _job.LastRun = DateTime.UtcNow; + + var job = db.Jobs.SingleOrDefault(x => x.Guid == _job.Guid); + + if (job != null) + { + job.LastRun = DateTime.UtcNow; + } + + db.SaveChanges(); + } + }); + } + } + } + + private void Machine_PrintingAborted(object sender, PrintingEventArgs e) + { + if (ShouldLog()) + { + if (e.Job.Guid == _job.Guid) + { + Task.Factory.StartNew(() => + { + using (var db = ObservablesContext.CreateDefault()) + { + db.JobRuns.Add(new JobRun() + { + StartDate = _start_date, + EndDate = DateTime.UtcNow, + JobGuid = _job.Guid, + EndPosition = e.JobHandler.Status.Progress, + JobRunStatus = JobRunStatus.Aborted, + }); + + e.Job.LastRun = DateTime.UtcNow; + _job.LastRun = DateTime.UtcNow; + + var job = db.Jobs.SingleOrDefault(x => x.Guid == _job.Guid); + + if (job != null) + { + job.LastRun = DateTime.UtcNow; + } + + db.SaveChanges(); + } + }); + } + } + } + + private void Machine_PrintingCompleted(object sender, PrintingEventArgs e) + { + if (ShouldLog()) + { + if (e.Job.Guid == _job.Guid) + { + Task.Factory.StartNew(() => + { + using (var db = ObservablesContext.CreateDefault()) + { + db.JobRuns.Add(new JobRun() + { + StartDate = _start_date, + EndDate = DateTime.UtcNow, + JobGuid = _job.Guid, + EndPosition = e.JobHandler.Status.Progress, + JobRunStatus = JobRunStatus.Completed, + }); + + e.Job.LastRun = DateTime.UtcNow; + _job.LastRun = DateTime.UtcNow; + + var job = db.Jobs.SingleOrDefault(x => x.Guid == _job.Guid); + + if (job != null) + { + job.LastRun = DateTime.UtcNow; + } + + db.SaveChanges(); + } + }); + } + } + } + + private void Machine_PrintingStarted(object sender, PrintingEventArgs e) + { + _job = e.Job; + _start_date = DateTime.UtcNow; + } + + + + #endregion + } +} diff --git a/Software/Visual_Studio/Tango.Integration/JobRuns/IJobRunsLogger.cs b/Software/Visual_Studio/Tango.Integration/JobRuns/IJobRunsLogger.cs new file mode 100644 index 000000000..8c4174311 --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/JobRuns/IJobRunsLogger.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Enumerations; +using Tango.Integration.Operation; + +namespace Tango.Integration.JobRuns +{ + /// + /// Represents a machine operator job runs logger + /// + public interface IJobRunsLogger + { + /// + /// Gets the machine operator. + /// + IMachineOperator MachineOperator { get; } + + /// + /// Gets or sets the job designations of which the logger should log (supports multiple flags). + /// + JobDesignations JobDesignation { get; set; } + + /// + /// Gets a value indicating whether this instance is started. + /// + bool IsStarted { get; } + + /// + /// Starts the logger. + /// + void Start(); + + /// + /// Stops the logger. + /// + void Stop(); + } +} diff --git a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs index d0eb0ae17..d2293bcd0 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs @@ -20,6 +20,7 @@ using System.IO; using Tango.Integration.Upgrade; using Tango.PMR.IO; using Tango.PMR.FirmwareUpgrade; +using Tango.Integration.JobRuns; namespace Tango.Integration.Operation { @@ -164,6 +165,11 @@ namespace Tango.Integration.Operation /// IMachineEventsStateProvider MachineEventsStateProvider { get; set; } + /// + /// Gets or sets the job runs logger. + /// + IJobRunsLogger JobRunsLogger { get; set; } + /// /// Prints the specified job. /// The process parameters table will be calculated using color conversion gamut region. diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs index 45b2943c1..2efd2fc9b 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs @@ -32,6 +32,7 @@ using Tango.PMR.IO; using Tango.Integration.Upgrade; using Tango.PMR.FirmwareUpgrade; using Tango.Integration.Logging; +using Tango.Integration.JobRuns; namespace Tango.Integration.Operation { @@ -79,6 +80,8 @@ namespace Tango.Integration.Operation { DeviceInformation = new DeviceInformation(); MachineEventsStateProvider = new DefaultMachineEventsStateProvider(); + JobRunsLogger = new BasicJobRunsLogger(this); + JobRunsLogger.Start(); EnableEventsNotification = true; EnableJobResume = true; LogEmbeddedDebuggingToFile = true; @@ -329,6 +332,11 @@ namespace Tango.Integration.Operation /// public IMachineEventsStateProvider MachineEventsStateProvider { get; set; } + /// + /// Gets or sets the job runs logger. + /// + public IJobRunsLogger JobRunsLogger { get; set; } + /// /// Gets the last process parameters table sent to the embedded device. /// diff --git a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj index 8edb04384..eebee5e81 100644 --- a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj +++ b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj @@ -87,6 +87,8 @@ + + @@ -168,7 +170,7 @@ - + \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Web/Controllers/JsonController.cs b/Software/Visual_Studio/Tango.Web/Controllers/JsonController.cs index 9d9016d5a..1fae9cccc 100644 --- a/Software/Visual_Studio/Tango.Web/Controllers/JsonController.cs +++ b/Software/Visual_Studio/Tango.Web/Controllers/JsonController.cs @@ -65,7 +65,11 @@ namespace Tango.Web.Controllers code = HttpStatusCode.Unauthorized; } +#if DEBUG throw new HttpResponseException(Request.CreateErrorResponse(code, ex.ToString())); +#else + throw new HttpResponseException(Request.CreateErrorResponse(code, ex.FlattenMessage())); +#endif } } } diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/MachineService - Web Deploy.pubxml b/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/MachineService - Web Deploy.pubxml index 277a89d38..612e38bfb 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/MachineService - Web Deploy.pubxml +++ b/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/MachineService - Web Deploy.pubxml @@ -9,7 +9,7 @@ by editing this MSBuild file. In order to learn more about this please visit htt /subscriptions/10c8aa60-3b15-4e0d-b412-6aeef90e5e91/resourceGroups/Tango/providers/Microsoft.Web/sites/MachineService Tango AzureWebSite - Release + Debug Any CPU http://machineservice.azurewebsites.net True -- cgit v1.3.1 From 5d6493443dfcf51e3bc944c0d684da5b9d853c2f Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Tue, 1 Jan 2019 15:16:34 +0200 Subject: Fixed issue with slow running job view on many segments. --- Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 22675456 -> 22675456 bytes .../Views/MainView.xaml | 171 +------------ .../Views/RunningJobView.xaml | 271 ++++++++++----------- 4 files changed, 133 insertions(+), 309 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views') diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index 2d4a13a9d..00b8513d8 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 c16100a75..317b8ce45 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.Developer/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml index 68cd65ad4..429450370 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml @@ -131,168 +131,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -317,14 +155,7 @@ - - - - - - - - + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml index cff53ea8d..c9c7a4efc 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml @@ -207,173 +207,166 @@ - - - - - - - - - + + + + + + + + - BASIC - - - - - - + BASIC + + + + + + : - - - - - + + + + + - SPOOL - - - - - - + SPOOL + + + + + + : - - - - - + + + + + - PROCESS PARAMETERS - - - - - - + PROCESS PARAMETERS + + + + + + : - - - - - + + + + + - SEGMENTS - - - - - + SEGMENTS + + + + + + # - + + + - - - - - - + + + + + + : - - - - - + + + + + - BRUSH STOPS - - - - - + BRUSH STOPS + + + + + # - + - - - - - - + + + + + + : - - - - - + + + + + - DISPENSERS - - - - - + DISPENSERS + + + + + # - + - - - - - - + + + + + + : - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -385,7 +378,7 @@ - + -- cgit v1.3.1