BoatRobotViewModel.cs 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544
  1. using Aitex.Core.Util;
  2. using Caliburn.Micro.Core;
  3. using Caliburn.Micro;
  4. using FurnaceUI.Models;
  5. using FurnaceUI.Views.Operations;
  6. using MECF.Framework.Common.DataCenter;
  7. using MECF.Framework.Common.Equipment;
  8. using MECF.Framework.Common.OperationCenter;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows.Controls;
  15. using OpenSEMI.ClientBase;
  16. namespace FurnaceUI.Views.Maintenances
  17. {
  18. public class BoatRobotViewModel : FurnaceUIViewModelBase
  19. {
  20. [Subscription("Rt.Status")]
  21. public string RtStatus { get; set; }
  22. [Subscription("PM1.IsProcessing")]
  23. public bool IsProcessing { get; set; }
  24. [Subscription("PM1.RunningModeIsDebug")]
  25. public bool RunningModeIsDebug { get; set; }
  26. public bool IsSystemStaus => (RtStatus != "AutoRunning");
  27. #region ZAxis Data
  28. [Subscription("PM1.BoatElevatorServo.CurrentPosition")]
  29. public float BoatZAxisCurrentPosition { get; set; }
  30. [Subscription("PM1.BoatElevatorServo.CurrentSpeed")]
  31. public float BoatZAxisCurrentSpeed { get; set; }
  32. [Subscription("PM1.BoatElevatorServo.TargetPosition")]
  33. public float BoatZAxisTargetPosition { get; set; }
  34. [Subscription("PM1.BoatElevatorServo.IsReady")]
  35. public bool BoatZAxisIsReady { get; set; }
  36. [Subscription("PM1.AlarmSignaBoatZAxisWarning.Value")]
  37. public bool BoatZAxisIsWarning { get; set; }
  38. [Subscription("PM1.AlarmSignaBoatZAxisAlarm.Value")]
  39. public bool BoatZAxisIsAlarm { get; set; }
  40. [Subscription("PM1.BoatElevatorServo.AtPosition1")]
  41. public bool BoatZAxisAtPosition1 { get; set; }
  42. [Subscription("PM1.BoatElevatorServo.AtPosition2")]
  43. public bool BoatZAxisAtPosition2 { get; set; }
  44. [Subscription("PM1.BoatElevatorServo.AtPosition3")]
  45. public bool BoatZAxisAtPosition3 { get; set; }
  46. [Subscription("PM1.BoatElevatorServo.AtHomePosition")]
  47. public bool BoatZAxisAtHomePosition { get; set; }
  48. [Subscription("PM1.BoatElevatorServo.IsServoOn")]
  49. public bool BoatZAxisIsServoOn { get; set; }
  50. [Subscription("PM1.BoatElevatorServo.ErrorCode")]
  51. public string BoatZAxisErrorCode { get; set; }
  52. [Subscription("PM1.BoatElevatorServo.Status")]
  53. public string BoatZAxisStatus { get; set; }
  54. [Subscription("PM1.BoatElevatorServo.IsActionEnable")]
  55. public bool BoatZAxisIsActionEnable { get; set; }
  56. [Subscription("PM1.BoatElevatorServo.IsMoving")]
  57. public bool BoatZAxisIsMoving { get; set; }
  58. public double ZAxisProcessPosition { get; set; }
  59. public double ZAxisPosition5 { get; set; }
  60. public double ZAxisPosition4 { get; set; }
  61. public double ZAxisPosition3 { get; set; }
  62. public double ZAxisPosition2 { get; set; }
  63. public double ZAxisPosition1 { get; set; }
  64. public double ZAxisHomePosition { get; set; }
  65. public double ZAxisPositiveLimit { get; set; }
  66. public double ZAxisNegativeLimit { get; set; }
  67. public double ZAxisMoveSpeed { get; set; }
  68. public double ZAxisAcc { get; set; }
  69. public double ZAxisDec { get; set; }
  70. public double ZAxisJogSpeed { get; set; }
  71. public double ZAxisAccTime { get; set; }
  72. public double ZAxisDecTime { get; set; }
  73. private Dictionary<string, string> zPositionTranslate = new Dictionary<string, string>()
  74. {{"Position1","Position1" }, {"Position2","Position2" },{"Position3","Position3" }};
  75. #endregion
  76. #region RAxis Data
  77. [Subscription("PM1.BoatRotationServo.CurrentPosition")]
  78. public float BoatRAxisCurrentPosition { get; set; }
  79. [Subscription("PM1.BoatRotationServo.CurrentSpeed")]
  80. public float BoatRAxisCurrentSpeed { get; set; }
  81. [Subscription("PM1.BoatRotationServo.TargetPosition")]
  82. public float BoatRAxisTargetPosition { get; set; }
  83. [Subscription("PM1.BoatRotationServo.IsReady")]
  84. public bool BoatRAxisIsReady { get; set; }
  85. [Subscription("PM1.BoatRotationServo.IsMoving")]
  86. public bool BoatRAxisIsMoving { get; set; }
  87. [Subscription("PM1.BoatRotationServo.IsInitDone")]
  88. public bool BoatRAxisIsInitDone { get; set; }
  89. [Subscription("PM1.BoatRotationServo.IsHomeDone")]
  90. public bool BoatRAxisIsHomeDone { get; set; }
  91. [Subscription("PM1.BoatRotationServo.IsHoming")]
  92. public bool BoatRAxisIsHoming { get; set; }
  93. [Subscription("PM1.BoatRotationServo.IsInitializing")]
  94. public bool BoatRAxisIsInitializing { get; set; }
  95. [Subscription("PM1.AlarmSignaBoatRAxisWarning.Value")]
  96. public bool BoatRAxisIsWarning { get; set; }
  97. [Subscription("PM1.AlarmSignaBoatRAxisAlarm.Value")]
  98. public bool BoatRAxisIsAlarm { get; set; }
  99. [Subscription("PM1.BoatRotationServo.IsServoOn")]
  100. public bool BoatRAxisIsServoOn { get; set; }
  101. [Subscription("PM1.BoatRotationServo.ErrorCode")]
  102. public string BoatRAxisErrorCode { get; set; }
  103. [Subscription("PM1.BoatRotationServo.Status")]
  104. public string BoatRAxisStatus { get; set; }
  105. [Subscription("PM1.BoatRotationServo.Direction")]
  106. public string BoatRAxisDirection { get; set; }
  107. [Subscription("PM1.BoatRotationServo.IsActionEnable")]
  108. public bool BoatRAxisIsActionEnable { get; set; }
  109. [Subscription("PM1.BoatRotationServo.IsMotorRun")]
  110. public bool BoatRAxisIsMotorRun { get; set; }
  111. public double RAxisLoadPosition { get; set; }
  112. public double RAxisPosition180 { get; set; }
  113. public double RAxisPosition90 { get; set; }
  114. public double RAxisPosition45 { get; set; }
  115. public double RAxisHomePosition { get; set; }
  116. public double RAxisPositiveLimit { get; set; }
  117. public double RAxisNegativeLimit { get; set; }
  118. public double RAxisMoveSpeed { get; set; }
  119. public double RAxisJogSpeed { get; set; }
  120. public double RAxisAccTime { get; set; }
  121. public double RAxisDecTime { get; set; }
  122. public double BoatRAxisLimitSpeed { get; set; }
  123. public double BoatZAxisLimitSpeed { get; set; }
  124. #endregion
  125. #region Shutter Data
  126. [Subscription("PM1.Shutter.OpenCloseStatus")]
  127. public string AutoDoorOpenCloseStatus { get; set; }
  128. #endregion
  129. [Subscription("Boat.BoatTestCycledCount")]
  130. public int BoatTestCycledCount { get; set; }
  131. private int _boatCycleCountSetPoint;
  132. public string BoatCycleDisplay => $" {BoatTestCycledCount} / {_boatCycleCountSetPoint}";
  133. [Subscription("Boat.ShutterCycledCount")]
  134. public int ShutterCycledCount { get; set; }
  135. private int _ShutterCycleCountSetPoint;
  136. public string ShutterCycleDisplay => $" {ShutterCycledCount} / {_ShutterCycleCountSetPoint}";
  137. private List<string> _ZPositions;
  138. public List<string> ZPositions
  139. {
  140. get { return _ZPositions; }
  141. set { _ZPositions = value; NotifyOfPropertyChange("ZPositions"); }
  142. }
  143. private List<string> _RPositions;
  144. public List<string> RPositions
  145. {
  146. get { return _RPositions; }
  147. set { _RPositions = value; NotifyOfPropertyChange("RPositions"); }
  148. }
  149. public string ZAxisTestStartPosition { get; set; }
  150. public string ZAxisTestEndPosition { get; set; }
  151. public string RAxisTestDirection { get; set; }
  152. //public bool IsPermission { get => this.Permission >= 3 && ClientApp.Instance.UserContext.RoleName == "Service"; }
  153. public bool IsPermission { get => this.Permission >= 3; }
  154. public BoatRobotViewModel()
  155. {
  156. _ZPositions = new List<string>()
  157. {
  158. "Position1",
  159. "Position2",
  160. "Position3",
  161. };
  162. RPositions = new List<string>()
  163. {
  164. "CW",
  165. "CCW",
  166. };
  167. }
  168. public void BoatModify()
  169. {
  170. var windowManager = IoC.Get<IWindowManager>();
  171. BoatModifyViewModel boatModifyViewModel = new BoatModifyViewModel(ModuleName.PM1.ToString());
  172. (windowManager as WindowManager)?.ShowDialogWithTitle(boatModifyViewModel, null, "Boat Wafer");
  173. }
  174. private BoatRobotView _view;
  175. protected override void InvokeAfterUpdateProperty(Dictionary<string, object> data)
  176. {
  177. InitData();
  178. if (_view != null)
  179. {
  180. var rsetValueBool = double.TryParse(_view?.tbMoveSpeed.Text, out double setZValue);
  181. if (!rsetValueBool)
  182. _view.tbMoveSpeed.Text = "0";
  183. var zsetValueBool = double.TryParse(_view?.tbSetSpeed.Text, out double setRValue);
  184. if (!rsetValueBool)
  185. _view.tbSetSpeed.Text = "0";
  186. if (!string.IsNullOrEmpty(_view?.tbMoveSpeed.Text) && rsetValueBool && setZValue > BoatZAxisLimitSpeed)
  187. {
  188. _view.tbMoveSpeed.Text = "0";
  189. DialogBox.ShowWarning($"Max Move Speed is {BoatZAxisLimitSpeed}");
  190. }
  191. if (!string.IsNullOrEmpty(_view?.tbSetSpeed.Text) && zsetValueBool && setRValue > BoatRAxisLimitSpeed)
  192. {
  193. _view.tbSetSpeed.Text = "0";
  194. DialogBox.ShowWarning($"Max Roat Speed is {BoatRAxisLimitSpeed}");
  195. }
  196. }
  197. }
  198. protected override void OnViewLoaded(object view)
  199. {
  200. base.OnViewLoaded(view);
  201. _view = view as BoatRobotView;
  202. BoatZAxisLimitSpeed = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.BoatZAxisLimitSpeed");
  203. BoatRAxisLimitSpeed = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.BoatRAxisLimitSpeed");
  204. }
  205. private void InitData()
  206. {
  207. ZAxisPosition1 = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Position1");
  208. ZAxisPosition2 = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Position2");
  209. ZAxisHomePosition = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Position6");
  210. ZAxisProcessPosition = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Position7");
  211. ZAxisPositiveLimit = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Position8");
  212. ZAxisNegativeLimit = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Position9");
  213. ZAxisMoveSpeed = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.MoveSpeed");
  214. ZAxisAcc = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Acc");
  215. ZAxisDec = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatElevatorServo.Dec");
  216. _boatCycleCountSetPoint = (int)QueryDataClient.Instance.Service.GetConfig($"Boat.CycleCount");
  217. _ShutterCycleCountSetPoint = (int)QueryDataClient.Instance.Service.GetConfig($"Boat.AutoShutter.CycleCount");
  218. RAxisPosition45 = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.Position1");
  219. RAxisPosition90 = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.Position2");
  220. RAxisPosition180 = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.Position3");
  221. RAxisLoadPosition = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.Position4");
  222. RAxisMoveSpeed = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.MoveSpeed");
  223. }
  224. public void BoatZSaveValue(object obj, object tb)
  225. {
  226. switch (obj)
  227. {
  228. case "Position1":
  229. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
  230. break;
  231. case "Position2":
  232. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
  233. break;
  234. case "Position3":
  235. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
  236. break;
  237. case "Position4":
  238. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
  239. break;
  240. case "Position5":
  241. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
  242. break;
  243. case "Position6":
  244. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
  245. break;
  246. case "Position7":
  247. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
  248. break;
  249. case "Position8":
  250. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
  251. break;
  252. case "Position9":
  253. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
  254. break;
  255. case "MoveSpeed":
  256. case "Acc":
  257. case "Dec":
  258. var setValue = double.Parse((tb as TextBox)?.Text);
  259. if (setValue > BoatZAxisLimitSpeed)
  260. {
  261. DialogBox.ShowWarning($"Max MoveSpeed is {BoatZAxisLimitSpeed}");
  262. break;
  263. }
  264. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatElevatorServo.{obj}", (tb as TextBox)?.Text);
  265. break;
  266. }
  267. }
  268. public void BoatRSaveValue(object obj, object tb)
  269. {
  270. switch (obj)
  271. {
  272. case "Position1":
  273. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatRotationServo.{obj}", (tb as TextBox)?.Text);
  274. break;
  275. case "Position2":
  276. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatRotationServo.{obj}", (tb as TextBox)?.Text);
  277. break;
  278. case "Position3":
  279. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatRotationServo.{obj}", (tb as TextBox)?.Text);
  280. break;
  281. case "Position4":
  282. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatRotationServo.{obj}", (tb as TextBox)?.Text);
  283. break;
  284. case "MoveSpeed":
  285. var textValue = string.IsNullOrEmpty((tb as TextBox)?.Text) ? "0" : (tb as TextBox)?.Text;
  286. var setValue = double.Parse(textValue);
  287. if (setValue > BoatRAxisLimitSpeed)
  288. {
  289. DialogBox.ShowWarning($"Max Roat Speed is {BoatRAxisLimitSpeed}");
  290. return;
  291. }
  292. InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"Boat.BoatRotationServo.{obj}", (tb as TextBox)?.Text);
  293. break;
  294. }
  295. }
  296. public void MoveTo(object targetPosition)
  297. {
  298. if (!DialogBox.Confirm($"Are you sure want to MoveTo {targetPosition}?"))
  299. return;
  300. switch (targetPosition)
  301. {
  302. case "Position1":
  303. InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
  304. break;
  305. case "Position2":
  306. InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
  307. break;
  308. case "Position3":
  309. InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
  310. break;
  311. case "Position4":
  312. InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
  313. break;
  314. case "Position5":
  315. InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
  316. break;
  317. case "Position6":
  318. InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
  319. break;
  320. case "Position7":
  321. InvokeClient.Instance.Service.DoOperation($"PM1.BoatElevatorServo.ServoMoveTo", targetPosition);
  322. break;
  323. }
  324. }
  325. public void RAxisMoveTo(object targetPosition)
  326. {
  327. switch (targetPosition)
  328. {
  329. case "Position1":
  330. InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition);
  331. break;
  332. case "Position2":
  333. InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition);
  334. break;
  335. case "Position3":
  336. InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition);
  337. break;
  338. case "Position4":
  339. InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition);
  340. break;
  341. case "CW":
  342. var speed = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.MoveSpeed");
  343. InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition, speed);
  344. break;
  345. case "CCW":
  346. speed = (double)QueryDataClient.Instance.Service.GetConfig($"Boat.BoatRotationServo.MoveSpeed");
  347. InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition, speed);
  348. break;
  349. default:
  350. InvokeClient.Instance.Service.DoOperation($"PM1.BoatRotationServo.ServoMoveTo", targetPosition);
  351. break;
  352. }
  353. }
  354. public void BoatZServoTest()
  355. {
  356. if (!DialogBox.Confirm($"Are you sure want to Move Test?"))
  357. return;
  358. if (string.IsNullOrEmpty(ZAxisTestStartPosition))
  359. {
  360. return;
  361. }
  362. if (zPositionTranslate.Keys.Contains(ZAxisTestStartPosition) && zPositionTranslate.Keys.Contains(ZAxisTestStartPosition))
  363. {
  364. InvokeClient.Instance.Service.DoOperation($"Boat.ZAxisMovingTest", zPositionTranslate[ZAxisTestStartPosition], zPositionTranslate[ZAxisTestEndPosition]);
  365. }
  366. else
  367. {
  368. InvokeClient.Instance.Service.DoOperation($"Boat.ZAxisMovingTest", ZAxisTestStartPosition, ZAxisTestEndPosition);
  369. }
  370. }
  371. public void BoatRotationServoTest(object targetPosition)
  372. {
  373. if (!DialogBox.Confirm($"Are you sure want to CW?"))
  374. return;
  375. InvokeClient.Instance.Service.DoOperation($"Boat.RAxisMovingTest", targetPosition);
  376. }
  377. public void BoatTestStart()
  378. {
  379. if (!DialogBox.Confirm($"Are you sure want to Test Start?"))
  380. return;
  381. if (zPositionTranslate.Keys.Contains(ZAxisTestStartPosition) && zPositionTranslate.Keys.Contains(ZAxisTestStartPosition))
  382. {
  383. InvokeClient.Instance.Service.DoOperation($"Boat.MovingTest", zPositionTranslate[ZAxisTestStartPosition], zPositionTranslate[ZAxisTestEndPosition], RAxisTestDirection);
  384. }
  385. else
  386. {
  387. InvokeClient.Instance.Service.DoOperation($"Boat.MovingTest", ZAxisTestStartPosition, ZAxisTestEndPosition, RAxisTestDirection);
  388. }
  389. }
  390. public void BoatTestStop()
  391. {
  392. if (!DialogBox.Confirm($"Are you sure want to Test Stop?"))
  393. return;
  394. InvokeClient.Instance.Service.DoOperation($"Boat.Abort");
  395. }
  396. public void ShutterTestStart()
  397. {
  398. if (!DialogBox.Confirm($"Are you sure want to Shutter Test Start?"))
  399. return;
  400. InvokeClient.Instance.Service.DoOperation($"Boat.ShutterCycleTest");
  401. }
  402. public void ShutterTestStop()
  403. {
  404. if (!DialogBox.Confirm($"Are you sure want to Shutter Test Stop?"))
  405. return;
  406. InvokeClient.Instance.Service.DoOperation($"Boat.Abort");
  407. }
  408. public void BoatRotationServoStopTest()
  409. {
  410. if (!DialogBox.Confirm($"Are you sure want to Abort?"))
  411. return;
  412. InvokeClient.Instance.Service.DoOperation($"Boat.Abort");
  413. }
  414. public void Home(object target)
  415. {
  416. if (!DialogBox.Confirm($"Are you sure want to Home?"))
  417. return;
  418. InvokeClient.Instance.Service.DoOperation($"{target}.ServoHome");
  419. }
  420. public void SetServoOn(object target, object isOn)
  421. {
  422. if (!DialogBox.Confirm($"Are you sure want to {isOn} ?"))
  423. return;
  424. InvokeClient.Instance.Service.DoOperation($"{target}", $"{isOn}");
  425. }
  426. public void Continue(object target)
  427. {
  428. if (!DialogBox.Confirm($"Are you sure want to Continue?"))
  429. return;
  430. InvokeClient.Instance.Service.DoOperation($"{target}.Continue");
  431. }
  432. public void Stop(object target)
  433. {
  434. if (!DialogBox.Confirm($"Are you sure want to Stop?"))
  435. return;
  436. InvokeClient.Instance.Service.DoOperation($"{target}.ServoStop");
  437. }
  438. public void Reset(object target)
  439. {
  440. if (!DialogBox.Confirm($"Are you sure want to Reset?"))
  441. return;
  442. InvokeClient.Instance.Service.DoOperation($"{target}.ServoResetAlarm");
  443. }
  444. public void SetOpen(object target, bool open)
  445. {
  446. var str = open ? "open" : "false";
  447. // IsAutoDoorEnableManualOperation
  448. if (!DialogBox.Confirm($"Are you sure want to {str} Shutter?"))
  449. return;
  450. InvokeClient.Instance.Service.DoOperation($"{target}", open);
  451. }
  452. }
  453. }