diff options
| author | Avi Levkovich <avi@twine-s.com> | 2018-07-31 10:06:51 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2018-07-31 10:06:51 +0300 |
| commit | b6b2f9ad4c96deface6763adbb2ac533e9706d1b (patch) | |
| tree | 732a7ce2f629ab4cd9a1bfc1bec79adf97185025 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common | |
| parent | 90b65a54cd28ee8b0d908c86795a7096c4073e83 (diff) | |
| parent | c728eba7cf217972c47e0a65afcb1975f6d6f6f1 (diff) | |
| download | Tango-b6b2f9ad4c96deface6763adbb2ac533e9706d1b.tar.gz Tango-b6b2f9ad4c96deface6763adbb2ac533e9706d1b.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common')
9 files changed, 66 insertions, 8 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml index f12a433df..33755f909 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml @@ -63,7 +63,7 @@ </StackPanel> </Border> <Border Grid.Column="1" BorderThickness="1" BorderBrush="{StaticResource borderBrush}" Background="{DynamicResource graphBackground}" Margin="5 0 0 0"> - <graphEx:RealTimeGraphExLineErase x:Name="Graph" x:FieldModifier="public" UseAutoRange="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=UseAutoRange}" Controller="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Controller}" Antialiased="True" RefreshRate="30" MarkerColor="{StaticResource graphsMarkerColor}" FillGraph="False" Stroke="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Color}" Minimum="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Minimum}" Maximum="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Maximum}"> + <graphEx:RealTimeGraphExLineErase x:Name="Graph" x:FieldModifier="public" UseAutoRange="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=UseAutoRange}" Controller="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Controller}" Antialiased="True" RefreshRate="30" MarkerColor="{StaticResource graphsMarkerColor}" FillGraph="False" Stroke="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Color}" Minimum="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Minimum,Mode=TwoWay}" Maximum="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Maximum,Mode=TwoWay}"> <graphEx:RealTimeGraphExLineErase.Components> <components:MouseValueToolTip ToolTipTemplate="{StaticResource graphTooltipTemplate}" /> <components:GridLines Rows="4" Columns="6" GridBrush="{DynamicResource graphGridLinesBrush}"></components:GridLines> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml index 1e1a5b123..45b4aa9fb 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml @@ -63,7 +63,7 @@ </StackPanel> </Border> <Border Grid.Column="1" BorderThickness="1" BorderBrush="{StaticResource borderBrush}" Background="{DynamicResource graphBackground}" Margin="5 0 0 0"> - <graphEx:RealTimeGraphExMultiLineErase x:Name="Graph" x:FieldModifier="public" UseAutoRange="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=UseAutoRange}" Controller="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Controller}" Antialiased="True" RefreshRate="30" MarkerColor="{StaticResource graphsMarkerColor}" FillGraph="False" Minimum="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Minimum}" Maximum="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Maximum}" Stroke="DodgerBlue"> + <graphEx:RealTimeGraphExMultiLineErase x:Name="Graph" x:FieldModifier="public" UseAutoRange="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=UseAutoRange}" Controller="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Controller}" Antialiased="True" RefreshRate="30" MarkerColor="{StaticResource graphsMarkerColor}" FillGraph="False" Minimum="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Minimum,Mode=TwoWay}" Maximum="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=Maximum,Mode=TwoWay}" Stroke="DodgerBlue"> <graphEx:RealTimeGraphExMultiLineErase.Components> <components:MouseValueToolTip ToolTipTemplate="{StaticResource graphTooltipTemplate}" /> <components:GridLines Rows="4" Columns="6" GridBrush="{DynamicResource graphGridLinesBrush}"></components:GridLines> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs index d34ef4b96..477332ad9 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs @@ -5,9 +5,10 @@ using System.Text; using System.Threading.Tasks; using Tango.Core; using Tango.Integration.Operation; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.MachineStudio.Common.StudioApplication; using Tango.PMR.Diagnostics; +using System.Diagnostics; namespace Tango.MachineStudio.Common.Diagnostics { @@ -18,6 +19,10 @@ namespace Tango.MachineStudio.Common.Diagnostics public class DefaultDiagnosticsFrameProvider : ExtendedObject, IDiagnosticsFrameProvider { private IStudioApplicationManager _application; + private Stopwatch _watch; + private List<double> _rates; + private DateTime _last_measure; + private const int _min_rate_change = 4; private bool _disable; /// <summary> @@ -32,10 +37,27 @@ namespace Tango.MachineStudio.Common.Diagnostics } } + private double _frameRate; + /// <summary> + /// Gets the current diagnostics frame rate. + /// </summary> + public double FrameRate + { + get + { + return _frameRate; + } + private set + { + _frameRate = value; + RaisePropertyChangedAuto(); + } + } + /// <summary> /// Occurs when a new data frame is available. /// </summary> - public event EventHandler<StartDiagnosticsResponse> FrameReceived; + public event EventHandler<StartDiagnosticsResponse> FrameReceived; /// <summary> /// Initializes a new instance of the <see cref="DefaultDiagnosticsFrameProvider"/> class. @@ -43,6 +65,8 @@ namespace Tango.MachineStudio.Common.Diagnostics /// <param name="applicationManager">The application manager.</param> public DefaultDiagnosticsFrameProvider(IStudioApplicationManager applicationManager) { + _rates = new List<double>(); + _watch = new Stopwatch(); _application = applicationManager; applicationManager.ConnectedMachineChanged += ApplicationManager_ConnectedMachineChanged; } @@ -56,6 +80,9 @@ namespace Tango.MachineStudio.Common.Diagnostics { if (machine != null) { + _last_measure = DateTime.Now; + _rates = new List<double>(); + _watch = new Stopwatch(); machine.DiagnosticsDataAvailable += DefaultDiagnosticsFrameProvider_DiagnosticsDataAvailable; } } @@ -91,6 +118,24 @@ namespace Tango.MachineStudio.Common.Diagnostics /// <param name="frame">The frame.</param> protected virtual void OnFrameReceived(StartDiagnosticsResponse frame) { + if (DateTime.Now > _last_measure.AddSeconds(1) && _rates.Count > 0) + { + _last_measure = DateTime.Now; + + var rate = Math.Round(1000d / _rates.Average(), 2); + + if (rate > FrameRate + _min_rate_change || rate < FrameRate - _min_rate_change) + { + FrameRate = rate; + } + + _rates.Clear(); + } + + _rates.Add(_watch.ElapsedMilliseconds); + + _watch.Restart(); + FrameReceived?.Invoke(this, frame); } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/IDiagnosticsFrameProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/IDiagnosticsFrameProvider.cs index 3944fe8cb..eb1033c29 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/IDiagnosticsFrameProvider.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/IDiagnosticsFrameProvider.cs @@ -19,6 +19,11 @@ namespace Tango.MachineStudio.Common.Diagnostics event EventHandler<StartDiagnosticsResponse> FrameReceived; /// <summary> + /// Gets the current diagnostics frame rate. + /// </summary> + double FrameRate { get; } + + /// <summary> /// Disables the frame delivery from the current connected machine and enables the manual push frame method. /// </summary> bool Disable { get; set; } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs index b33b771ae..c5b9c63cb 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs @@ -10,7 +10,7 @@ using Tango.BL; using Tango.BL.Entities; using Tango.BL.Enumerations; using Tango.Core; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.Logging; using Tango.MachineStudio.Common.Authentication; using Tango.MachineStudio.Common.Diagnostics; diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs index b12d9a580..d63e07594 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows; using Tango.Logging; using Tango.Settings; @@ -41,12 +42,19 @@ namespace Tango.MachineStudio.Common public List<LogCategory> LoggingCategories { get; set; } /// <summary> + /// Gets or sets the last bounds. + /// </summary> + public Rect LastBounds { get; set; } + + /// <summary> /// Initializes a new instance of the <see cref="MachineStudio"/> class. /// </summary> public MachineStudioSettings() { + LastBounds = new Rect(); LoggingCategories = new List<LogCategory>(); UpdateServiceAddress = "http://twine01/MachineStudioUpdateService/MachineStudioUpdateService.svc"; + } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Messages/MachineConnectionChangedMessage.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Messages/MachineConnectionChangedMessage.cs index 90820ed47..af36f2edf 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Messages/MachineConnectionChangedMessage.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Messages/MachineConnectionChangedMessage.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; namespace Tango.MachineStudio.Common.Messages { diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs index e62d12b87..2c48de076 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Common Components")] -[assembly: AssemblyVersion("2.0.11.1411")] +[assembly: AssemblyVersion("2.0.13.1304")] [assembly: ComVisible(false)] [assembly:ThemeInfo( diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs index 00e67ff3b..464f932f6 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; namespace Tango.MachineStudio.Common.StudioApplication { |
