DepRecipe.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. using CyberX8_Core;
  2. using DocumentFormat.OpenXml.ExtendedProperties;
  3. using MECF.Framework.Common.CommonData;
  4. using Newtonsoft.Json;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Collections.ObjectModel;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace MECF.Framework.Common.RecipeCenter
  12. {
  13. public class DepRecipe : NotifiableItem
  14. {
  15. #region 内部变量
  16. private string _author;
  17. private string _description;
  18. private string _ppid;
  19. private RecipeType _recipeType = RecipeType.DEP;
  20. private DateTime _saveDate;
  21. private DateTime _createDate;
  22. private int _anodeType;
  23. private string _chemistry;
  24. private int _currentWarningLevel;
  25. private int _cycleClampsMaxTries;
  26. private int _faultPercent;
  27. private int _platingDelaySeconds;
  28. private int _volatageLimitMax;
  29. private int _volatageLimitMin;
  30. private int _voltageWarningLevel;
  31. private bool _cycleClampsEnable;
  32. private bool _hotPlatingCurrentOn;
  33. private ObservableCollection<CurrentRampProfile> _currentRampProfileSteps;
  34. private ObservableCollection<PulsePowerSupplyStep> _pulsePowerSupplySteps;
  35. private bool _multiAnodeType;
  36. private int _depositionPlatingSteps;
  37. private string _depositionTotalTime;
  38. private double _depositionTotalCurrent;
  39. private int _totalTime;
  40. #endregion
  41. #region 属性
  42. [JsonProperty]
  43. public string Author { get { return _author; } set { _author = value; InvokePropertyChanged(nameof(Author)); } }
  44. [JsonProperty]
  45. public string Description { get { return _description; } set { _description = value; InvokePropertyChanged(nameof(Description)); } }
  46. [JsonProperty]
  47. public string Ppid { get { return _ppid; } set { _ppid = value; InvokePropertyChanged(nameof(Ppid)); } }
  48. [JsonProperty]
  49. public RecipeType RecipeType { get { return _recipeType; } set { _recipeType = value; InvokePropertyChanged(nameof(RecipeType)); } }
  50. [JsonProperty]
  51. public DateTime CreateDate { get { return _createDate; } set { _createDate = value; InvokePropertyChanged(nameof(CreateDate)); } }
  52. [JsonProperty]
  53. public DateTime SaveDate { get { return _saveDate; } set { _saveDate = value; InvokePropertyChanged(nameof(SaveDate)); } }
  54. [JsonProperty]
  55. public string Chemistry { get { return _chemistry; } set { _chemistry = value; InvokePropertyChanged(nameof(Chemistry)); } }
  56. [JsonProperty]
  57. public int AnodeType { get { return _anodeType; } set { _anodeType = value;InvokePropertyChanged(nameof(AnodeType)); } }
  58. [JsonProperty]
  59. public int CurrentWarningLevel { get { return _currentWarningLevel; } set { _currentWarningLevel = value; InvokePropertyChanged(nameof(CurrentWarningLevel)); } }
  60. [JsonProperty]
  61. public int CycleClampsMaxTries { get { return _cycleClampsMaxTries;} set { _cycleClampsMaxTries = value; InvokePropertyChanged(nameof(CycleClampsMaxTries)); } }
  62. [JsonProperty]
  63. public int FaultPercent { get { return _faultPercent; } set { _faultPercent = value; InvokePropertyChanged(nameof(FaultPercent)); } }
  64. [JsonProperty]
  65. public int PlatingDelaySeconds { get { return _platingDelaySeconds; } set { _platingDelaySeconds = value; InvokePropertyChanged(nameof(PlatingDelaySeconds)); } }
  66. [JsonProperty]
  67. public int VolatageLimitMax { get { return _volatageLimitMax;} set { _volatageLimitMax = value; InvokePropertyChanged(nameof(VolatageLimitMax)); } }
  68. [JsonProperty]
  69. public int VolatageLimitMin { get { return _volatageLimitMin;} set { _volatageLimitMin = value; InvokePropertyChanged(nameof(VolatageLimitMin)); } }
  70. [JsonProperty]
  71. public int VoltageWarningLevel { get { return _voltageWarningLevel; } set { _voltageWarningLevel = value; InvokePropertyChanged(nameof(VoltageWarningLevel)); } }
  72. [JsonProperty]
  73. public bool CycleClampsEnable { get { return _cycleClampsEnable; } set { _cycleClampsEnable = value;InvokePropertyChanged(nameof(CycleClampsEnable)); } }
  74. [JsonProperty]
  75. public bool HotPlatingCurrentOn { get { return _hotPlatingCurrentOn; } set { _hotPlatingCurrentOn = value;InvokePropertyChanged(nameof(HotPlatingCurrentOn)); } }
  76. [JsonProperty]
  77. public ObservableCollection<CurrentRampProfile> CurrentRampProfileSteps { get { return _currentRampProfileSteps; }
  78. set { _currentRampProfileSteps = value; InvokePropertyChanged(nameof(CurrentRampProfileSteps));} }
  79. [JsonProperty]
  80. public ObservableCollection<PulsePowerSupplyStep> PulsePowerSupplySteps { get { return _pulsePowerSupplySteps; }
  81. set { _pulsePowerSupplySteps = value; InvokePropertyChanged(nameof(PulsePowerSupplySteps));} }
  82. [JsonProperty]
  83. public bool MultiAnodeType { get { return _multiAnodeType; } set { _multiAnodeType = value; InvokePropertyChanged(nameof(MultiAnodeType));} }
  84. [JsonProperty]
  85. public int DepositionPlatingSteps { get { return _depositionPlatingSteps; } set { _depositionPlatingSteps = value; InvokePropertyChanged(nameof(DepositionPlatingSteps)); } }
  86. [JsonProperty]
  87. public string DepositionTotalTime { get { return _depositionTotalTime; } set { _depositionTotalTime = value; InvokePropertyChanged(nameof(DepositionTotalTime)); } }
  88. [JsonProperty]
  89. public double DepositionTotalCurrent { get { return _depositionTotalCurrent; } set { _depositionTotalCurrent = value; InvokePropertyChanged(nameof(DepositionTotalCurrent)); } }
  90. [JsonProperty]
  91. public int TotalTime { get { return _totalTime; } set { _totalTime = value; InvokePropertyChanged(nameof(TotalTime)); } }
  92. #endregion
  93. /// <summary>
  94. /// 计算Recipe总时间
  95. /// </summary>
  96. /// <returns></returns>
  97. public int CalculateRecipeTotalTime()
  98. {
  99. int count = this.PlatingDelaySeconds;
  100. foreach (var item in this.CurrentRampProfileSteps)
  101. {
  102. count += item.CurrentRampDurartionSeconds;
  103. }
  104. return count;
  105. }
  106. }
  107. }