aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs')
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs69
1 files changed, 69 insertions, 0 deletions
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs
index 701ff4b79..4e6621b9e 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LayoutViewVM.cs
@@ -5,17 +5,22 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Core.Commands;
+using Tango.Core.Threading;
using Tango.FSE.Common;
using Tango.FSE.Common.Navigation;
using Tango.FSE.Common.Notifications;
using Tango.FSE.UI.Panes;
using Tango.Integration.ExternalBridge;
using Tango.SharedUI.Helpers;
+using Tango.Transport;
namespace Tango.FSE.UI.ViewModels
{
public class LayoutViewVM : FSEViewModel
{
+ private ActionTimer _transportOutActionTimer;
+ private ActionTimer _transportInActionTimer;
+
private bool _isConnectionPaneOpened;
public bool IsConnectionPaneOpened
{
@@ -37,6 +42,13 @@ namespace Tango.FSE.UI.ViewModels
set { _connectedMachinePaneVM = value; RaisePropertyChangedAuto(); }
}
+ private LogViewerPaneVM _logViewPaneVM;
+ public LogViewerPaneVM LogViewerPaneVM
+ {
+ get { return _logViewPaneVM; }
+ set { _logViewPaneVM = value; RaisePropertyChangedAuto(); }
+ }
+
private bool _isMenuOpened;
public bool IsMenuOpened
{
@@ -44,6 +56,27 @@ namespace Tango.FSE.UI.ViewModels
set { _isMenuOpened = value; RaisePropertyChangedAuto(); }
}
+ private bool _isLogsOpened;
+ public bool IsLogsOpened
+ {
+ get { return _isLogsOpened; }
+ set { _isLogsOpened = value; RaisePropertyChangedAuto(); }
+ }
+
+ private bool _transportOut;
+ public bool TransportOut
+ {
+ get { return _transportOut; }
+ set { _transportOut = value; RaisePropertyChanged(nameof(TransportOut)); }
+ }
+
+ private bool _transportIn;
+ public bool TransportIn
+ {
+ get { return _transportIn; }
+ set { _transportIn = value; RaisePropertyChanged(nameof(TransportIn)); }
+ }
+
public RelayCommand ToggleConnectionPaneCommand { get; set; }
public RelayCommand LogoutCommand { get; set; }
@@ -57,7 +90,40 @@ namespace Tango.FSE.UI.ViewModels
ConnectedMachinePaneVM = new ConnectedMachinePaneVM();
ConnectedMachinePaneVM.DisconnectedFromMachine += ConnectedMachinePaneVM_DisconnectedFromMachine;
+ LogViewerPaneVM = new LogViewerPaneVM();
+
LogoutCommand = new RelayCommand(Logout);
+
+ _transportOutActionTimer = new ActionTimer(TimeSpan.FromMilliseconds(50));
+ _transportInActionTimer = new ActionTimer(TimeSpan.FromMilliseconds(50));
+ }
+
+ private void MachineProvider_MachineDisconnected(object sender, Common.Connection.MachineDisconnectedEventArgs e)
+ {
+ if (e.MachineOperator.Adapter != null)
+ {
+ e.MachineOperator.Adapter.PropertyChanged -= Adapter_PropertyChanged;
+ }
+ }
+
+ private void MachineProvider_MachineConnected(object sender, Common.Connection.MachineConnectedEventArgs e)
+ {
+ e.MachineOperator.Adapter.PropertyChanged -= Adapter_PropertyChanged;
+ e.MachineOperator.Adapter.PropertyChanged += Adapter_PropertyChanged;
+ }
+
+ private void Adapter_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
+ {
+ if (e.PropertyName == nameof(ITransportAdapter.TotalBytesSent))
+ {
+ TransportOut = true;
+ _transportOutActionTimer.ResetReplace(() => TransportOut = false);
+ }
+ else if (e.PropertyName == nameof(ITransportAdapter.TotalBytesReceived))
+ {
+ TransportIn = true;
+ _transportInActionTimer.ResetReplace(() => TransportIn = false);
+ }
}
private async void ConnectedMachinePaneVM_DisconnectedFromMachine(object sender, EventArgs e)
@@ -99,6 +165,9 @@ namespace Tango.FSE.UI.ViewModels
public override void OnApplicationStarted()
{
DiagnosticsProvider.FrameReceived += DiagnosticsProvider_FrameReceived;
+
+ MachineProvider.MachineDisconnected += MachineProvider_MachineDisconnected;
+ MachineProvider.MachineConnected += MachineProvider_MachineConnected;
}
private void DiagnosticsProvider_FrameReceived(object sender, Common.Diagnostics.DiagnosticsFrameReceivedEventArgs e)