aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer
diff options
context:
space:
mode:
authorRoy <roy.mail.net@gmail.com>2018-02-16 19:04:47 +0200
committerRoy <roy.mail.net@gmail.com>2018-02-16 19:04:47 +0200
commite332170566c295fb4ff375498867f984f1570707 (patch)
tree9b9b72067d9d03e01f262b26e01203dada4fe624 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer
parent9879f87a345bec10a3ee26e9ec669add2b5bfcd3 (diff)
downloadTango-e332170566c295fb4ff375498867f984f1570707.tar.gz
Tango-e332170566c295fb4ff375498867f984f1570707.zip
Before developer module redesign.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs84
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml151
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml.cs2
3 files changed, 192 insertions, 45 deletions
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 b2f6c3579..013129fc1 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
@@ -47,7 +47,6 @@ namespace Tango.MachineStudio.Developer.ViewModels
private int _fullScreenGraphIndex;
private JobHandler _jobHandler;
-
#region Properties
/// <summary>
@@ -329,6 +328,16 @@ namespace Tango.MachineStudio.Developer.ViewModels
set { _fullScreenGraph = value; RaisePropertyChangedAuto(); }
}
+ private List<Segment> _runningJobSegments;
+ /// <summary>
+ /// Gets or sets the running job segments.
+ /// </summary>
+ public List<Segment> RunningJobSegments
+ {
+ get { return _runningJobSegments; }
+ set { _runningJobSegments = value; RaisePropertyChangedAuto(); }
+ }
+
#endregion
#region Commands
@@ -477,11 +486,21 @@ namespace Tango.MachineStudio.Developer.ViewModels
#region Event Handlers
+ /// <summary>
+ /// Handles the diagnostics provider frame received event.
+ /// </summary>
+ /// <param name="sender">The sender.</param>
+ /// <param name="response">The response.</param>
private void DiagnosticsFrameProvider_FrameReceived(object sender, PushDiagnosticsResponse response)
{
PopulateDiagnosticsData(response);
}
+ /// <summary>
+ /// Handles the application manager connected machine changes event.
+ /// </summary>
+ /// <param name="sender">The sender.</param>
+ /// <param name="machine">The machine.</param>
private void ApplicationManager_ConnectedMachineChanged(object sender, IExternalBridgeClient machine)
{
MachineOperator = machine;
@@ -497,11 +516,21 @@ namespace Tango.MachineStudio.Developer.ViewModels
InvalidateLiquidFactorsAndProcessTables();
}
+ /// <summary>
+ /// Handles the LengthChanged event of the SelectedJob.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
private void SelectedJob_LengthChanged(object sender, EventArgs e)
{
UpdateEstimatedDuration();
}
+ /// <summary>
+ /// Handles the DyeingSpeedMinInkUptakeChanged event of the SelectedProcessParametersTable.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
private void SelectedProcessParametersTable_DyeingSpeedMinInkUptakeChanged(object sender, EventArgs e)
{
if (SelectedSegment != null)
@@ -693,6 +722,7 @@ namespace Tango.MachineStudio.Developer.ViewModels
RunningJob = SelectedJob;
_runningJobEstimatedDuration = EstimatedDuration;
+ RunningJobSegments = CreateRunningJobEffectiveSegments(RunningJob);
_jobHandler = MachineOperator.Print(SelectedJob, SelectedProcessParametersTable);
@@ -700,6 +730,27 @@ namespace Tango.MachineStudio.Developer.ViewModels
{
RunningJobRemainingTime = _runningJobEstimatedDuration - TimeSpan.FromSeconds(RunningJobProgress / (SelectedProcessParametersTable.DyeingSpeed / 100d));
RunningJobProgress = status.Progress;
+
+ foreach (var segment in RunningJobSegments)
+ {
+ var previousSegmentsWithThis = RunningJobSegments.Where(s => RunningJobSegments.IndexOf(s) <= RunningJobSegments.IndexOf(segment)).ToList();
+ var segmentsDuration = TimeSpan.FromSeconds(previousSegmentsWithThis.Sum(s => s.Length) / (SelectedProcessParametersTable.DyeingSpeed / 100d));
+ var segmentDuration = TimeSpan.FromSeconds(segment.Length / (SelectedProcessParametersTable.DyeingSpeed / 100d));
+ TimeSpan remaining = segmentsDuration - TimeSpan.FromSeconds(RunningJobProgress / (SelectedProcessParametersTable.DyeingSpeed / 100d));
+ if (remaining >= TimeSpan.Zero)
+ {
+ segment.RemainingTime = remaining;
+ }
+ if (remaining < segmentDuration)
+ {
+ segment.Started = true;
+ }
+ if (remaining <= TimeSpan.Zero)
+ {
+ segment.Completed = true;
+ segment.Started = false;
+ }
+ }
};
_jobHandler.Failed += (x, ex) =>
@@ -729,6 +780,7 @@ namespace Tango.MachineStudio.Developer.ViewModels
{
using (_notification.PushTaskItem("Saving machine jobs..."))
{
+ SelectedJob.CreationDate = DateTime.UtcNow;
await SelectedJob.SaveAsync();
}
}
@@ -938,6 +990,36 @@ namespace Tango.MachineStudio.Developer.ViewModels
}
}
+ private List<Segment> CreateRunningJobEffectiveSegments(Job job)
+ {
+ List<Segment> segments = new List<Segment>();
+ foreach (var s in job.Segments)
+ {
+ s.Completed = false;
+ s.Started = false;
+ segments.Add(s);
+
+ if (job.EnableInterSegment && job.Segments.IndexOf(s) != job.Segments.Count - 1)
+ {
+ segments.Add(new Segment()
+ {
+ Length = job.InterSegmentLength,
+ BrushStops = new System.Collections.ObjectModel.ObservableCollection<BrushStop>()
+ {
+ new BrushStop()
+ {
+ Color = Colors.White,
+ }
+ },
+ Started = false,
+ Completed = false
+ });
+ }
+ }
+
+ return segments;
+ }
+
#endregion
#region Override Methods
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 b6d859cd4..240e3127c 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
@@ -255,17 +255,17 @@
</Grid.Style>
<Border BorderBrush="#404040" BorderThickness="0 0 0 1" Padding="20">
<DockPanel>
- <Grid DockPanel.Dock="Left" MinWidth="190">
- <StackPanel Orientation="Horizontal" Visibility="{Binding IsJobRunning,Converter={StaticResource BooleanToVisibilityConverter}}">
- <ProgressBar Foreground="#FF6464" Width="30" Height="30" HorizontalAlignment="Center" VerticalAlignment="Center" IsIndeterminate="True" Style="{StaticResource MaterialDesignCircularProgressBar}" Value="0" />
- <TextBlock VerticalAlignment="Center" Margin="10 0 0 0" FontSize="14" FontStyle="Italic" FontWeight="DemiBold" Foreground="#FF6464">
+ <Grid DockPanel.Dock="Left" MinWidth="190" VerticalAlignment="Center" Margin="0 0 0 0">
+ <StackPanel Orientation="Vertical" Visibility="{Binding IsJobRunning,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <ProgressBar Foreground="#FF6464" Width="50" Height="50" HorizontalAlignment="Center" VerticalAlignment="Center" IsIndeterminate="True" Style="{StaticResource MaterialDesignCircularProgressBar}" Value="0" />
+ <TextBlock Margin="0 10 0 0" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="14" FontStyle="Italic" FontWeight="DemiBold" Foreground="#FF6464" TextWrapping="Wrap">
<Run Text="Running '"></Run>
<Run Text="{Binding RunningJob.Name}"></Run>
<Run Text="'..."></Run>
</TextBlock>
</StackPanel>
</Grid>
- <StackPanel DockPanel.Dock="Right">
+ <StackPanel DockPanel.Dock="Right" VerticalAlignment="Center" Margin="0 20 0 0">
<StackPanel Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" FontSize="30" FontFamily="{StaticResource digital-7}" Margin="0 0 40 0" Foreground="#FF6464" Width="100" Text="{Binding RunningJobRemainingTime,StringFormat=hh\\:mm\\:ss}"></TextBlock>
@@ -279,9 +279,10 @@
</StackPanel>
<Grid>
<Grid>
- <Border VerticalAlignment="Bottom" Width="1200" BorderBrush="#404040" BorderThickness="0" ClipToBounds="False">
- <Grid ClipToBounds="False" Height="32">
- <ItemsControl ClipToBounds="False" x:Name="runningJobBrushList">
+ <Border Margin="0 10 0 0" VerticalAlignment="Bottom" Width="1200" BorderBrush="#404040" BorderThickness="0" ClipToBounds="False">
+ <Grid ClipToBounds="False" >
+
+ <ItemsControl ClipToBounds="False" x:Name="runningJobBrushList" ItemsSource="{Binding RunningJobSegments}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" ClipToBounds="False"></StackPanel>
@@ -289,7 +290,7 @@
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
- <Grid>
+ <Grid ClipToBounds="False">
<Grid.Width>
<MultiBinding Converter="{StaticResource SegmentLengthToWidthConverter}">
<Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="DataContext.RunningJob"></Binding>
@@ -298,53 +299,85 @@
<Binding Path="Length"></Binding>
</MultiBinding>
</Grid.Width>
- <Rectangle Height="10" VerticalAlignment="Bottom">
- <Rectangle.Fill>
- <MultiBinding Converter="{StaticResource SegmentToBrushConverterMulti}">
- <Binding Path="."></Binding>
- <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="DataContext.RunningJob"></Binding>
- <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="DataContext.RunningJob.Length"></Binding>
- </MultiBinding>
- </Rectangle.Fill>
- </Rectangle>
- <StackPanel Margin="0 0 0 0" HorizontalAlignment="Center">
- <TextBlock FontSize="9" HorizontalAlignment="Right">
+ <StackPanel Margin="0 0 0 0" ClipToBounds="False">
+
+ <StackPanel Margin="0 0 0 0" HorizontalAlignment="Center" VerticalAlignment="Center">
+ <TextBlock Margin="0 0 0 0" FontSize="14" HorizontalAlignment="Right">
<Run Text="{Binding Length,Mode=OneWay}"></Run>
- <Run FontSize="8" Text="m"></Run>
- </TextBlock>
- <materialDesign:PackIcon HorizontalAlignment="Right" RenderTransformOrigin="0.5,0.5" Kind="Triangle" Width="8" Height="8">
- <materialDesign:PackIcon.RenderTransform>
- <RotateTransform Angle="180" />
- </materialDesign:PackIcon.RenderTransform>
- </materialDesign:PackIcon>
+ <Run FontSize="12" Text="m"></Run>
+ </TextBlock>
+ <materialDesign:PackIcon HorizontalAlignment="Center" RenderTransformOrigin="0.5,0.5" Kind="Triangle" Width="12" Height="12">
+ <materialDesign:PackIcon.RenderTransform>
+ <RotateTransform Angle="180" />
+ </materialDesign:PackIcon.RenderTransform>
+ </materialDesign:PackIcon>
+ </StackPanel>
+
+ <Rectangle Height="30" Margin="0 10 0 0" VerticalAlignment="Center">
+ <Rectangle.Fill>
+ <MultiBinding Converter="{StaticResource SegmentToBrushConverterMulti}">
+ <Binding Path="."></Binding>
+ <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="DataContext.RunningJob"></Binding>
+ <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="DataContext.RunningJob.Length"></Binding>
+ </MultiBinding>
+ </Rectangle.Fill>
+ </Rectangle>
+
+ <Canvas Height="30" HorizontalAlignment="Center" Width="80">
+ <Label Padding="0" Margin="0">
+ <Label.Style>
+ <Style TargetType="Label">
+ <Setter Property="Content" Value="{x:Null}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Started}" Value="True">
+ <Setter Property="Content">
+ <Setter.Value>
+ <TextBlock Text="{Binding RemainingTime,StringFormat=hh\\:mm\\:ss}" Foreground="#FF6464" FontFamily="{StaticResource digital-7}" HorizontalAlignment="Center" Margin="10" FontSize="20"></TextBlock>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Completed}" Value="True">
+ <Setter Property="Content">
+ <Setter.Value>
+ <materialDesign:PackIcon Margin="30 10 0 0" HorizontalAlignment="Center" Width="24" Height="24" Kind="Check" Foreground="#47FF00" />
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Label.Style>
+ </Label>
+ </Canvas>
</StackPanel>
+
+ <Rectangle HorizontalAlignment="Right" Stroke="White" Margin="0 35 0 25"></Rectangle>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
- <StackPanel Margin="-20 -5 0 0" HorizontalAlignment="Left">
- <TextBlock FontSize="9">
+ <StackPanel Margin="-40 -5 0 0" HorizontalAlignment="Left">
+ <TextBlock FontSize="14">
<Run Text="0"></Run>
- <Run FontSize="8" Text="m"></Run>
+ <Run FontSize="13" Text="m"></Run>
</TextBlock>
- <materialDesign:PackIcon HorizontalAlignment="Right" RenderTransformOrigin="0.5,0.5" Kind="SubdirectoryArrowRight" Width="16" Height="16">
+ <materialDesign:PackIcon HorizontalAlignment="Right" RenderTransformOrigin="0.5,0.5" Kind="SubdirectoryArrowRight" Width="20" Height="20">
</materialDesign:PackIcon>
</StackPanel>
- <StackPanel Margin="0 -5 -20 0" HorizontalAlignment="Right">
- <TextBlock FontSize="9">
+ <StackPanel Margin="0 -5 -40 0" HorizontalAlignment="Right">
+ <TextBlock FontSize="14">
<Run Text="{Binding RunningJob.Length,Mode=OneWay}"></Run>
- <Run FontSize="8" Text="m"></Run>
+ <Run FontSize="13" Text="m"></Run>
</TextBlock>
- <materialDesign:PackIcon HorizontalAlignment="Right" RenderTransformOrigin="0.5,0.5" Kind="FlagCheckered" Width="16" Height="16">
+ <materialDesign:PackIcon HorizontalAlignment="Right" RenderTransformOrigin="0.5,0.5" Kind="FlagCheckered" Width="20" Height="20">
</materialDesign:PackIcon>
</StackPanel>
- <Border BorderBrush="#404040" BorderThickness="1" VerticalAlignment="Bottom" Height="10">
+ <Border BorderBrush="#404040" BorderThickness="1" VerticalAlignment="Center" Height="30" Margin="0 11 0 0">
</Border>
@@ -357,8 +390,8 @@
<Binding ElementName="jobProgressCanvas" Path="ActualWidth" />
</MultiBinding>
</Canvas.Left>
- <materialDesign:PackIcon Kind="MapMarker" Foreground="#FF6464" Background="#202020" Width="16" Height="16" Margin="-6 0 0 0" />
- <TextBlock Margin="-4 -18 0 0" FontSize="10" Foreground="#FF6464" VerticalAlignment="Top" Background="#202020" Height="18" Text="{Binding RunningJobProgress,StringFormat=0.0}"></TextBlock>
+ <materialDesign:PackIcon Kind="MapMarker" Foreground="#FF6464" Width="35" Height="35" Margin="-17 0 0 0" />
+ <TextBlock Margin="-11 -23 0 0" FontSize="16" Foreground="#FF6464" VerticalAlignment="Top" Height="18" Text="{Binding RunningJobProgress,StringFormat=0.0}"></TextBlock>
</Grid>
</Canvas>
</Grid>
@@ -804,7 +837,22 @@
<Grid>
- <Rectangle HorizontalAlignment="Right" StrokeDashArray="5" StrokeThickness="1" Stroke="Silver" Margin="0 40 0 40"></Rectangle>
+ <Rectangle HorizontalAlignment="Right" StrokeThickness="1" Width="3" Margin="0 40 0 40">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="0.5" Color="Black" />
+ <GradientStop Offset="1.1" Color="Transparent" />
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ <Rectangle.Stroke>
+ <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="0.5" Color="White" />
+ <GradientStop Offset="1" Color="Transparent" />
+ </LinearGradientBrush>
+ </Rectangle.Stroke>
+ </Rectangle>
<DockPanel Margin="10">
<StackPanel DockPanel.Dock="Top" >
<StackPanel Orientation="Horizontal">
@@ -812,7 +860,7 @@
<TextBlock VerticalAlignment="Center" FontWeight="SemiBold" Margin="10 0 0 0" FontSize="30">MACHINE JOBS</TextBlock>
</StackPanel>
- <Rectangle VerticalAlignment="Bottom" StrokeDashArray="7" StrokeThickness="1" Stroke="Silver" Margin="0 8 0 0"></Rectangle>
+
</StackPanel>
<Border DockPanel.Dock="Bottom" CornerRadius="5" BorderThickness="1" BorderBrush="Gainsboro" Background="#7BFFFFFF">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
@@ -1027,6 +1075,23 @@
</ListBox>
</DockPanel>
+ <Rectangle HorizontalAlignment="Right" StrokeThickness="1" Width="3" Margin="0 40 0 40">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="0.5" Color="Black" />
+ <GradientStop Offset="1.1" Color="Transparent" />
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ <Rectangle.Stroke>
+ <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="0.5" Color="White" />
+ <GradientStop Offset="1" Color="Transparent" />
+ </LinearGradientBrush>
+ </Rectangle.Stroke>
+ </Rectangle>
+
<Grid Grid.Column="1" Margin="10 5 0 0">
<DockPanel>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top">
@@ -1106,8 +1171,8 @@
<Border BorderThickness="1" CornerRadius="5" Padding="10" dragAndDrop:DragAndDropService.Drop="OnBrushStopBorderDrop">
<Border.Style>
<Style TargetType="Border" BasedOn="{StaticResource brushStopBorder}">
- <Setter Property="BorderBrush" Value="{StaticResource SideBarBackground}"></Setter>
- <Setter Property="Background" Value="#33FFFFFF"></Setter>
+ <Setter Property="BorderBrush" Value="#B5B5B5"></Setter>
+ <Setter Property="Background" Value="#70FFFFFF"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected,FallbackValue=False}" Value="True">
<Setter Property="BorderBrush" Value="Gainsboro"></Setter>
@@ -1521,7 +1586,7 @@
<StackPanel HorizontalAlignment="Left" Margin="0 0 0 0">
<TextBlock FontSize="14" Margin="0 20 0 0">
<Run FontWeight="Bold">ESTIMATED DURATION:</Run>
- <Run FontSize="18" Foreground="{StaticResource AccentColorBrush}" FontStyle="Italic" FontFamily="{StaticResource digital-7}" Text="{Binding EstimatedDuration,StringFormat=hh\\:mm\\:ss,TargetNullValue='00:00:00'}"></Run>
+ <Run FontSize="18" FontStyle="Italic" FontFamily="{StaticResource digital-7}" Text="{Binding EstimatedDuration,StringFormat=hh\\:mm\\:ss,TargetNullValue='00:00:00'}"></Run>
</TextBlock>
</StackPanel>
</Grid>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml.cs
index d47a7ecb1..e52a686bc 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml.cs
@@ -146,7 +146,7 @@ namespace Tango.MachineStudio.Developer.Views
private void OnJobStartClick(object sender, RoutedEventArgs e)
{
- runningJobBrushList.ItemsSource = jobBrushList.ItemsSource;
+
}
private void HiveColorPickerControl_SelectedColorChanged(object sender, Color e)