BufferDebugView.xaml.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. using ivf_tl_Operate.ViewModel;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Net.Sockets;
  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 ivf_tl_Operate.View
  18. {
  19. /// <summary>
  20. /// BufferDebugView.xaml 的交互逻辑
  21. /// </summary>
  22. public partial class BufferDebugView : UserControl
  23. {
  24. private BufferDebugViewModel vm = null;
  25. public BufferDebugView(BufferDebugViewModel bufferDebugViewModel)
  26. {
  27. InitializeComponent();
  28. vm = bufferDebugViewModel;
  29. this.DataContext = vm;
  30. Loaded += BufferDebugView_Loaded;
  31. }
  32. private void BufferDebugView_Loaded(object sender, RoutedEventArgs e)
  33. {
  34. vm.MessageEvent += AddMessageInfo;
  35. }
  36. private void ShowMessage(string message)
  37. {
  38. Dispatcher.Invoke(() =>
  39. {
  40. MessageBox.Show(message);
  41. });
  42. }
  43. object locker = new object();
  44. DateTime logTime = DateTime.Now;
  45. private void AddMessageInfo(string message)
  46. {
  47. lock (locker)
  48. {
  49. logTime = DateTime.Now;
  50. message = $"{logTime.ToString("yyyy-MM-dd HH:mm:ss")}.{logTime.Millisecond} {message}";
  51. Dispatcher.Invoke(() =>
  52. {
  53. vm.MessageInfoList.Add(message);
  54. _messageList.ScrollIntoView(message);
  55. });
  56. }
  57. }
  58. private void Return_Click(object sender, RoutedEventArgs e)
  59. {
  60. vm.ComHouseUnit();
  61. SettingPageView settingPageView = new SettingPageView();
  62. AppData.Instance.MainWindow.LoadPage(settingPageView);
  63. }
  64. private async void Start_Click(object sender, RoutedEventArgs e)
  65. {
  66. this.button1.IsEnabled = false;
  67. await vm.ComHouseInit();
  68. this.button2.IsEnabled = true;
  69. this.button3.IsEnabled = true;
  70. this.button4.IsEnabled = true;
  71. this.button5.IsEnabled = true;
  72. this.button6.IsEnabled = true;
  73. this.button7.IsEnabled = true;
  74. this.button8.IsEnabled = true;
  75. }
  76. private void End_Click(object sender, RoutedEventArgs e)
  77. {
  78. vm.ComHouseUnit();
  79. this.button1.IsEnabled = true;
  80. this.button2.IsEnabled = false;
  81. this.button3.IsEnabled = false;
  82. this.button4.IsEnabled = false;
  83. this.button5.IsEnabled = false;
  84. this.button6.IsEnabled = false;
  85. this.button7.IsEnabled = false;
  86. this.button8.IsEnabled = false;
  87. }
  88. private void BufferState_Click(object sender, RoutedEventArgs e)
  89. {
  90. Task.Run(() =>
  91. {
  92. vm.BufferState();
  93. });
  94. }
  95. private void Are_Click(object sender, RoutedEventArgs e)
  96. {
  97. Task.Run(() =>
  98. {
  99. vm.Are();
  100. });
  101. }
  102. /// <summary>
  103. /// 设置进气阀打开时间
  104. /// </summary>
  105. /// <param name="sender"></param>
  106. /// <param name="e"></param>
  107. private void In_Click(object sender, RoutedEventArgs e)
  108. {
  109. if (int.TryParse(this._newE_TextBox.Text.Trim(), out int newValue) && newValue >= 0)
  110. {
  111. Task.Run(() =>
  112. {
  113. vm.writeE(newValue);
  114. });
  115. }
  116. else
  117. {
  118. ShowMessage("进气阀打开时间只能输入大于等于0的数字");
  119. }
  120. }
  121. private void Light0_Click(object sender, RoutedEventArgs e)
  122. {
  123. Task.Run(() =>
  124. {
  125. vm.writeL(0);
  126. });
  127. }
  128. private void Light900_Click(object sender, RoutedEventArgs e)
  129. {
  130. Task.Run(() =>
  131. {
  132. vm.writeL(900);
  133. });
  134. }
  135. private void Light_Click(object sender, RoutedEventArgs e)
  136. {
  137. if (int.TryParse(this._led_TextBox.Text.Trim(), out int newValue) && newValue >= 0 && newValue <= 900)
  138. {
  139. Task.Run(() =>
  140. {
  141. vm.writeL(newValue);
  142. });
  143. }
  144. else
  145. {
  146. ShowMessage("请输入0-900的数字");
  147. }
  148. }
  149. private void _led_TextBox_TextChanged(object sender, TextChangedEventArgs e)
  150. {
  151. TextBox passwordBox = sender as TextBox;
  152. if (passwordBox == null) return;
  153. string ss = passwordBox.Text.Trim();
  154. if (string.IsNullOrEmpty(ss))
  155. {
  156. passwordBox.Background = (VisualBrush)this.FindResource("HelpBrush1");
  157. }
  158. else
  159. {
  160. passwordBox.Background = new SolidColorBrush(Colors.White);
  161. }
  162. }
  163. private async void Start1_Click(object sender, RoutedEventArgs e)
  164. {
  165. this.button1.IsEnabled = false;
  166. await vm.ComHouseInit();
  167. this.button2.IsEnabled = true;
  168. this.button3.IsEnabled = true;
  169. this.button4.IsEnabled = true;
  170. this.button5.IsEnabled = true;
  171. this.button6.IsEnabled = true;
  172. this.button7.IsEnabled = true;
  173. this.button8.IsEnabled = true;
  174. }
  175. }
  176. }