APCConfigViewModel.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. using Caliburn.Micro;
  2. using Caliburn.Micro.Core;
  3. using Aitex.Core.Common.DeviceData;
  4. using Aitex.Core.UI.ControlDataContext;
  5. using Aitex.Core.Util;
  6. using MECF.Framework.Common.DataCenter;
  7. using MECF.Framework.Common.OperationCenter;
  8. using FurnaceUI.Models;
  9. using FurnaceUI.Views.Editors;
  10. using System.Collections.ObjectModel;
  11. using System.Collections.Generic;
  12. using System.Threading.Tasks;
  13. using System.Reflection;
  14. using System;
  15. using Aitex.Core.RT.Log;
  16. using System.Linq;
  17. using System.Windows;
  18. using System.Windows.Controls;
  19. namespace FurnaceUI.Views.Maintenances
  20. {
  21. public class APCConfigViewModel : FurnaceUIViewModelBase
  22. {
  23. public bool IsManagerPermission { get => this.Permission == 3; }
  24. [Subscription("PM1.APC.ValveStatusThreshold")]
  25. public float ValveStatusThreshold { get; set; }
  26. [Subscription("PM1.APC.SlowVacuumModeSetting")]
  27. public float SlowVacuumModeSetting { get; set; }
  28. [Subscription("PM1.APC.Interlock1")]
  29. public float Interlock1 { get; set; }
  30. [Subscription("PM1.APC.Interlock2")]
  31. public float Interlock2 { get; set; }
  32. [Subscription("PM1.APC.Interlock3")]
  33. public float Interlock3 { get; set; }
  34. [Subscription("PM1.APC.InterlockConstantOfInterlock3")]
  35. public float InterlockConstantOfInterlock3 { get; set; }
  36. [Subscription("PM1.APC.P1SensorOffsetSetting")]
  37. public float P1SensorOffsetSetting { get; set; }
  38. [Subscription("PM1.APC.PosMonOffsetSetting")]
  39. public float PosMonOffsetSetting { get; set; }
  40. public float ValveStausThresholdSet { get; set; }
  41. public float SlowVacuumModeSettingSet { get; set; }
  42. public float Interlock1Set { get; set; }
  43. public float Interlock2Set { get; set; }
  44. public float Interlock3Set { get; set; }
  45. public float InterlockConstantOfInterlock3Set { get; set; }
  46. public float P1SensorOffsetSettingSet { get; set; }
  47. public float PosMonOffsetSettingSet { get; set; }
  48. public APCConfigViewModel()
  49. {
  50. }
  51. protected override void OnActivate()
  52. {
  53. ValveStausThresholdSet = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.ValveStatusThreshold");
  54. SlowVacuumModeSettingSet = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.SlowVacuumModeSetting");
  55. Interlock1Set = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.Interlock1");
  56. Interlock2Set = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.Interlock2");
  57. Interlock3Set = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.Interlock3");
  58. InterlockConstantOfInterlock3Set = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.InterlockConstantOfInterlock3");
  59. P1SensorOffsetSettingSet = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.P1SensorOffsetSetting");
  60. PosMonOffsetSettingSet = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.PosMonOffsetSetting");
  61. base.OnActivate();
  62. }
  63. public void SetAlarmReset(object target)
  64. {
  65. InvokeClient.Instance.Service.DoOperation($"{target?.ToString().Split('.').ToList().LastOrDefault()}.Reset");
  66. }
  67. public void SetConfig(object tbValveStausThreshold,
  68. object tbSlowVacuumModeSetting,
  69. object tbInterlock1,
  70. object tbInterlock2,
  71. object tbInterlock3,
  72. object tbInterlockConstantOfInterlock3,
  73. object tbP1SensorOffsetSetting,
  74. object tbPosMonOffsetSetting)
  75. {
  76. InvokeClient.Instance.Service.DoOperation($"PM1.APC.SetConfig",
  77. (tbValveStausThreshold as TextBox)?.Text,
  78. (tbSlowVacuumModeSetting as TextBox)?.Text,
  79. (tbInterlock1 as TextBox)?.Text,
  80. (tbInterlock2 as TextBox)?.Text,
  81. (tbInterlock3 as TextBox)?.Text,
  82. (tbInterlockConstantOfInterlock3 as TextBox)?.Text,
  83. (tbP1SensorOffsetSetting as TextBox)?.Text,
  84. (tbPosMonOffsetSetting as TextBox)?.Text);
  85. }
  86. public void SetUpload()
  87. {
  88. InvokeClient.Instance.Service.DoOperation($"PM1.APC.SetUpload");
  89. }
  90. public void SetDownload(object tbValveStausThreshold,
  91. object tbSlowVacuumModeSetting,
  92. object tbInterlock1,
  93. object tbInterlock2,
  94. object tbInterlock3,
  95. object tbInterlockConstantOfInterlock3,
  96. object tbP1SensorOffsetSetting,
  97. object tbPosMonOffsetSetting)
  98. {
  99. InvokeClient.Instance.Service.DoOperation($"PM1.APC.SetDownload",
  100. (tbValveStausThreshold as TextBox)?.Text,
  101. (tbSlowVacuumModeSetting as TextBox)?.Text,
  102. (tbInterlock1 as TextBox)?.Text,
  103. (tbInterlock2 as TextBox)?.Text,
  104. (tbInterlock3 as TextBox)?.Text,
  105. (tbInterlockConstantOfInterlock3 as TextBox)?.Text,
  106. (tbP1SensorOffsetSetting as TextBox)?.Text,
  107. (tbPosMonOffsetSetting as TextBox)?.Text);
  108. }
  109. public void CloseCmd()
  110. {
  111. ((Window)GetView()).Close();
  112. }
  113. }
  114. }