PowerSupplyChannelControl.xaml.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. using MECF.Framework.Common.CommonData.PowerSupplier;
  2. using MECF.Framework.Common.OperationCenter;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Input;
  13. using System.Windows.Media;
  14. using System.Windows.Media.Imaging;
  15. using System.Windows.Navigation;
  16. using System.Windows.Shapes;
  17. namespace CyberX8_Themes.UserControls
  18. {
  19. /// <summary>
  20. /// PowerSupplyChannelControl.xaml 的交互逻辑
  21. /// </summary>
  22. public partial class PowerSupplyChannelControl : UserControl
  23. {
  24. #region 属性
  25. public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register("ModuleName", typeof(string), typeof(PowerSupplyChannelControl),
  26. new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
  27. /// <summary>
  28. /// 模块名称
  29. /// </summary>
  30. public string ModuleName
  31. {
  32. get
  33. {
  34. return (string)this.GetValue(ModuleNameProperty);
  35. }
  36. set
  37. {
  38. this.SetValue(ModuleNameProperty, value);
  39. }
  40. }
  41. public static readonly DependencyProperty ModuleTitleProperty = DependencyProperty.Register("ModuleTitle", typeof(string), typeof(PowerSupplyChannelControl),
  42. new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
  43. /// <summary>
  44. /// 模块标题
  45. /// </summary>
  46. public string ModuleTitle
  47. {
  48. get
  49. {
  50. return (string)this.GetValue(ModuleTitleProperty);
  51. }
  52. set
  53. {
  54. this.SetValue(ModuleTitleProperty, value);
  55. }
  56. }
  57. public static readonly DependencyProperty MetalCellSideNameProperty = DependencyProperty.Register("MetalCellSideName", typeof(string), typeof(PowerSupplyChannelControl),
  58. new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
  59. /// <summary>
  60. /// Metal单元面名称
  61. /// </summary>
  62. public string MetalCellSideName
  63. {
  64. get
  65. {
  66. return (string)this.GetValue(MetalCellSideNameProperty);
  67. }
  68. set
  69. {
  70. this.SetValue(MetalCellSideNameProperty, value);
  71. }
  72. }
  73. public static readonly DependencyProperty InputSetPointProperty = DependencyProperty.Register("InputSetPoint", typeof(double), typeof(PowerSupplyChannelControl),
  74. new FrameworkPropertyMetadata((double)0, FrameworkPropertyMetadataOptions.AffectsRender));
  75. /// <summary>
  76. /// 输入设置数值
  77. /// </summary>
  78. public double InputSetPoint
  79. {
  80. get
  81. {
  82. return (double)this.GetValue(InputSetPointProperty);
  83. }
  84. set
  85. {
  86. this.SetValue(InputSetPointProperty, value);
  87. }
  88. }
  89. public static readonly DependencyProperty SetPointProperty = DependencyProperty.Register("SetPoint", typeof(double), typeof(PowerSupplyChannelControl),
  90. new FrameworkPropertyMetadata((double)0, FrameworkPropertyMetadataOptions.AffectsRender));
  91. /// <summary>
  92. /// 设置数值
  93. /// </summary>
  94. public double SetPoint
  95. {
  96. get
  97. {
  98. return (double)this.GetValue(SetPointProperty);
  99. }
  100. set
  101. {
  102. this.SetValue(SetPointProperty, value);
  103. }
  104. }
  105. public static readonly DependencyProperty PowerStatusProperty = DependencyProperty.Register("PowerStatus", typeof(string), typeof(PowerSupplyChannelControl),
  106. new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
  107. /// <summary>
  108. /// 电源状态
  109. /// </summary>
  110. public string PowerStatus
  111. {
  112. get
  113. {
  114. return (string)this.GetValue(PowerStatusProperty);
  115. }
  116. set
  117. {
  118. this.SetValue(PowerStatusProperty, value);
  119. }
  120. }
  121. public static readonly DependencyProperty CurrentProperty = DependencyProperty.Register("Current", typeof(double), typeof(PowerSupplyChannelControl),
  122. new FrameworkPropertyMetadata((double)0, FrameworkPropertyMetadataOptions.AffectsRender));
  123. /// <summary>
  124. /// 电流
  125. /// </summary>
  126. public double Current
  127. {
  128. get
  129. {
  130. return (double)this.GetValue(CurrentProperty);
  131. }
  132. set
  133. {
  134. this.SetValue(CurrentProperty, value);
  135. }
  136. }
  137. public static readonly DependencyProperty VoltageProperty = DependencyProperty.Register("Voltage", typeof(double), typeof(PowerSupplyChannelControl),
  138. new FrameworkPropertyMetadata((double)0, FrameworkPropertyMetadataOptions.AffectsRender));
  139. /// <summary>
  140. /// 电压
  141. /// </summary>
  142. public double Voltage
  143. {
  144. get
  145. {
  146. return (double)this.GetValue(VoltageProperty);
  147. }
  148. set
  149. {
  150. this.SetValue(VoltageProperty, value);
  151. }
  152. }
  153. public static readonly DependencyProperty OutputEnabledProperty = DependencyProperty.Register("OutputEnabled", typeof(bool), typeof(PowerSupplyChannelControl),
  154. new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  155. /// <summary>
  156. /// 可用性
  157. /// </summary>
  158. public bool OutputEnabled
  159. {
  160. get
  161. {
  162. return (bool)this.GetValue(OutputEnabledProperty);
  163. }
  164. set
  165. {
  166. this.SetValue(OutputEnabledProperty, value);
  167. }
  168. }
  169. public static readonly DependencyProperty ConnectedProperty = DependencyProperty.Register("Connected", typeof(bool), typeof(PowerSupplyChannelControl),
  170. new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  171. /// <summary>
  172. /// 连接状态
  173. /// </summary>
  174. public bool Connected
  175. {
  176. get
  177. {
  178. return (bool)this.GetValue(ConnectedProperty);
  179. }
  180. set
  181. {
  182. this.SetValue(ConnectedProperty, value);
  183. }
  184. }
  185. public static readonly DependencyProperty PowerControlProperty = DependencyProperty.Register("PowerControl", typeof(string), typeof(PowerSupplyChannelControl),
  186. new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
  187. /// <summary>
  188. /// 电源远程状态
  189. /// </summary>
  190. public string PowerControl
  191. {
  192. get
  193. {
  194. return (string)this.GetValue(PowerControlProperty);
  195. }
  196. set
  197. {
  198. this.SetValue(PowerControlProperty, value);
  199. }
  200. }
  201. public static readonly DependencyProperty PowerRunModelProperty = DependencyProperty.Register("PowerRunModel", typeof(string), typeof(PowerSupplyChannelControl),
  202. new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
  203. /// <summary>
  204. /// 电源运行模式
  205. /// </summary>
  206. public string PowerRunModel
  207. {
  208. get
  209. {
  210. return (string)this.GetValue(PowerRunModelProperty);
  211. }
  212. set
  213. {
  214. this.SetValue(PowerRunModelProperty, value);
  215. }
  216. }
  217. public static readonly DependencyProperty Step1DataProperty = DependencyProperty.Register("Step1Data", typeof(PowerSupplierStepPeriodData), typeof(PowerSupplyChannelControl),
  218. new FrameworkPropertyMetadata(new PowerSupplierStepPeriodData(), FrameworkPropertyMetadataOptions.AffectsRender));
  219. /// <summary>
  220. /// 连接状态
  221. /// </summary>
  222. public PowerSupplierStepPeriodData Step1Data
  223. {
  224. get
  225. {
  226. return (PowerSupplierStepPeriodData)this.GetValue(Step1DataProperty);
  227. }
  228. set
  229. {
  230. this.SetValue(Step1DataProperty, value);
  231. }
  232. }
  233. public static readonly DependencyProperty Step2DataProperty = DependencyProperty.Register("Step2Data", typeof(PowerSupplierStepPeriodData), typeof(PowerSupplyChannelControl),
  234. new FrameworkPropertyMetadata(new PowerSupplierStepPeriodData(), FrameworkPropertyMetadataOptions.AffectsRender));
  235. /// <summary>
  236. /// 连接状态
  237. /// </summary>
  238. public PowerSupplierStepPeriodData Step2Data
  239. {
  240. get
  241. {
  242. return (PowerSupplierStepPeriodData)this.GetValue(Step2DataProperty);
  243. }
  244. set
  245. {
  246. this.SetValue(Step2DataProperty, value);
  247. }
  248. }
  249. public static readonly DependencyProperty Step3DataProperty = DependencyProperty.Register("Step3Data", typeof(PowerSupplierStepPeriodData), typeof(PowerSupplyChannelControl),
  250. new FrameworkPropertyMetadata(new PowerSupplierStepPeriodData(), FrameworkPropertyMetadataOptions.AffectsRender));
  251. /// <summary>
  252. /// 连接状态
  253. /// </summary>
  254. public PowerSupplierStepPeriodData Step3Data
  255. {
  256. get
  257. {
  258. return (PowerSupplierStepPeriodData)this.GetValue(Step3DataProperty);
  259. }
  260. set
  261. {
  262. this.SetValue(Step3DataProperty, value);
  263. }
  264. }
  265. #endregion
  266. public PowerSupplyChannelControl()
  267. {
  268. InitializeComponent();
  269. }
  270. #region 按钮事件
  271. private void Enable_Click(object sender, RoutedEventArgs e)
  272. {
  273. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Enable");
  274. }
  275. private void Disable_Click(object sender, RoutedEventArgs e)
  276. {
  277. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Disable");
  278. }
  279. private void SetPoint_Click(object sender, RoutedEventArgs e)
  280. {
  281. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetPoint","TargetPoint",InputSetPoint);
  282. }
  283. /// <summary>
  284. /// 启动
  285. /// </summary>
  286. /// <param name="sender"></param>
  287. /// <param name="e"></param>
  288. private void Start_Click(object sender, RoutedEventArgs e)
  289. {
  290. List<PowerSupplierStepPeriodData> stepPeriodDatas = new List<PowerSupplierStepPeriodData>();
  291. if(Step1Data.Hour+Step1Data.Minute+Step1Data.Second+Step1Data.Microsecond!=0&&Step1Data.Current!=0)
  292. {
  293. stepPeriodDatas.Add(Step1Data);
  294. }
  295. else
  296. {
  297. return;
  298. }
  299. if (Step2Data.Hour + Step2Data.Minute + Step2Data.Second + Step2Data.Microsecond != 0 && Step2Data.Current != 0)
  300. {
  301. stepPeriodDatas.Add(Step2Data);
  302. }
  303. if (Step3Data.Hour + Step3Data.Minute + Step3Data.Second + Step3Data.Microsecond != 0 && Step3Data.Current != 0)
  304. {
  305. stepPeriodDatas.Add(Step3Data);
  306. }
  307. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StartStepPeriod", "StepPeriodDatas", stepPeriodDatas);
  308. }
  309. private void Remote_Click(object sender, RoutedEventArgs e)
  310. {
  311. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetRemoteControl");
  312. }
  313. private void Local_Click(object sender, RoutedEventArgs e)
  314. {
  315. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetLocalControl");
  316. }
  317. private void Abort_Click(object sender, RoutedEventArgs e)
  318. {
  319. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Abort");
  320. }
  321. #endregion
  322. }
  323. }