From a4e257e8ce90cf6e46cb34fc1fe6454e3cc52fbe Mon Sep 17 00:00:00 2001 From: "zhengxuan.zhang" Date: Thu, 7 May 2026 00:12:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E4=B8=BB=E7=95=8C=E9=9D=A2rabbion?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E7=9A=84=20=E5=BC=80=E5=85=B3=E9=97=A8=20?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E5=88=B0=E7=A1=AC=E4=BB=B6=E5=BA=93=E5=B1=82?= =?UTF-8?q?=E7=9C=9F=E5=AE=9E=E7=9A=84=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- XplorePlane/ViewModels/Main/MainViewModel.cs | 45 ++++++++++++++++++++ XplorePlane/Views/Main/MainWindow.xaml | 6 ++- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/XplorePlane/ViewModels/Main/MainViewModel.cs b/XplorePlane/ViewModels/Main/MainViewModel.cs index a9ae943..26e6403 100644 --- a/XplorePlane/ViewModels/Main/MainViewModel.cs +++ b/XplorePlane/ViewModels/Main/MainViewModel.cs @@ -21,6 +21,7 @@ using XP.Common.Logging.Interfaces; using XP.Common.GeneralForm.Views; using XP.Common.PdfViewer.Interfaces; using XP.Hardware.MotionControl.Abstractions; +using XP.Hardware.MotionControl.Services; namespace XplorePlane.ViewModels { @@ -90,6 +91,8 @@ namespace XplorePlane.ViewModels // 硬件命令 public DelegateCommand AxisResetCommand { get; } + public DelegateCommand OpenDoorCommand { get; } + public DelegateCommand CloseDoorCommand { get; } public DelegateCommand OpenDetectorConfigCommand { get; } public DelegateCommand OpenMotionDebugCommand { get; } public DelegateCommand OpenPlcAddrConfigCommand { get; } @@ -295,6 +298,8 @@ namespace XplorePlane.ViewModels _eventAggregator.GetEvent().Publish()); AxisResetCommand = new DelegateCommand(ExecuteAxisReset); + OpenDoorCommand = new DelegateCommand(ExecuteOpenDoor); + CloseDoorCommand = new DelegateCommand(ExecuteCloseDoor); OpenDetectorConfigCommand = new DelegateCommand(ExecuteOpenDetectorConfig); OpenMotionDebugCommand = new DelegateCommand(ExecuteOpenMotionDebug); OpenPlcAddrConfigCommand = new DelegateCommand(ExecuteOpenPlcAddrConfig); @@ -589,6 +594,46 @@ namespace XplorePlane.ViewModels } } + private void ExecuteOpenDoor() + { + try + { + var motionService = _containerProvider.Resolve(); + var result = motionService.OpenDoor(); + if (!result.Success) + { + MessageBox.Show($"Open door failed: {result.ErrorMessage}", "Error", + MessageBoxButton.OK, MessageBoxImage.Warning); + } + } + catch (Exception ex) + { + _logger.Error(ex, "Open door failed."); + MessageBox.Show($"Open door error: {ex.Message}", "Error", + MessageBoxButton.OK, MessageBoxImage.Error); + } + } + + private void ExecuteCloseDoor() + { + try + { + var motionService = _containerProvider.Resolve(); + var result = motionService.CloseDoor(); + if (!result.Success) + { + MessageBox.Show($"Close door failed: {result.ErrorMessage}", "Error", + MessageBoxButton.OK, MessageBoxImage.Warning); + } + } + catch (Exception ex) + { + _logger.Error(ex, "Close door failed."); + MessageBox.Show($"Close door error: {ex.Message}", "Error", + MessageBoxButton.OK, MessageBoxImage.Error); + } + } + private void ExecuteOpenDetectorConfig() { try diff --git a/XplorePlane/Views/Main/MainWindow.xaml b/XplorePlane/Views/Main/MainWindow.xaml index ea42682..46b1ab1 100644 --- a/XplorePlane/Views/Main/MainWindow.xaml +++ b/XplorePlane/Views/Main/MainWindow.xaml @@ -138,12 +138,14 @@