From f131f3b2706667c45f287f5ed4cf08167077fbc4 Mon Sep 17 00:00:00 2001 From: SL <123@123.com> Date: Mon, 2 Oct 2023 10:17:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=90=88=E5=B9=B6Develop?= =?UTF-8?q?=E5=88=86=E6=94=AF=E5=90=8E=E7=9A=84=E4=B8=80=E4=BA=9B=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82=20PMModule=E5=AF=B9=E8=B1=A1=E4=B8=AD?= =?UTF-8?q?=E8=AE=A2=E9=98=85=E7=9A=84DI206EqualsTrue=5FOR=5FDO177EqualsTr?= =?UTF-8?q?ue=E6=95=B0=E6=8D=AE=E6=A0=87=E8=AE=B0=E4=B8=BA=E5=BF=BD?= =?UTF-8?q?=E7=95=A5=E4=BF=9D=E5=AD=98=E5=88=B0=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Modules/SicModules/PMs/PMModule.cs | 2 +- SicUI/MainViewModel.cs | 29 ++++++++++++++++++++++------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/Modules/SicModules/PMs/PMModule.cs b/Modules/SicModules/PMs/PMModule.cs index 1a8ccc1..9b37b76 100644 --- a/Modules/SicModules/PMs/PMModule.cs +++ b/Modules/SicModules/PMs/PMModule.cs @@ -482,7 +482,7 @@ namespace SicModules.PMs DATA.Subscribe($"{Module}.Status", () => StringFsmStatus.Replace("0", "").Replace("1", "").Replace("2", "")); DATA.Subscribe($"{Module}.IsOnline", () => IsOnline); DATA.Subscribe($"{Module}.IsService", () => IsServiceIdle); - DATA.Subscribe($"{Module}.DI206EqualsTrue_OR_DO177EqualsTrue", () => DI206EqualsTrue_OR_DO177EqualsTrue); + DATA.Subscribe($"{Module}.DI206EqualsTrue_OR_DO177EqualsTrue", () => DI206EqualsTrue_OR_DO177EqualsTrue, SubscriptionAttribute.FLAG.IgnoreSaveDB); DATA.Subscribe($"{Module}.IsAlarm", () => IsAlarm); DATA.Subscribe($"{Module}.IsWarning", () => IsWarning); diff --git a/SicUI/MainViewModel.cs b/SicUI/MainViewModel.cs index 9969ea2..271e910 100644 --- a/SicUI/MainViewModel.cs +++ b/SicUI/MainViewModel.cs @@ -28,8 +28,10 @@ using System.Diagnostics; using System.Threading.Tasks; using Caliburn.Micro.Core; using MECF.Framework.Common.Account.Permissions; +using MECF.Framework.Common.Equipment; using MECF.Framework.UI.Client.ClientBase.Dialog; using MECF.Framework.UI.Client.Core; +using MECF.Framework.UI.Client.Ctrlib.Controls; namespace SicUI.Client { @@ -458,20 +460,33 @@ namespace SicUI.Client #endregion - public void SetModuleOnline(string module) + public void SetModuleOnline(object sender, RoutedEventArgs args) { - if (MessageBoxResult.Yes == MessageBox.Show($"Set {module} Online ?", "", MessageBoxButton.YesNo, MessageBoxImage.Warning)) + if (sender is ModuleStatusIndicator indicator) { - InvokeClient.Instance.Service.DoOperation($"{module}.SetOnline"); - } + if (indicator.HasWarning) + { + DialogBox.ShowError($"Unable to set {indicator.Caption} online since {indicator.WarningTip}"); + return; + } + if (MessageBoxResult.Yes == MessageBox.Show($"Set {indicator.Caption} Online?", "", MessageBoxButton.YesNo, + MessageBoxImage.Warning)) + { + InvokeClient.Instance.Service.DoOperation($"{indicator.ModuleName}.SetOnline"); + } + } } - public void SetModuleOffline(string module) + public void SetModuleOffline(object sender, RoutedEventArgs args) { - if (MessageBoxResult.Yes == MessageBox.Show($"Set {module} Offline ?", "", MessageBoxButton.YesNo, MessageBoxImage.Warning)) + if (sender is ModuleStatusIndicator indicator) { - InvokeClient.Instance.Service.DoOperation($"{module}.SetOffline"); + if (MessageBoxResult.Yes == MessageBox.Show($"Set {indicator.Caption} Offline?", "", MessageBoxButton.YesNo, + MessageBoxImage.Warning)) + { + InvokeClient.Instance.Service.DoOperation($"{indicator.ModuleName}.SetOffline"); + } } }