diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2024-07-14 23:06:47 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2024-07-14 23:06:47 +0300 |
| commit | c03fb4a1b2aadd8952b321d08ca840e55fcee72d (patch) | |
| tree | 453cc2986a60c87ddff21bff348d6d35d7ed1c2e | |
| parent | 70c0c5921c3c124779ec0d603e43d72e67def63f (diff) | |
| download | Tango-c03fb4a1b2aadd8952b321d08ca840e55fcee72d.tar.gz Tango-c03fb4a1b2aadd8952b321d08ca840e55fcee72d.zip | |
Revision of statistics and resumed jobs.
33 files changed, 573 insertions, 115 deletions
diff --git a/Software/DB/PPC/Tango.mdf b/Software/DB/PPC/Tango.mdf Binary files differindex 01314a149..c8371da66 100644 --- a/Software/DB/PPC/Tango.mdf +++ b/Software/DB/PPC/Tango.mdf diff --git a/Software/DB/PPC/Tango_log.ldf b/Software/DB/PPC/Tango_log.ldf Binary files differindex b9f28e433..c909e3819 100644 --- a/Software/DB/PPC/Tango_log.ldf +++ b/Software/DB/PPC/Tango_log.ldf diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf Binary files differindex cb79ef227..53ba1c060 100644 --- a/Software/DB/Tango.mdf +++ b/Software/DB/Tango.mdf diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf Binary files differindex 8d2f6a746..b3173ce13 100644 --- a/Software/DB/Tango_log.ldf +++ b/Software/DB/Tango_log.ldf diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Controls/RangeProgressBar.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Controls/RangeProgressBar.cs new file mode 100644 index 000000000..0d18bb4ca --- /dev/null +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Controls/RangeProgressBar.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.FSE.Diagnostics.Controls +{ + public class RangeProgressBar : Control + { + private Border _innerBorder; + private Border _outerBorder; + + static RangeProgressBar() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(RangeProgressBar), new FrameworkPropertyMetadata(typeof(RangeProgressBar))); + } + + public Brush FillBrush + { + get { return (Brush)GetValue(FillBrushProperty); } + set { SetValue(FillBrushProperty, value); } + } + public static readonly DependencyProperty FillBrushProperty = + DependencyProperty.Register("FillBrush", typeof(Brush), typeof(RangeProgressBar), new PropertyMetadata(Brushes.Red)); + + public double Maximum + { + get { return (double)GetValue(MaximumProperty); } + set { SetValue(MaximumProperty, value); } + } + public static readonly DependencyProperty MaximumProperty = + DependencyProperty.Register("Maximum", typeof(double), typeof(RangeProgressBar), new PropertyMetadata(100.0)); + + public double LowerValue + { + get { return (double)GetValue(LowerValueProperty); } + set { SetValue(LowerValueProperty, value); } + } + public static readonly DependencyProperty LowerValueProperty = + DependencyProperty.Register("LowerValue", typeof(double), typeof(RangeProgressBar), new PropertyMetadata(20.0)); + + public double UpperValue + { + get { return (double)GetValue(UpperValueProperty); } + set { SetValue(UpperValueProperty, value); } + } + public static readonly DependencyProperty UpperValueProperty = + DependencyProperty.Register("UpperValue", typeof(double), typeof(RangeProgressBar), new PropertyMetadata(80.0)); + + public override void OnApplyTemplate() + { + base.OnApplyTemplate(); + _innerBorder = GetTemplateChild("PART_InnerBorder") as Border; + _outerBorder = GetTemplateChild("PART_OuterBorder") as Border; + + PlaceInnerBorder(); + SizeChanged -= RangeProgressBar_SizeChanged; + SizeChanged += RangeProgressBar_SizeChanged; + } + + private void RangeProgressBar_SizeChanged(object sender, SizeChangedEventArgs e) + { + PlaceInnerBorder(); + } + + private void PlaceInnerBorder() + { + _innerBorder.Margin = new Thickness(LowerValue / Maximum * _outerBorder.ActualWidth, 0, _outerBorder.ActualWidth - (UpperValue / Maximum * _outerBorder.ActualWidth), 0); + } + } +} diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs index 3d616f957..d979fe55b 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs @@ -178,6 +178,31 @@ namespace Tango.FSE.Statistics.Models get { return IsEureka ? JobRun.EndPosition * 4 : JobRun.EndPosition; } } + public double ActualStartPosition + { + get { return IsEureka ? JobRun.ActualStartPosition * 4 : JobRun.ActualStartPosition; } + } + + public double ActualEndPosition + { + get + { + if (JobRun.ActualEndPosition > 0) + { + return IsEureka ? JobRun.ActualEndPosition * 4 : JobRun.ActualEndPosition; + } + else + { + return IsEureka ? JobRun.EndPosition * 4 : JobRun.EndPosition; + } + } + } + + public double ActualLength + { + get { return IsEureka ? JobRun.JobLogicalLength * 4 : JobRun.JobLogicalLength; } + } + public String FineTuningMeasured { get @@ -244,5 +269,13 @@ namespace Tango.FSE.Statistics.Models } private set { _fineTuningDeltaE = value; } } + + public double Distance + { + get + { + return ActualEndPosition - ActualStartPosition; + } + } } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Tango.FSE.Statistics.csproj b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Tango.FSE.Statistics.csproj index 3ca736b8a..fcfb157e6 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Tango.FSE.Statistics.csproj +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Tango.FSE.Statistics.csproj @@ -105,6 +105,7 @@ <Compile Include="..\..\..\MachineStudio\Modules\Tango.MachineStudio.Developer\Controls\JobOutlineControl.cs"> <Link>Controls\JobOutlineControl.cs</Link> </Compile> + <Compile Include="Controls\RangeProgressBar.cs" /> <Compile Include="Dialogs\JobRunExtendedInfoView.xaml.cs"> <DependentUpon>JobRunExtendedInfoView.xaml</DependentUpon> </Compile> diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Themes/Generic.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Themes/Generic.xaml index 2c6475626..313a46355 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Themes/Generic.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Themes/Generic.xaml @@ -1,9 +1,26 @@ <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:controls="clr-namespace:Tango.FSE.Statistics.Controls" xmlns:local="clr-namespace:Tango.FSE.Statistics.Themes"> <BitmapImage x:Key="jobImage" UriSource="../Images/cmyk.png" /> + <Style TargetType="{x:Type controls:RangeProgressBar}"> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type controls:RangeProgressBar}"> + <Border x:Name="PART_OuterBorder" Background="{TemplateBinding Background}" + BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}"> + <Border x:Name="PART_InnerBorder" Background="{TemplateBinding FillBrush}"> + + </Border> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs index 538e8a795..a21619aac 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs @@ -487,8 +487,8 @@ namespace Tango.FSE.Statistics.ViewModels stats.CompletedRuns = _model.StatisticsResult.JobRuns.Count(x => x.JobRun.Status == (int)JobRunStatus.Completed); stats.FailedRuns = _model.StatisticsResult.JobRuns.Count(x => x.JobRun.Status == (int)JobRunStatus.Failed); stats.AbortedRuns = _model.StatisticsResult.JobRuns.Count(x => x.JobRun.Status == (int)JobRunStatus.Aborted); - stats.TotalDyeingLength = (int)_model.StatisticsResult.JobRuns.Where(x => x.JobRun.EndPosition > 0).Select(x => x.JobRun.EndPosition).Sum(); - stats.AverageDyeingLength = (int)_model.StatisticsResult.JobRuns.Where(x => x.JobRun.EndPosition > 0).Select(x => x.JobRun.EndPosition).Average(); + stats.TotalDyeingLength = (int)_model.StatisticsResult.JobRuns.Where(x => x.JobRun.EndPosition > 0).Select(x => x.Distance).Sum(); + stats.AverageDyeingLength = (int)_model.StatisticsResult.JobRuns.Where(x => x.JobRun.EndPosition > 0).Select(x => x.Distance).Average(); var timeRuns = _model.StatisticsResult.JobRuns.Where(z => z.JobRun.EndPosition > 0 && z.JobRun.EndDate != null && z.JobRun.ActualStartDate != null).ToList(); diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml index 590192e28..0e1d8cb60 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml @@ -10,6 +10,7 @@ xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" + xmlns:localControls="clr-namespace:Tango.FSE.Statistics.Controls" xmlns:local="clr-namespace:Tango.FSE.Statistics.Views" mc:Ignorable="d" d:DesignHeight="720" d:DesignWidth="1280" Background="{StaticResource FSE_PrimaryBackgroundBrush}" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> @@ -144,7 +145,19 @@ </TextBlock> <TextBlock Text="{Binding Items[0].Items[0].JobRun.StartDate,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" VerticalAlignment="Center" Width="120"></TextBlock> <TextBlock Text="{Binding Items[0].Items[0].Duration,Mode=OneWay,Converter={StaticResource TotalDyeTimeConverter}}" VerticalAlignment="Center" Width="100"></TextBlock> - <TextBlock Text="{Binding Items[0].Items[0].EndPosition,StringFormat=N1}" VerticalAlignment="Center" Width="80"></TextBlock> + <StackPanel VerticalAlignment="Center" Width="80" Background="Transparent" ToolTipService.InitialShowDelay="0"> + <StackPanel.ToolTip> + <ToolTip> + <StackPanel Orientation="Horizontal"> + <TextBlock Text="{Binding Items[0].Items[0].ActualStartPosition,Mode=OneWay,StringFormat=N1}"></TextBlock> + <material:PackIcon VerticalAlignment="Center" Margin="10 0" Kind="ArrowRight" Width="14" Foreground="{StaticResource FSE_PrimaryAccentBrush}"></material:PackIcon> + <TextBlock Text="{Binding Items[0].Items[0].ActualEndPosition,Mode=OneWay,StringFormat=N1}"></TextBlock> + </StackPanel> + </ToolTip> + </StackPanel.ToolTip> + <TextBlock HorizontalAlignment="Left" FontSize="{StaticResource FSE_SmallerFontSize}" Text="{Binding Items[0].Items[0].Distance,StringFormat=N1}" VerticalAlignment="Center"></TextBlock> + <localControls:RangeProgressBar ClipToBounds="True" Height="4" Maximum="{Binding Items[0].Items[0].ActualLength}" LowerValue="{Binding Items[0].Items[0].ActualStartPosition}" UpperValue="{Binding Items[0].Items[0].ActualEndPosition}" Background="Gray" FillBrush="{StaticResource FSE_PrimaryAccentBrush}"/> + </StackPanel> </StackPanel> <Grid Visibility="{Binding IsAdvancedMode,Converter={StaticResource BooleanToVisibilityConverter}}" DataContext="{Binding Items[0].Items[0]}" Width="250" Margin="0 0 50 5" HorizontalAlignment="Right" VerticalAlignment="Bottom"> @@ -258,7 +271,7 @@ <DataGridTextColumn Header="LENGTH" Width="80" CellStyle="{StaticResource EmptyColumnStyle2}" /> <DataGridTextColumn Header="START TIME" Width="120" CellStyle="{StaticResource EmptyColumnStyle2}" /> <DataGridTextColumn Header="DURATION" Width="100" CellStyle="{StaticResource EmptyColumnStyle2}" /> - <DataGridTextColumn Header="END POINT" Width="100" CellStyle="{StaticResource EmptyColumnStyle2}" /> + <DataGridTextColumn Header="DISTANCE" Width="100" CellStyle="{StaticResource EmptyColumnStyle2}" /> <DataGridTextColumn Header="OFFSET" Width="75" Binding="{Binding StartMeters}" /> <DataGridTextColumn Header="COLOR SPACE" Width="120" Binding="{Binding ColorSpace}" /> <DataGridTemplateColumn Header="INPUT" Width="150"> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Models/JobRunModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Models/JobRunModel.cs index 7646e91c0..184135c40 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Models/JobRunModel.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Models/JobRunModel.cs @@ -22,6 +22,8 @@ namespace Tango.MachineStudio.Statistics.Models public RmlModel Rml { get; set; } + public bool IsEureka { get; set; } + public String Gen { get @@ -30,6 +32,39 @@ namespace Tango.MachineStudio.Statistics.Models } } + public double ActualStartPosition + { + get { return IsEureka ? JobRun.ActualStartPosition * 4 : JobRun.ActualStartPosition; } + } + + public double ActualEndPosition + { + get + { + if (JobRun.ActualEndPosition > 0) + { + return IsEureka ? JobRun.ActualEndPosition * 4 : JobRun.ActualEndPosition; + } + else + { + return IsEureka ? JobRun.EndPosition * 4 : JobRun.EndPosition; + } + } + } + + public double Distance + { + get + { + return ActualEndPosition - ActualStartPosition; + } + } + + public double ActualLength + { + get { return JobRun.JobLogicalLength; } + } + public void Init() { if (JobRun.HeatingStartDate != null) @@ -47,6 +82,7 @@ namespace Tango.MachineStudio.Statistics.Models JobRun.JobLogicalLength *= 4; JobRun.JobLength *= 4; JobRun.EndPosition *= 4; + IsEureka = true; } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs index 5f38ae147..84b7ca76b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/ViewModels/JobRunsViewVM.cs @@ -517,7 +517,10 @@ namespace Tango.MachineStudio.Statistics.ViewModels x.LightCyanQuantity, x.LightMagentaQuantity, x.LightYellowQuantity, - x.IsHeadCleaning + x.IsHeadCleaning, + x.ActualStartPosition, + x.ActualEndPosition, + x.JobLogicalLength, }); var machineIDs = new HashSet<string>(SelectedMachines.SynchedSource.ToList().Select(p => p.Guid)); if (machineIDs.Count > 0) @@ -591,7 +594,10 @@ namespace Tango.MachineStudio.Statistics.ViewModels LightCyanQuantity = x.LightCyanQuantity, LightMagentaQuantity = x.LightMagentaQuantity, LightYellowQuantity = x.LightYellowQuantity, - IsHeadCleaning = x.IsHeadCleaning + IsHeadCleaning = x.IsHeadCleaning, + ActualStartPosition = x.ActualStartPosition, + ActualEndPosition = x.ActualEndPosition, + JobLogicalLength = x.JobLogicalLength, }).ToList(); var modelList = runs.Select(x => new JobRunModel() @@ -739,7 +745,7 @@ namespace Tango.MachineStudio.Statistics.ViewModels /// </summary> protected void GenerateTotalRunsLength() { - double val = JobRuns.Where(z => z.JobRun.EndPosition > 0).Sum(x => x.JobRun.JobLength); + double val = JobRuns.Where(z => z.JobRun.EndPosition > 0).Sum(x => x.Distance); StatisticsValueCollection.AddStatisticsValue("Total Runs Length", val, " m"); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml index b067d83fb..467ce5be6 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Views/JobRunsView.xaml @@ -591,7 +591,7 @@ <DataGridTextColumn Header="User" Binding="{Binding User.Contact.FullName,TargetNullValue='PPC',FallbackValue='PPC'}" Width="100" ElementStyle="{StaticResource WrapText}" /> <DataGridTextColumn Header="Job Name" Binding="{Binding JobRun.JobName}" Width="100" ElementStyle="{StaticResource WrapText}"/> <DataGridTextColumn Header="Thread" Binding="{Binding Rml.Name}" Width="80" ElementStyle="{StaticResource WrapText}"/> - <DataGridTextColumn Header="Length" Binding="{Binding JobRun.JobLength, StringFormat={}{0:0.00}}" Width="60" /> + <DataGridTextColumn Header="Length" Binding="{Binding ActualLength, StringFormat={}{0:0.00}}" Width="60" /> <DataGridTextColumn Header="Source" Binding="{Binding JobRun.Source, Converter={StaticResource EnumToDescriptionConverter}}" Width="60" /> <DataGridTextColumn Header="Upload Duration" Binding="{Binding UploadDuration, Converter={StaticResource DateTimeToStringFormatConverter}, FallbackValue='N/A',TargetNullValue='N/A'}" Width="80"/> <DataGridTextColumn Header="Heating Duration" Binding="{Binding HeatingDuration, Converter={StaticResource DateTimeToStringFormatConverter}, FallbackValue='N/A',TargetNullValue='N/A'}" Width="80" /> @@ -601,7 +601,25 @@ <DataGridTextColumn Header="Status" Binding="{Binding JobRun.JobRunStatus, Converter={StaticResource EnumToDescriptionConverter}}" Width="70"/> <DataGridTextColumn Header="End Time" Binding="{Binding JobRun.EndDate, Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="95" /> <DataGridTextColumn Header="Total dyeing time" Binding="{Binding JobRun.TotalDyeingTime, Converter={StaticResource DateTimeToStringFormatConverter}}" Width="95" /> - <DataGridTextColumn Header="End Position" Binding="{Binding JobRun.EndPosition, StringFormat={}{0:0.00}}" Width="70" /> + <DataGridTemplateColumn Header="Distance" Width="70"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <StackPanel VerticalAlignment="Center" Width="70" Background="Transparent" ToolTipService.InitialShowDelay="0"> + <StackPanel.ToolTip> + <ToolTip> + <StackPanel Orientation="Horizontal"> + <TextBlock Text="{Binding ActualStartPosition,Mode=OneWay,StringFormat=N1}"></TextBlock> + <materialDesign:PackIcon VerticalAlignment="Center" Margin="10 0" Kind="ArrowRight" Width="14" Foreground="{StaticResource AccentColorBrush}"></materialDesign:PackIcon> + <TextBlock Text="{Binding ActualEndPosition,Mode=OneWay,StringFormat=N1}"></TextBlock> + </StackPanel> + </ToolTip> + </StackPanel.ToolTip> + <TextBlock HorizontalAlignment="Left" Text="{Binding Distance,StringFormat=N1}" VerticalAlignment="Center"></TextBlock> + <controls:RangeProgressBar ClipToBounds="True" Height="4" Maximum="{Binding ActualLength,Mode=OneWay}" LowerValue="{Binding ActualStartPosition,Mode=OneWay}" UpperValue="{Binding ActualEndPosition,Mode=OneWay}" Background="Gray" FillBrush="{StaticResource AccentColorBrush}"/> + </StackPanel> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> <DataGridTemplateColumn Header="Liquid Quantities" Width="1*"> <DataGridTemplateColumn.CellStyle> <Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}"> @@ -631,7 +649,6 @@ <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <Grid.RowDefinitions> <RowDefinition Height="1*"/> - <RowDefinition Height="20"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="1*" MaxWidth="250"/> @@ -685,17 +702,7 @@ </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> - <Border Grid.Row="1" Grid.Column="0" Background="Transparent" HorizontalAlignment="Stretch" Height="8" BorderThickness="1" BorderBrush="{StaticResource borderBrush}"> - <Rectangle Margin="0 0 -1 0" Fill="{StaticResource AccentColorBrush}" HorizontalAlignment="Left" VerticalAlignment="Stretch" ToolTip="{Binding JobRun.EndPosition}"> - <Rectangle.Width> - <MultiBinding Converter="{StaticResource JobLengthConverter}"> - <Binding Path="JobRun.JobLength" /> - <Binding Path="JobRun.EndPosition"/> - <Binding Path="ActualWidth" RelativeSource="{RelativeSource AncestorType=Border}"/> - </MultiBinding> - </Rectangle.Width> - </Rectangle> - </Border> + </Grid> </DataTemplate> </DataGridTemplateColumn.CellTemplate> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs index 2ffa84992..970bbcd04 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs @@ -774,6 +774,7 @@ namespace Tango.PPC.Jobs.ViewModels printConfig.FirstUnitStartPosition = ResumeModel.FirstUnitStartPosition; printConfig.GlobalStartPosition = ResumeModel.GlobalStartPosition; printConfig.RemainingUnits = ResumeModel.RemainingUnits; + printConfig.ResumeProgress = ResumeModel.ResumeProgress; //LogManager.Log($"!!!!! Start Job resume : FirstUnitStartPosition = {ResumeModel.FirstUnitStartPosition} GlobalStartPosition = {ResumeModel.GlobalStartPosition} RemainingUnits = {ResumeModel.RemainingUnits}", LogCategory.Debug); } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs index ff406cefd..9ab000fc1 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs @@ -11,5 +11,6 @@ namespace Tango.PPC.Common.Printing public int RemainingUnits { get; set; } public double GlobalStartPosition { get; set; } public double FirstUnitStartPosition { get; set; } + public double ResumeProgress { get; set; } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resume/DefaultJobResumeManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resume/DefaultJobResumeManager.cs index 5f819d34d..4c4e3f169 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resume/DefaultJobResumeManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resume/DefaultJobResumeManager.cs @@ -55,6 +55,7 @@ namespace Tango.PPC.Common.Resume model.FirstUnitStartPosition = e.JobHandler.Status.CurrentUnitProgress; model.RemainingUnits = e.JobHandler.Status.RemainingUnits; model.GlobalStartPosition = e.JobHandler.JobStatus.Progress; + model.ResumeProgress = e.JobHandler.Status.ProgressMinusSettingUp; if (insert) { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resume/JobResumeModel.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resume/JobResumeModel.cs index 40386566e..db5d4d3d9 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resume/JobResumeModel.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resume/JobResumeModel.cs @@ -17,5 +17,7 @@ namespace Tango.PPC.Common.Resume public double GlobalStartPosition { get; set; } public double FirstUnitStartPosition { get; set; } + + public double ResumeProgress { get; set; } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/JobRunComposition.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/JobRunComposition.cs index c18d56693..86e1c7771 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/JobRunComposition.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/JobRunComposition.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.DTO; +using Tango.BL.Enumerations; namespace Tango.PPC.Shared.Statistics { @@ -12,6 +13,29 @@ namespace Tango.PPC.Shared.Statistics public JobRunDTO JobRun { get; set; } public PresentationJob Job { get; set; } + public double Distance + { + get + { + double actualStartPosition = 0; + double actualEndPosition = 0; + + actualStartPosition = JobRun.MachineType == MachineTypes.Eureka.ToInt32() ? JobRun.ActualStartPosition * 4 : JobRun.ActualStartPosition; + + if (JobRun.ActualEndPosition > 0) + { + actualEndPosition = JobRun.MachineType == MachineTypes.Eureka.ToInt32() ? JobRun.ActualEndPosition * 4 : JobRun.ActualEndPosition; + } + else + { + actualEndPosition = JobRun.MachineType == MachineTypes.Eureka.ToInt32() ? JobRun.EndPosition * 4 : JobRun.EndPosition; + } + + return actualEndPosition - actualStartPosition; + } + } + + public JobRunComposition() { Job = new PresentationJob(); 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 990e5e416..bcf0715fa 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs @@ -128,6 +128,7 @@ namespace Tango.PPC.UI.Printing config.ResumeConfig.FirstUnitStartPosition = printConfig.FirstUnitStartPosition; config.ResumeConfig.GlobalStartPosition = printConfig.GlobalStartPosition; config.ResumeConfig.RemainingUnits = printConfig.RemainingUnits; + config.ResumeConfig.ResumeProgress = printConfig.ResumeProgress; } handler = await _machineProvider.MachineOperator.Print(job, config); diff --git a/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs index fe0816ff5..139223d8d 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs @@ -341,5 +341,21 @@ namespace Tango.BL.DTO get; set; } + /// <summary> + /// actual start position + /// </summary> + public Double ActualStartPosition + { + get; set; + } + + /// <summary> + /// actual end position + /// </summary> + public Double ActualEndPosition + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/Job.cs b/Software/Visual_Studio/Tango.BL/Entities/Job.cs index 3139a5a5b..4e115f5e8 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/Job.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/Job.cs @@ -415,6 +415,10 @@ namespace Tango.BL.Entities [JsonIgnore] public VectorFineTuningRunModel VectorFineTuningRunModel { get; set; } + [NotMapped] + [JsonIgnore] + public double ResumeStartPosition { get; set; } + #endregion #region Event Handlers diff --git a/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs b/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs index 2ab10f14d..4aae63562 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs @@ -144,6 +144,8 @@ namespace Tango.BL.Entities } + [NotMapped] + [JsonIgnore] public TimeSpan TotalDyeingTime { get @@ -157,6 +159,17 @@ namespace Tango.BL.Entities } + [NotMapped] + [JsonIgnore] + public double Distance + { + get + { + return (ActualEndPosition > 0 ? ActualEndPosition : EndPosition) - ActualStartPosition; + } + } + + /// <summary> /// Initializes a new instance of the <see cref="JobRun" /> class. /// </summary> diff --git a/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs b/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs index efb6c70d6..6da5b8f8b 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs @@ -97,6 +97,10 @@ namespace Tango.BL.Entities public event EventHandler<Int32> MachineTypeChanged; + public event EventHandler<Double> ActualStartPositionChanged; + + public event EventHandler<Double> ActualEndPositionChanged; + protected String _machineguid; /// <summary> @@ -1169,6 +1173,60 @@ namespace Tango.BL.Entities } } + protected Double _actualstartposition; + + /// <summary> + /// Gets or sets the jobrunbase actual start position. + /// </summary> + + [Column("ACTUAL_START_POSITION")] + + public Double ActualStartPosition + { + get + { + return _actualstartposition; + } + + set + { + if (_actualstartposition != value) + { + _actualstartposition = value; + + OnActualStartPositionChanged(value); + + } + } + } + + protected Double _actualendposition; + + /// <summary> + /// Gets or sets the jobrunbase actual end position. + /// </summary> + + [Column("ACTUAL_END_POSITION")] + + public Double ActualEndPosition + { + get + { + return _actualendposition; + } + + set + { + if (_actualendposition != value) + { + _actualendposition = value; + + OnActualEndPositionChanged(value); + + } + } + } + /// <summary> /// Called when the JobName has changed. /// </summary> @@ -1485,6 +1543,24 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the ActualStartPosition has changed. + /// </summary> + protected virtual void OnActualStartPositionChanged(Double actualstartposition) + { + ActualStartPositionChanged?.Invoke(this, actualstartposition); + RaisePropertyChanged(nameof(ActualStartPosition)); + } + + /// <summary> + /// Called when the ActualEndPosition has changed. + /// </summary> + protected virtual void OnActualEndPositionChanged(Double actualendposition) + { + ActualEndPositionChanged?.Invoke(this, actualendposition); + RaisePropertyChanged(nameof(ActualEndPosition)); + } + + /// <summary> /// Initializes a new instance of the <see cref="JobRunBase" /> class. /// </summary> public JobRunBase() : base() diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs index cf7a202b4..82150c63c 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs @@ -57,5 +57,7 @@ namespace Tango.DAL.Remote.DB public string PROCESS_PARAMETERS_TABLE_GUID { get; set; } public string FINE_TUNING_STRING { get; set; } public int MACHINE_TYPE { get; set; } + public double ACTUAL_START_POSITION { get; set; } + public double ACTUAL_END_POSITION { 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 148f36159..a8b4ebbd6 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -794,6 +794,8 @@ <Property Name="PROCESS_PARAMETERS_TABLE_GUID" Type="varchar" MaxLength="36" /> <Property Name="FINE_TUNING_STRING" Type="nvarchar" MaxLength="2000" /> <Property Name="MACHINE_TYPE" Type="int" Nullable="false" /> + <Property Name="ACTUAL_START_POSITION" Type="float" Nullable="false" /> + <Property Name="ACTUAL_END_POSITION" Type="float" Nullable="false" /> </EntityType> <EntityType Name="JOBS"> <Key> @@ -6447,6 +6449,8 @@ <Property Name="PROCESS_PARAMETERS_TABLE_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="FINE_TUNING_STRING" Type="String" MaxLength="2000" FixedLength="false" Unicode="true" /> <Property Name="MACHINE_TYPE" Type="Int32" Nullable="false" /> + <Property Name="ACTUAL_START_POSITION" Type="Double" Nullable="false" /> + <Property Name="ACTUAL_END_POSITION" Type="Double" Nullable="false" /> </EntityType> <EntityType Name="JOB"> <Key> @@ -9894,6 +9898,8 @@ <EntitySetMapping Name="JOB_RUNS"> <EntityTypeMapping TypeName="RemoteModel.JOB_RUNS"> <MappingFragment StoreEntitySet="JOB_RUNS"> + <ScalarProperty Name="ACTUAL_END_POSITION" ColumnName="ACTUAL_END_POSITION" /> + <ScalarProperty Name="ACTUAL_START_POSITION" ColumnName="ACTUAL_START_POSITION" /> <ScalarProperty Name="MACHINE_TYPE" ColumnName="MACHINE_TYPE" /> <ScalarProperty Name="FINE_TUNING_STRING" ColumnName="FINE_TUNING_STRING" /> <ScalarProperty Name="PROCESS_PARAMETERS_TABLE_GUID" ColumnName="PROCESS_PARAMETERS_TABLE_GUID" /> 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 7116aa48f..0887ffcae 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,102 +5,102 @@ <!-- Diagram content (shape and connector positions) --> <edmx:Diagrams> <Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1" ZoomLevel="58"> - <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="34.75" /> - <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="67" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="83.25" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="77.375" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="74.5" /> - <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="0.75" PointY="2.125" /> - <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="22.125" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="18.25" /> + <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="16" /> + <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="4.5" PointY="77" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="71.125" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="4.5" PointY="74" /> + <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="3.75" PointY="2.125" /> + <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="22.25" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="42.125" /> <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="29.5" /> - <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="8" PointY="43.375" /> - <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="8.25" PointY="21.75" /> - <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="44.875" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="6.625" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="3.75" PointY="7.125" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="6" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="8.25" PointY="25.625" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="2.75" PointY="2.125" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="33.75" /> - <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="3.75" PointY="80.25" /> - <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="63.125" /> - <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="30.625" /> - <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="8.25" PointY="83.375" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="5.75" PointY="98.5" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="8" PointY="97.875" /> - <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="80.25" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="70.5" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="21.625" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="32.875" /> - <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="49.5" /> - <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="12.125" /> - <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="11.75" PointY="10.125" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="94.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="90.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="90.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="3.75" PointY="86.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="4.5" PointY="101.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="6.75" PointY="91.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="10.5" PointY="95.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="12.75" PointY="87.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="7.5" PointY="102.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="9.75" PointY="88" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="94.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="6.75" PointY="87.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="86.125" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="8.5" PointY="79.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="10.75" PointY="83.75" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="8" PointY="63.25" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="10.25" PointY="43.75" /> - <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="13.75" PointY="2.125" /> + <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="6.75" PointY="37.375" /> + <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="29.75" /> + <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="12" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="59.625" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="0.75" PointY="54.125" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="3" PointY="52.875" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="25.75" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="5.75" PointY="2.125" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="30.75" /> + <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="6.75" PointY="72.25" /> + <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="48.875" /> + <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="37.375" /> + <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="11.25" PointY="82.75" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="4.5" PointY="13.5" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="6.75" PointY="12.875" /> + <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="79.875" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="2.25" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="26.25" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="39.25" /> + <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="8.625" /> + <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="15.375" /> + <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="5.75" PointY="6.125" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="9.5" PointY="90.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="11.75" PointY="70.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="7.5" PointY="41.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="9.75" PointY="61" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="7.5" PointY="86.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="9.75" PointY="65.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="10.5" PointY="57.125" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="12.75" PointY="60.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="12.5" PointY="79.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="14.75" PointY="71.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="63.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="6.75" PointY="67" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="66.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="9.5" PointY="94.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="11.75" PointY="75" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="6.75" PointY="45.25" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="9" PointY="44.75" /> + <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="18.75" PointY="6.125" /> <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="22" /> - <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="35.75" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="7.5" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="29.875" /> - <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="41.625" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="13.75" PointY="13.125" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="39.625" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="3.75" PointY="71.125" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="6" PointY="71.25" /> - <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="57.875" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="15.375" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="26.125" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="38.75" /> - <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="8" PointY="66.625" /> - <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="3.75" PointY="65.125" /> - <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="15" PointY="49.625" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="46.625" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="52.875" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="8.75" PointY="6.25" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="11" PointY="6.5" /> - <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="11" PointY="2.25" /> - <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.625" /> - <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="5.25" PointY="25.375" /> - <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="53.625" /> - <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="17.25" PointY="53.625" /> - <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="5.75" PointY="16.125" /> + <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="18.625" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="17.375" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="22" /> + <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="36" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="2.75" PointY="10.125" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="12.5" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="6.75" PointY="82.875" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="9" PointY="70.5" /> + <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="42.625" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="21.625" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="32.875" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="45.5" /> + <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="6.75" PointY="77.625" /> + <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="5.75" /> + <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="50.125" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="56.375" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="16.75" PointY="2.375" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="19" PointY="2.625" /> + <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="16" PointY="14.375" /> + <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.75" /> + <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="25.5" /> + <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="4.625" /> + <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="2.75" /> + <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="13.75" PointY="18.125" /> <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="25.75" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="26" /> - <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="15.75" /> - <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="5.25" PointY="12.5" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="26.125" /> + <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="5.875" /> + <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="11.25" PointY="34.375" /> <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="22.125" /> - <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="11.25" PointY="13.75" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="11.25" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="13.25" PointY="44" /> - <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="15.75" PointY="2.125" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="15.75" PointY="5.125" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="53.625" /> - <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="15.75" PointY="10.125" /> - <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="11.75" PointY="17.125" /> - <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="15.75" PointY="14.125" /> - <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="13.75" PointY="17.125" /> - <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="15.75" PointY="17.125" /> - <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="17.75" PointY="2.125" /> - <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="37.25" /> - <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="38.625" /> - <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="8.75" PointY="2.75" /> - <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="17.125" /> + <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="14.25" PointY="10.75" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="13.375" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="47.625" /> + <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="15.75" PointY="18.125" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="18.75" PointY="17.125" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="44.5" /> + <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="20.75" PointY="6.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="20.75" PointY="10.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="20.75" PointY="13.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="20.75" PointY="16.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="20.75" PointY="21.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="13.75" PointY="22.125" /> + <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="7.375" /> + <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="6.75" /> + <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="13.75" PointY="14.875" /> + <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="34.25" /> <AssociationConnector Association="RemoteModel.FK_ACTION_LOGS_USERS" /> <AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" /> <AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" /> diff --git a/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs index 6285bb7b0..d4fcf7f41 100644 --- a/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs +++ b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs @@ -157,6 +157,8 @@ namespace Tango.Integration.JobRuns run.LiquidQuantities = e.LiquidQuantities; run.IsGradient = _job.Segments.Any(x => x.BrushStops.Count > 1); run.GradientResolutionCm = MachineOperator.GradientGenerationConfiguration.ResolutionCM; + run.ActualStartPosition = e.Job.ResumeStartPosition; + run.ActualEndPosition = e.JobHandler.Status.ProgressMinusSettingUp; if (_defaultMachine != null) { diff --git a/Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs b/Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs index 43beba7f0..0fa5a15c6 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs @@ -13,6 +13,7 @@ namespace Tango.Integration.Operation public int RemainingUnits { get; set; } public double GlobalStartPosition { get; set; } public double FirstUnitStartPosition { get; set; } + public double ResumeProgress { get; set; } } public double LubricationVolume { get; set; } diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs index 063aa740d..2e84d3fb5 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs @@ -2796,6 +2796,11 @@ namespace Tango.Integration.Operation jobForJobRun.Name = job.Name; jobForJobRun.ID = job.ID; + if (config.ResumeConfig != null) + { + jobForJobRun.ResumeStartPosition = config.ResumeConfig.ResumeProgress; + } + int max = job.OrderedSegmentsWithGroups.Last().SegmentIndex + 1; for (int i = 0; i < job.NumberOfUnits - 1; i++) diff --git a/Software/Visual_Studio/Tango.SharedUI/Controls/RangeProgressBar.cs b/Software/Visual_Studio/Tango.SharedUI/Controls/RangeProgressBar.cs new file mode 100644 index 000000000..f1d323a3a --- /dev/null +++ b/Software/Visual_Studio/Tango.SharedUI/Controls/RangeProgressBar.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.SharedUI.Controls +{ + public class RangeProgressBar : Control + { + private Border _innerBorder; + private Border _outerBorder; + + static RangeProgressBar() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(RangeProgressBar), new FrameworkPropertyMetadata(typeof(RangeProgressBar))); + } + + public Brush FillBrush + { + get { return (Brush)GetValue(FillBrushProperty); } + set { SetValue(FillBrushProperty, value); } + } + public static readonly DependencyProperty FillBrushProperty = + DependencyProperty.Register("FillBrush", typeof(Brush), typeof(RangeProgressBar), new PropertyMetadata(Brushes.Red)); + + public double Maximum + { + get { return (double)GetValue(MaximumProperty); } + set { SetValue(MaximumProperty, value); } + } + public static readonly DependencyProperty MaximumProperty = + DependencyProperty.Register("Maximum", typeof(double), typeof(RangeProgressBar), new FrameworkPropertyMetadata(100.0, FrameworkPropertyMetadataOptions.AffectsRender)); + + public double LowerValue + { + get { return (double)GetValue(LowerValueProperty); } + set { SetValue(LowerValueProperty, value); } + } + public static readonly DependencyProperty LowerValueProperty = + DependencyProperty.Register("LowerValue", typeof(double), typeof(RangeProgressBar), new FrameworkPropertyMetadata(100.0, FrameworkPropertyMetadataOptions.AffectsRender)); + + public double UpperValue + { + get { return (double)GetValue(UpperValueProperty); } + set { SetValue(UpperValueProperty, value); } + } + public static readonly DependencyProperty UpperValueProperty = + DependencyProperty.Register("UpperValue", typeof(double), typeof(RangeProgressBar), new FrameworkPropertyMetadata(100.0, FrameworkPropertyMetadataOptions.AffectsRender)); + + public override void OnApplyTemplate() + { + base.OnApplyTemplate(); + _innerBorder = GetTemplateChild("PART_InnerBorder") as Border; + _outerBorder = GetTemplateChild("PART_OuterBorder") as Border; + } + + public RangeProgressBar() + { + SizeChanged += RangeProgressBar_SizeChanged; + } + + private void RangeProgressBar_SizeChanged(object sender, SizeChangedEventArgs e) + { + PlaceInnerBorder(); + } + + private void PlaceInnerBorder() + { + if (_innerBorder != null && !double.IsNaN(_outerBorder.ActualWidth) && _outerBorder.ActualWidth > 0 && Maximum > 0) + { + _innerBorder.Margin = new Thickness(LowerValue / Maximum * _outerBorder.ActualWidth, 0, _outerBorder.ActualWidth - (UpperValue / Maximum * _outerBorder.ActualWidth), 0); + } + } + + protected override void OnRender(DrawingContext drawingContext) + { + base.OnRender(drawingContext); + + PlaceInnerBorder(); + } + } +} diff --git a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj index c7eccab9f..07c79e7af 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj +++ b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj @@ -88,6 +88,7 @@ <DependentUpon>MultiTransitionControl.xaml</DependentUpon> </Compile> <Compile Include="Controls\NavigationControl.cs" /> + <Compile Include="Controls\RangeProgressBar.cs" /> <Compile Include="Controls\SearchComboBox.cs" /> <Compile Include="Controls\SpannedUniformGrid.cs" /> <Compile Include="Controls\TableGrid.cs" /> @@ -264,7 +265,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.SharedUI/Themes/Generic.xaml b/Software/Visual_Studio/Tango.SharedUI/Themes/Generic.xaml index ec9e86d07..f6aa44ee5 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Themes/Generic.xaml +++ b/Software/Visual_Studio/Tango.SharedUI/Themes/Generic.xaml @@ -139,4 +139,20 @@ </Setter.Value> </Setter> </Style> + + <Style TargetType="{x:Type local:RangeProgressBar}"> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type local:RangeProgressBar}"> + <Border x:Name="PART_OuterBorder" Background="{TemplateBinding Background}" + BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}"> + <Border x:Name="PART_InnerBorder" Background="{TemplateBinding FillBrush}"> + + </Border> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> </ResourceDictionary> diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs index 22709dcd5..131483550 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs @@ -24,4 +24,4 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("3.0.21.0")] +[assembly: AssemblyVersion("3.0.22.0")] |
