CountersControl.xaml.cs 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. using MECF.Framework.Common.CommonData.Reservoir;
  2. using MECF.Framework.Common.Equipment;
  3. using MECF.Framework.Common.OperationCenter;
  4. using MECF.Framework.Common.Persistent.Reservoirs;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Collections.ObjectModel;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Text.RegularExpressions;
  11. using System.Threading.Tasks;
  12. using System.Windows;
  13. using System.Windows.Controls;
  14. using System.Windows.Data;
  15. using System.Windows.Documents;
  16. using System.Windows.Input;
  17. using System.Windows.Media;
  18. using System.Windows.Media.Imaging;
  19. using System.Windows.Navigation;
  20. using System.Windows.Shapes;
  21. namespace CyberX8_Themes.UserControls
  22. {
  23. /// <summary>
  24. /// CountersControl.xaml 的交互逻辑
  25. /// </summary>
  26. public partial class CountersControl : UserControl
  27. {
  28. public CountersControl()
  29. {
  30. InitializeComponent();
  31. }
  32. public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register(
  33. "ModuleName", typeof(string), typeof(CountersControl), new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
  34. /// <summary>
  35. /// 模块名称
  36. /// </summary>
  37. public string ModuleName
  38. {
  39. get
  40. {
  41. return (string)this.GetValue(ModuleNameProperty);
  42. }
  43. set
  44. {
  45. this.SetValue(ModuleNameProperty, value);
  46. }
  47. }
  48. public static readonly DependencyProperty ReplenNumProperty = DependencyProperty.Register(
  49. "ReplenNum", typeof(int), typeof(CountersControl), new FrameworkPropertyMetadata(0, FrameworkPropertyMetadataOptions.AffectsRender));
  50. /// <summary>
  51. /// Replen数量
  52. /// </summary>
  53. public int ReplenNum
  54. {
  55. get
  56. {
  57. return (int)this.GetValue(ReplenNumProperty);
  58. }
  59. set
  60. {
  61. this.SetValue(ReplenNumProperty, value);
  62. }
  63. }
  64. public static readonly DependencyProperty ReplenDatasProperty = DependencyProperty.Register(
  65. "ReplenDatas", typeof(ObservableCollection<ReplenData>), typeof(CountersControl), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender));
  66. /// <summary>
  67. /// ReplenDatas
  68. /// </summary>
  69. public ObservableCollection<ReplenData> ReplenDatas
  70. {
  71. get
  72. {
  73. return (ObservableCollection<ReplenData>)this.GetValue(ReplenDatasProperty);
  74. }
  75. set
  76. {
  77. this.SetValue(ReplenDatasProperty, value);
  78. }
  79. }
  80. public static readonly DependencyProperty ReplensPersistentCollectionProperty = DependencyProperty.Register(
  81. "ReplensPersistentCollection", typeof(ObservableCollection<ReplenPersistentValue>), typeof(CountersControl), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender));
  82. /// <summary>
  83. /// Replen Persistent数据集合
  84. /// </summary>
  85. public ObservableCollection<ReplenPersistentValue> ReplensPersistentCollection
  86. {
  87. get
  88. {
  89. return (ObservableCollection<ReplenPersistentValue>)this.GetValue(ReplensPersistentCollectionProperty);
  90. }
  91. set
  92. {
  93. this.SetValue(ReplensPersistentCollectionProperty, value);
  94. }
  95. }
  96. public static readonly DependencyProperty IsManualorAutoProperty = DependencyProperty.Register(
  97. "IsManualorAuto", typeof(bool), typeof(CountersControl), new FrameworkPropertyMetadata(true, FrameworkPropertyMetadataOptions.AffectsRender));
  98. /// <summary>
  99. /// IsManualorAuto
  100. /// </summary>
  101. public bool IsManualorAuto
  102. {
  103. get
  104. {
  105. return (bool)this.GetValue(IsManualorAutoProperty);
  106. }
  107. set
  108. {
  109. this.SetValue(IsManualorAutoProperty, value);
  110. }
  111. }
  112. /// <summary>
  113. /// Replen1 开始补液
  114. /// </summary>
  115. /// <param name="sender"></param>
  116. /// <param name="e"></param>
  117. private void Replen1Start_Click(object sender, RoutedEventArgs e)
  118. {
  119. if(replen1Volume.Text != "")
  120. {
  121. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ManualDosing", "Replen1", double.Parse(replen1Volume.Text));
  122. }
  123. }
  124. /// <summary>
  125. /// Replen1 停止补液
  126. /// </summary>
  127. /// <param name="sender"></param>
  128. /// <param name="e"></param>
  129. private void Replen1Stop_Click(object sender, RoutedEventArgs e)
  130. {
  131. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StopManualDosing", "Replen1");
  132. }
  133. /// <summary>
  134. /// Replen2 开始补液
  135. /// </summary>
  136. /// <param name="sender"></param>
  137. /// <param name="e"></param>
  138. private void Replen2Start_Click(object sender, RoutedEventArgs e)
  139. {
  140. if (replen2Volume.Text != "")
  141. {
  142. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ManualDosing", "Replen2", double.Parse(replen2Volume.Text));
  143. }
  144. }
  145. /// <summary>
  146. /// Replen2 停止补液
  147. /// </summary>
  148. /// <param name="sender"></param>
  149. /// <param name="e"></param>
  150. private void Replen2Stop_Click(object sender, RoutedEventArgs e)
  151. {
  152. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StopManualDosing", "Replen2");
  153. }
  154. /// <summary>
  155. /// Replen3 开始补液
  156. /// </summary>
  157. /// <param name="sender"></param>
  158. /// <param name="e"></param>
  159. private void Replen3Start_Click(object sender, RoutedEventArgs e)
  160. {
  161. if (replen3Volume.Text != "")
  162. {
  163. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ManualDosing", "Replen3", double.Parse(replen1Volume.Text));
  164. }
  165. }
  166. /// <summary>
  167. /// Replen3 停止补液
  168. /// </summary>
  169. /// <param name="sender"></param>
  170. /// <param name="e"></param>
  171. private void Replen3Stop_Click(object sender, RoutedEventArgs e)
  172. {
  173. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StopManualDosing", "Replen3");
  174. }
  175. /// <summary>
  176. /// Replen4 开始补液
  177. /// </summary>
  178. /// <param name="sender"></param>
  179. /// <param name="e"></param>
  180. private void Replen4Start_Click(object sender, RoutedEventArgs e)
  181. {
  182. if (replen4Volume.Text != "")
  183. {
  184. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ManualDosing", "Replen4", double.Parse(replen1Volume.Text));
  185. }
  186. }
  187. /// <summary>
  188. /// Replen4 停止补液
  189. /// </summary>
  190. /// <param name="sender"></param>
  191. /// <param name="e"></param>
  192. private void Replen4Stop_Click(object sender, RoutedEventArgs e)
  193. {
  194. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StopManualDosing", "Replen4");
  195. }
  196. /// <summary>
  197. /// 输入符号限制(数字和.)
  198. /// </summary>
  199. /// <param name="sender"></param>
  200. /// <param name="e"></param>
  201. private void OnPreviewTextInput(object sender, TextCompositionEventArgs e)
  202. {
  203. e.Handled = !IsTextAllowed(e.Text, ((TextBox)sender).Text);
  204. }
  205. private bool IsTextAllowed(string key, string text)
  206. {
  207. Regex regex = new Regex(@"^[0-9\.]+$");
  208. return regex.IsMatch(key);
  209. }
  210. }
  211. }