From 86197cd0ec87a6cc186e90f75d848adc6dfa2285 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 22 Mar 2018 17:38:12 +0200 Subject: Simulate Hardware Events using DiagnosticsFrameProvider. --- .../ViewModels/MainViewVM.cs | 40 ++++++++++++++++------ 1 file changed, 29 insertions(+), 11 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs') diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs index b3c6236f8..f54a9dae1 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs @@ -17,6 +17,7 @@ using Tango.Integration.Services; using Tango.Logging; using Tango.MachineStudio.Common; using Tango.MachineStudio.Common.Authentication; +using Tango.MachineStudio.Common.Diagnostics; using Tango.MachineStudio.Common.EventLogging; using Tango.MachineStudio.Common.Modules; using Tango.MachineStudio.Common.Navigation; @@ -197,6 +198,16 @@ namespace Tango.MachineStudio.UI.ViewModels set { _disableCheckForUpdates = value; RaisePropertyChangedAuto(); } } + private IDiagnosticsFrameProvider _diagnosticsFrameProvider; + /// + /// Gets or sets the diagnostics frame provider. + /// + public IDiagnosticsFrameProvider DiagnosticsFrameProvider + { + get { return _diagnosticsFrameProvider; } + set { _diagnosticsFrameProvider = value; RaisePropertyChangedAuto(); } + } + /// /// Initializes a new instance of the class. @@ -214,7 +225,8 @@ namespace Tango.MachineStudio.UI.ViewModels INotificationProvider notificationProvider, IStudioApplicationManager applicationManager, INavigationManager navigationManager, - IEventLogger eventLogger) : base(view) + IEventLogger eventLogger, + IDiagnosticsFrameProvider frameProvider) : base(view) { _eventLogger = eventLogger; _navigation = navigationManager; @@ -222,6 +234,9 @@ namespace Tango.MachineStudio.UI.ViewModels StudioModuleLoader = studioModuleLoader; NotificationProvider = notificationProvider; ApplicationManager = applicationManager; + DiagnosticsFrameProvider = frameProvider; + + DiagnosticsFrameProvider.MachineEventsStateProviderChanged += FrameProvider_MachineEventsStateProviderChanged; StartModuleCommand = new RelayCommand(StartModule); @@ -236,23 +251,26 @@ namespace Tango.MachineStudio.UI.ViewModels _updateCheckThread = new Thread(UpdateCheckThreadMethod); _updateCheckThread.IsBackground = true; _updateCheckThread.Start(); + } - ApplicationManager.ConnectedMachineChanged += (sender, machine) => + private void FrameProvider_MachineEventsStateProviderChanged(object sender, Integration.Operation.IMachineEventsStateProvider provider) + { + + if (DiagnosticsFrameProvider.MachineEventsStateProvider.Events.Count == 0) { - if (machine != null) - { - machine.MachineEventsStateProvider.NewEvents -= MachineEventsStateProvider_NewEvents; - machine.MachineEventsStateProvider.NewEvents += MachineEventsStateProvider_NewEvents; + IsMachineErrorsOpened = false; + } - machine.MachineEventsStateProvider.EventsResolved -= MachineEventsStateProvider_EventsResolved; - machine.MachineEventsStateProvider.EventsResolved += MachineEventsStateProvider_EventsResolved; - } - }; + provider.NewEvents -= MachineEventsStateProvider_NewEvents; + provider.NewEvents += MachineEventsStateProvider_NewEvents; + + provider.EventsResolved -= MachineEventsStateProvider_EventsResolved; + provider.EventsResolved += MachineEventsStateProvider_EventsResolved; } private void MachineEventsStateProvider_EventsResolved(object sender, IEnumerable e) { - if (ApplicationManager.ConnectedMachine.MachineEventsStateProvider.Events.Count == 0) + if (DiagnosticsFrameProvider.MachineEventsStateProvider.Events.Count == 0) { IsMachineErrorsOpened = false; } -- cgit v1.3.1