diff options
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels')
| -rw-r--r-- | Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs index 9dc4684c2..9a302a6ff 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs @@ -23,6 +23,8 @@ using Tango.SharedUI; using System.Data.Entity; using Tango.PPC.UI.AppBarItems; using Tango.PPC.Common.Notifications.NotificationItems; +using Tango.Core.Commands; +using System.Timers; namespace Tango.PPC.UI.ViewModels { @@ -38,6 +40,7 @@ namespace Tango.PPC.UI.ViewModels private PowerUpAppBarItem _powerUpAppBar; private bool _started; private MessageNotificationItem _headTypeNotification; + private Timer _screenSaverTimer; private DateTime _currentDateTime; /// <summary> @@ -49,6 +52,15 @@ namespace Tango.PPC.UI.ViewModels set { _currentDateTime = value; RaisePropertyChangedAuto(); } } + private bool _isScreenSaverOn; + public bool IsScreenSaverOn + { + get { return _isScreenSaverOn; } + set { _isScreenSaverOn = value; RaisePropertyChangedAuto(); } + } + + public RelayCommand ScreenSaverExitCommand { get; set; } + public MainViewVM() { _date_timer = new DispatcherTimer(); @@ -61,6 +73,8 @@ namespace Tango.PPC.UI.ViewModels _headTypeNotification.MessageType = MessageNotificationItem.MessageNotificationItemTypes.Error; _headTypeNotification.Priority = NotificationItem.NotificationPriority.Critical; _headTypeNotification.Message = "Machine head type mismatch."; + + ScreenSaverExitCommand = new RelayCommand(ResetScreenSaverTimer); } /// <summary> @@ -84,6 +98,10 @@ namespace Tango.PPC.UI.ViewModels MachineProvider.MachineOperator.PowerUpEnded += MachineOperator_PowerUpEnded; MachineProvider.MachineConnected += MachineProvider_MachineConnected; + + _screenSaverTimer = new Timer(TimeSpan.FromMinutes(Settings.ScreenSaverStartDuration).TotalMilliseconds); + _screenSaverTimer.Elapsed += _screenSaverTimer_Elapsed; + _screenSaverTimer.Start(); } #region Power Up @@ -262,6 +280,8 @@ namespace Tango.PPC.UI.ViewModels private void MachineProvider_MachineConnected(object sender, EventArgs e) { + ResetScreenSaverTimer(); + NotificationProvider.PopNotification(_headTypeNotification); if (MachineProvider.MachineOperator.DeviceInformation != null && !MachineProvider.Machine.IsDemo) @@ -275,5 +295,26 @@ namespace Tango.PPC.UI.ViewModels } #endregion + + #region Screen Saver + + public void ResetScreenSaverTimer() + { + _screenSaverTimer.Stop(); + _screenSaverTimer.Start(); + IsScreenSaverOn = false; + } + + private void _screenSaverTimer_Elapsed(object sender, ElapsedEventArgs e) + { + _screenSaverTimer.Interval = TimeSpan.FromMinutes(Settings.ScreenSaverStartDuration).TotalMilliseconds; + + if (Settings.EnableScreenSaver && !MachineProvider.IsConnected) + { + IsScreenSaverOn = true; + } + } + + #endregion } } |
