| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544 | 
							- using Aitex.Core.Util;
 
- using Caliburn.Micro.Core;
 
- using Caliburn.Micro;
 
- using FurnaceUI.Models;
 
- using FurnaceUI.Views.Operations;
 
- using MECF.Framework.Common.DataCenter;
 
- using MECF.Framework.Common.Equipment;
 
- using MECF.Framework.Common.OperationCenter;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Windows.Controls;
 
- using OpenSEMI.ClientBase;
 
- namespace FurnaceUI.Views.Maintenances
 
- {
 
-     public class BoatRobotViewModel : FurnaceUIViewModelBase
 
-     {
 
-         [Subscription("Rt.Status")]
 
-         public string RtStatus { get; set; }
 
-         [Subscription("PM1.IsProcessing")]
 
-         public bool IsProcessing { get; set; }
 
-         [Subscription("PM1.RunningModeIsDebug")]
 
-         public bool RunningModeIsDebug { get; set; }
 
-         public bool IsSystemStaus => (RtStatus != "AutoRunning");
 
-         #region ZAxis Data
 
-         [Subscription("PM1.BoatElevatorServo.CurrentPosition")]
 
-         public float BoatZAxisCurrentPosition { get; set; }
 
-         [Subscription("PM1.BoatElevatorServo.CurrentSpeed")]
 
-         public float BoatZAxisCurrentSpeed { get; set; }
 
-         [Subscription("PM1.BoatElevatorServo.TargetPosition")]
 
-         public float BoatZAxisTargetPosition { get; set; }
 
-         [Subscription("PM1.BoatElevatorServo.IsReady")]
 
-         public bool BoatZAxisIsReady { get; set; }
 
-         [Subscription("PM1.AlarmSignaBoatZAxisWarning.Value")]
 
-         public bool BoatZAxisIsWarning { get; set; }
 
-         [Subscription("PM1.AlarmSignaBoatZAxisAlarm.Value")]
 
-         public bool BoatZAxisIsAlarm { get; set; }
 
-         [Subscription("PM1.BoatElevatorServo.AtPosition1")]
 
-         public bool BoatZAxisAtPosition1 { get; set; }
 
-         [Subscription("PM1.BoatElevatorServo.AtPosition2")]
 
-         public bool BoatZAxisAtPosition2 { get; set; }
 
-         [Subscription("PM1.BoatElevatorServo.AtPosition3")]
 
-         public bool BoatZAxisAtPosition3 { get; set; }
 
-         [Subscription("PM1.BoatElevatorServo.AtHomePosition")]
 
-         public bool BoatZAxisAtHomePosition { get; set; }
 
-         [Subscription("PM1.BoatElevatorServo.IsServoOn")]
 
-         public bool BoatZAxisIsServoOn { get; set; }
 
-         [Subscription("PM1.BoatElevatorServo.ErrorCode")]
 
-         public string BoatZAxisErrorCode { get; set; }
 
-         [Subscription("PM1.BoatElevatorServo.Status")]
 
-         public string BoatZAxisStatus { get; set; }
 
-         [Subscription("PM1.BoatElevatorServo.IsActionEnable")]
 
-         public bool BoatZAxisIsActionEnable { get; set; }
 
-         [Subscription("PM1.BoatElevatorServo.IsMoving")]
 
-         public bool BoatZAxisIsMoving { get; set; }
 
-         public double ZAxisProcessPosition { get; set; }
 
-         public double ZAxisPosition5 { get; set; }
 
-         public double ZAxisPosition4 { get; set; }
 
-         public double ZAxisPosition3 { get; set; }
 
-         public double ZAxisPosition2 { get; set; }
 
-         public double ZAxisPosition1 { get; set; }
 
-         public double ZAxisHomePosition { get; set; }
 
-         public double ZAxisPositiveLimit { get; set; }
 
-         public double ZAxisNegativeLimit { get; set; }
 
-         public double ZAxisMoveSpeed { get; set; }
 
-         public double ZAxisAcc { get; set; }
 
-         public double ZAxisDec { get; set; }
 
-         public double ZAxisJogSpeed { get; set; }
 
-         public double ZAxisAccTime { get; set; }
 
-         public double ZAxisDecTime { get; set; }
 
-         private Dictionary<string, string> zPositionTranslate = new Dictionary<string, string>()
 
-         {{"Position1","Position1" }, {"Position2","Position2" },{"Position3","Position3" }};
 
-         #endregion
 
-         #region RAxis Data
 
-         [Subscription("PM1.BoatRotationServo.CurrentPosition")]
 
-         public float BoatRAxisCurrentPosition { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.CurrentSpeed")]
 
-         public float BoatRAxisCurrentSpeed { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.TargetPosition")]
 
-         public float BoatRAxisTargetPosition { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.IsReady")]
 
-         public bool BoatRAxisIsReady { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.IsMoving")]
 
-         public bool BoatRAxisIsMoving { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.IsInitDone")]
 
-         public bool BoatRAxisIsInitDone { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.IsHomeDone")]
 
-         public bool BoatRAxisIsHomeDone { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.IsHoming")]
 
-         public bool BoatRAxisIsHoming { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.IsInitializing")]
 
-         public bool BoatRAxisIsInitializing { get; set; }
 
-         [Subscription("PM1.AlarmSignaBoatRAxisWarning.Value")]
 
-         public bool BoatRAxisIsWarning { get; set; }
 
-         [Subscription("PM1.AlarmSignaBoatRAxisAlarm.Value")]
 
-         public bool BoatRAxisIsAlarm { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.IsServoOn")]
 
-         public bool BoatRAxisIsServoOn { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.ErrorCode")]
 
-         public string BoatRAxisErrorCode { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.Status")]
 
-         public string BoatRAxisStatus { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.Direction")]
 
-         public string BoatRAxisDirection { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.IsActionEnable")]
 
-         public bool BoatRAxisIsActionEnable { get; set; }
 
-         [Subscription("PM1.BoatRotationServo.IsMotorRun")]
 
-         public bool BoatRAxisIsMotorRun { get; set; }
 
-         public double RAxisLoadPosition { get; set; }
 
-         public double RAxisPosition180 { get; set; }
 
-         public double RAxisPosition90 { get; set; }
 
-         public double RAxisPosition45 { get; set; }
 
-         public double RAxisHomePosition { get; set; }
 
-         public double RAxisPositiveLimit { get; set; }
 
-         public double RAxisNegativeLimit { get; set; }
 
-         public double RAxisMoveSpeed { get; set; }
 
-         public double RAxisJogSpeed { get; set; }
 
-         public double RAxisAccTime { get; set; }
 
-         public double RAxisDecTime { get; set; }
 
-         public double BoatRAxisLimitSpeed { get; set; }
 
-         public double BoatZAxisLimitSpeed { get; set; }
 
-         #endregion
 
-         #region Shutter Data
 
-         [Subscription("PM1.Shutter.OpenCloseStatus")]
 
-         public string AutoDoorOpenCloseStatus { get; set; }
 
-         #endregion
 
-         [Subscription("Boat.BoatTestCycledCount")]
 
-         public int BoatTestCycledCount { get; set; }
 
-         private int _boatCycleCountSetPoint;
 
-         public string BoatCycleDisplay => $"  {BoatTestCycledCount} / {_boatCycleCountSetPoint}";
 
-         [Subscription("Boat.ShutterCycledCount")]
 
-         public int ShutterCycledCount { get; set; }
 
-         private int _ShutterCycleCountSetPoint;
 
-         public string ShutterCycleDisplay => $"  {ShutterCycledCount} / {_ShutterCycleCountSetPoint}";
 
-         private List<string> _ZPositions;
 
-         public List<string> ZPositions
 
-         {
 
-             get { return _ZPositions; }
 
-             set { _ZPositions = value; NotifyOfPropertyChange("ZPositions"); }
 
-         }
 
-         private List<string> _RPositions;
 
-         public List<string> RPositions
 
-         {
 
-             get { return _RPositions; }
 
-             set { _RPositions = value; NotifyOfPropertyChange("RPositions"); }
 
-         }
 
-         public string ZAxisTestStartPosition { get; set; }
 
-         public string ZAxisTestEndPosition { get; set; }
 
-         public string RAxisTestDirection { get; set; }
 
-         //public bool IsPermission { get => this.Permission >= 3 && ClientApp.Instance.UserContext.RoleName == "Service"; }
 
-         public bool IsPermission { get => this.Permission >= 3; }
 
-         public BoatRobotViewModel()
 
-         {
 
-             _ZPositions = new List<string>()
 
-             {
 
-                 "Position1",
 
-                 "Position2",
 
-                 "Position3",
 
-             };
 
-             RPositions = new List<string>()
 
-             {
 
-                 "CW",
 
-                 "CCW",
 
-             };
 
-         }
 
-         public void BoatModify()
 
-         {
 
-             var windowManager = IoC.Get<IWindowManager>();
 
-             BoatModifyViewModel boatModifyViewModel = new BoatModifyViewModel(ModuleName.PM1.ToString());
 
-             (windowManager as WindowManager)?.ShowDialogWithTitle(boatModifyViewModel, null, "Boat Wafer");
 
-         }
 
-         private BoatRobotView _view;
 
-         protected override void InvokeAfterUpdateProperty(Dictionary<string, object> data)
 
-         {
 
-             InitData();
 
-             if (_view != null)
 
-             {
 
-                 var rsetValueBool = double.TryParse(_view?.tbMoveSpeed.Text, out double setZValue);
 
-                 if (!rsetValueBool)
 
-                     _view.tbMoveSpeed.Text = "0";
 
-                 var zsetValueBool = double.TryParse(_view?.tbSetSpeed.Text, out double setRValue);
 
-                 if (!rsetValueBool)
 
-                     _view.tbSetSpeed.Text = "0";
 
-                 if (!string.IsNullOrEmpty(_view?.tbMoveSpeed.Text) && rsetValueBool && setZValue > BoatZAxisLimitSpeed)
 
-                 {
 
-                     _view.tbMoveSpeed.Text = "0";
 
-                     DialogBox.ShowWarning($"Max Move Speed is {BoatZAxisLimitSpeed}");
 
-                 }
 
-                 if (!string.IsNullOrEmpty(_view?.tbSetSpeed.Text) && zsetValueBool && setRValue > BoatRAxisLimitSpeed)
 
-                 {
 
-                     _view.tbSetSpeed.Text = "0";
 
-                     DialogBox.ShowWarning($"Max Roat Speed is {BoatRAxisLimitSpeed}");
 
-                 }
 
-             }
 
-         }
 
-         protected override void OnViewLoaded(object view)
 
-         {
 
-             base.OnViewLoaded(view);
 
-             _view = view as BoatRobotView;
 
-             BoatZAxisLimitSpeed = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.BoatZAxisLimitSpeed");
 
-             BoatRAxisLimitSpeed = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.BoatRAxisLimitSpeed");
 
-         }
 
-         private void InitData()
 
-         {
 
-             ZAxisPosition1 = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Position1");
 
-             ZAxisPosition2 = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Position2");
 
-             ZAxisHomePosition = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Position6");
 
-             ZAxisProcessPosition = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Position7");
 
-             ZAxisPositiveLimit = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Position8");
 
-             ZAxisNegativeLimit = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Position9");
 
-             ZAxisMoveSpeed = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.MoveSpeed");
 
-             ZAxisAcc = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Acc");
 
-             ZAxisDec = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Dec");
 
-             _boatCycleCountSetPoint = (int)QueryDataClient.Instance.Service.GetConfig($"Boat.CycleCount");
 
-             _ShutterCycleCountSetPoint = (int)QueryDataClient.Instance.Service.GetConfig($"Boat.AutoShutter.CycleCount");
 
-             RAxisPosition45 = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.Position1");
 
-             RAxisPosition90 = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.Position2");
 
-             RAxisPosition180 = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.Position3");
 
-             RAxisLoadPosition = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.Position4");
 
-             RAxisMoveSpeed = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.MoveSpeed");
 
-         }
 
-         public void BoatZSaveValue(object obj, object tb)
 
-         {
 
-             switch (obj)
 
-             {
 
-                 case "Position1":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "Position2":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "Position3":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "Position4":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "Position5":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "Position6":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "Position7":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "Position8":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "Position9":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "MoveSpeed":
 
-                 case "Acc":
 
-                 case "Dec":
 
-                     var setValue = double.Parse((tb as TextBox)?.Text);
 
-                     if (setValue > BoatZAxisLimitSpeed)
 
-                     {
 
-                         DialogBox.ShowWarning($"Max MoveSpeed is {BoatZAxisLimitSpeed}");
 
-                         break;
 
-                     }
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-             }
 
-         }
 
-         public void BoatRSaveValue(object obj, object tb)
 
-         {
 
-             switch (obj)
 
-             {
 
-                 case "Position1":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatRotationServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "Position2":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatRotationServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "Position3":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatRotationServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "Position4":
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatRotationServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-                 case "MoveSpeed":
 
-                     var textValue = string.IsNullOrEmpty((tb as TextBox)?.Text) ? "0" : (tb as TextBox)?.Text;
 
-                     var setValue = double.Parse(textValue);
 
-                     if (setValue > BoatRAxisLimitSpeed)
 
-                     {
 
-                         DialogBox.ShowWarning($"Max Roat Speed is {BoatRAxisLimitSpeed}");
 
-                         return;
 
-                     }
 
-                     InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatRotationServo.{obj}", (tb as TextBox)?.Text);
 
-                     break;
 
-             }
 
-         }
 
-         public void MoveTo(object targetPosition)
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to MoveTo {targetPosition}?"))
 
-                 return;
 
-             switch (targetPosition)
 
-             {
 
-                 case "Position1":
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
 
-                     break;
 
-                 case "Position2":
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
 
-                     break;
 
-                 case "Position3":
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
 
-                     break;
 
-                 case "Position4":
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
 
-                     break;
 
-                 case "Position5":
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
 
-                     break;
 
-                 case "Position6":
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
 
-                     break;
 
-                 case "Position7":
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
 
-                     break;
 
-             }
 
-         }
 
-         public void RAxisMoveTo(object targetPosition)
 
-         {
 
-             switch (targetPosition)
 
-             {
 
-                 case "Position1":
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition);
 
-                     break;
 
-                 case "Position2":
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition);
 
-                     break;
 
-                 case "Position3":
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition);
 
-                     break;
 
-                 case "Position4":
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition);
 
-                     break;
 
-                 case "CW":
 
-                     var speed = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.MoveSpeed");
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition, speed);
 
-                     break;
 
-                 case "CCW":
 
-                     speed = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.MoveSpeed");
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition, speed);
 
-                     break;
 
-                 default:
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition);
 
-                     break;
 
-             }
 
-         }
 
-         public void BoatZServoTest()
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to Move Test?"))
 
-                 return;
 
-             if (string.IsNullOrEmpty(ZAxisTestStartPosition))
 
-             {
 
-                 return;
 
-             }
 
-             if (zPositionTranslate.Keys.Contains(ZAxisTestStartPosition) && zPositionTranslate.Keys.Contains(ZAxisTestStartPosition))
 
-             {
 
-                 InvokeClient.Instance.Service.DoOperation($"Boat.ZAxisMovingTest", zPositionTranslate[ZAxisTestStartPosition], zPositionTranslate[ZAxisTestEndPosition]);
 
-             }
 
-             else
 
-             {
 
-                 InvokeClient.Instance.Service.DoOperation($"Boat.ZAxisMovingTest", ZAxisTestStartPosition, ZAxisTestEndPosition);
 
-             }
 
-         }
 
-         public void BoatRotationServoTest(object targetPosition)
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to CW?"))
 
-                 return;
 
-             InvokeClient.Instance.Service.DoOperation($"Boat.RAxisMovingTest", targetPosition);
 
-         }
 
-         public void BoatTestStart()
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to  Test Start?"))
 
-                 return;
 
-             if (zPositionTranslate.Keys.Contains(ZAxisTestStartPosition) && zPositionTranslate.Keys.Contains(ZAxisTestStartPosition))
 
-             {
 
-                 InvokeClient.Instance.Service.DoOperation($"Boat.MovingTest", zPositionTranslate[ZAxisTestStartPosition], zPositionTranslate[ZAxisTestEndPosition], RAxisTestDirection);
 
-             }
 
-             else
 
-             {
 
-                 InvokeClient.Instance.Service.DoOperation($"Boat.MovingTest", ZAxisTestStartPosition, ZAxisTestEndPosition, RAxisTestDirection);
 
-             }
 
-         }
 
-         public void BoatTestStop()
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to  Test Stop?"))
 
-                 return;
 
-             InvokeClient.Instance.Service.DoOperation($"Boat.Abort");
 
-         }
 
-         public void ShutterTestStart()
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to Shutter Test Start?"))
 
-                 return;
 
-             InvokeClient.Instance.Service.DoOperation($"Boat.ShutterCycleTest");
 
-         }
 
-         public void ShutterTestStop()
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to Shutter Test Stop?"))
 
-                 return;
 
-             InvokeClient.Instance.Service.DoOperation($"Boat.Abort");
 
-         }
 
-         public void BoatRotationServoStopTest()
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to  Abort?"))
 
-                 return;
 
-             InvokeClient.Instance.Service.DoOperation($"Boat.Abort");
 
-         }
 
