using System; using Prism.Events; using Prism.Mvvm; using System.Windows.Media; using SHJX.Service.Common.Event; namespace SHJX.Service.Main.ViewModels { public class MainFormBottomViewModel : BindableBase { #region Peoperties private SolidColorBrush _lockDesktopDisplay; public SolidColorBrush LockDesktopDisplay { get => _lockDesktopDisplay; set => SetProperty(ref _lockDesktopDisplay, value); } private bool _lockDesktopState; public bool LockDesktopState { get => _lockDesktopState; set => SetProperty(ref _lockDesktopState, value); } private SolidColorBrush _heatingDisplay; public SolidColorBrush HeatingDisplay { get => _heatingDisplay; set => SetProperty(ref _heatingDisplay, value); } private bool _heatingState; public bool HeatingState { get => _heatingState; set => SetProperty(ref _heatingState, value); } private SolidColorBrush _portClientDisplay; public SolidColorBrush PortClientDisplay { get => _portClientDisplay; set => SetProperty(ref _portClientDisplay, value); } private bool _portClientState; public bool PortClientState { get => _portClientState; set => SetProperty(ref _portClientState, value); } private SolidColorBrush _cameraClientDisplay; public SolidColorBrush CameraClientDisplay { get => _cameraClientDisplay; set => SetProperty(ref _cameraClientDisplay, value); } private bool _cameraClientState; public bool CameraClientState { get => _cameraClientState; set => SetProperty(ref _cameraClientState, value); } private SolidColorBrush _cameraClientDisplay2; public SolidColorBrush CameraClientDisplay2 { get => _cameraClientDisplay2; set => SetProperty(ref _cameraClientDisplay2, value); } private bool _cameraClientState2; public bool CameraClientState2 { get => _cameraClientState2; set => SetProperty(ref _cameraClientState2, value); } private double _temperatureValue; public double TemperatureValue { get => _temperatureValue; set => SetProperty(ref _temperatureValue, value); } private double _kValue; public double KValue { get => _kValue; set => SetProperty(ref _kValue, value); } private double _tempeValue; public double TempValue { get => _tempeValue; set => SetProperty(ref _tempeValue, value); } private double _humidValue; public double HumidValue { get => _humidValue; set => SetProperty(ref _humidValue, value); } private double _taskNeedTime; public double TaskNeedTime { get => _taskNeedTime; set => SetProperty(ref _taskNeedTime, value); } #endregion public MainFormBottomViewModel(IEventAggregator ea) { TempValue = 18.3; HumidValue = 22.6; LockDesktopDisplay = Brushes.LightGreen; LockDesktopState = false; HeatingDisplay = Brushes.Red; HeatingState = true; PortClientDisplay = Brushes.Red; PortClientState = true; CameraClientDisplay = Brushes.Red; CameraClientState = true; CameraClientDisplay2 = Brushes.Red; CameraClientState2 = true; TaskNeedTime = 0; ea.GetEvent().Subscribe((bl) => { LockDesktopDisplay = bl ? Brushes.Red : Brushes.LightGreen; LockDesktopState = bl; }); ea.GetEvent().Subscribe((bl) => { HeatingDisplay = bl ? Brushes.LightGreen : Brushes.Red; HeatingState = !bl; }); ea.GetEvent().Subscribe(SettingCameraState); ea.GetEvent().Subscribe(SettingCameraState2); ea.GetEvent().Subscribe(SettingPortState); ea.GetEvent().Subscribe(args => { TemperatureValue = args.CurrentTemperature; }); ea.GetEvent().Subscribe(value => { KValue = Math.Round(value, 4); }); ea.GetEvent().Subscribe(args => { TempValue = args.Temperature; HumidValue = args.Humidity; }); ea.GetEvent().Subscribe(canExecuteTaskCount => { if (canExecuteTaskCount == 0) { TaskNeedTime = 0; } if (canExecuteTaskCount > 0) { TaskNeedTime = (30 + 6 * canExecuteTaskCount) / 60.0; } }); } private void SettingCameraState(bool state) { CameraClientDisplay = state ? Brushes.LightGreen : Brushes.Red; CameraClientState = !state; } private void SettingCameraState2(bool state) { CameraClientDisplay2 = state ? Brushes.LightGreen : Brushes.Red; CameraClientState2 = !state; } private void SettingPortState((string portName, bool clientState) obj) { PortClientState = !obj.clientState; PortClientDisplay = obj.clientState ? Brushes.LightGreen : Brushes.Red; } } }