aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2018-07-31 10:06:51 +0300
committerAvi Levkovich <avi@twine-s.com>2018-07-31 10:06:51 +0300
commitb6b2f9ad4c96deface6763adbb2ac533e9706d1b (patch)
tree732a7ce2f629ab4cd9a1bfc1bec79adf97185025 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common
parent90b65a54cd28ee8b0d908c86795a7096c4073e83 (diff)
parentc728eba7cf217972c47e0a65afcb1975f6d6f6f1 (diff)
downloadTango-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')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml2
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml2
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs49
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/IDiagnosticsFrameProvider.cs5
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs2
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs8
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Messages/MachineConnectionChangedMessage.cs2
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs2
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs2
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
{