-         public void Home(object target)
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to  Home?"))
 
-                 return;
 
-             InvokeClient.Instance.Service.DoOperation($"{target}.ServoHome");
 
-         }
 
-         public void SetServoOn(object target, object isOn)
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to {isOn} ?"))
 
-                 return;
 
-             InvokeClient.Instance.Service.DoOperation($"{target}", $"{isOn}");
 
-         }
 
-         public void Continue(object target)
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to  Continue?"))
 
-                 return;
 
-             InvokeClient.Instance.Service.DoOperation($"{target}.Continue");
 
-         }
 
-         public void Stop(object target)
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to  Stop?"))
 
-                 return;
 
-             InvokeClient.Instance.Service.DoOperation($"{target}.ServoStop");
 
-         }
 
-         public void Reset(object target)
 
-         {
 
-             if (!DialogBox.Confirm($"Are you sure  want to  Reset?"))
 
-                 return;
 
-             InvokeClient.Instance.Service.DoOperation($"{target}.ServoResetAlarm");
 
-         }
 
-         public void SetOpen(object target, bool open)
 
-         {
 
-             var str = open ? "open" : "false";
 
-             // IsAutoDoorEnableManualOperation
 
-             if (!DialogBox.Confirm($"Are you sure  want to  {str} Shutter?"))
 
-                 return;
 
-             InvokeClient.Instance.Service.DoOperation($"{target}", open);
 
-         }
 
-     }
 
- }
 
 
  |