FourRopesPage.xaml.cs 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. using SWRIS.Events;
  2. using SWRIS.Extensions;
  3. using SWRIS.Models.ViewModel;
  4. using SWRIS.Repository;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. using System.Windows.Controls;
  8. namespace SWRIS.Pages.RealTime
  9. {
  10. /// <summary>
  11. /// FourRopesPage.xaml 的交互逻辑
  12. /// </summary>
  13. public partial class FourRopesPage : Page
  14. {
  15. private readonly IRecordRepository _recordRepository;
  16. public FourRopesViewModel FourRopesView { get; set; }
  17. public FourRopesPage()
  18. {
  19. InitializeComponent();
  20. Loaded += OneRopePage_Loaded;
  21. Unloaded += OneRopePage_Unloaded;
  22. _recordRepository = new RecordRepository();
  23. FourRopesView = new FourRopesViewModel
  24. {
  25. FirstEquipmentData = App.DataCenter.Equipments[0],
  26. SecondEquipmentData = App.DataCenter.Equipments[1],
  27. ThirdEquipmentData = App.DataCenter.Equipments[2],
  28. FourthEquipmentData = App.DataCenter.Equipments[3],
  29. Records = _recordRepository.GetLastRecords().ToSimpleRecordDtos()
  30. };
  31. FourRopesView.FirstEquipment = App.Config.Equipments.First(c => c.IpAddress == FourRopesView.FirstEquipmentData.IpAddress);
  32. FourRopesView.SecondEquipment = App.Config.Equipments.First(c => c.IpAddress == FourRopesView.SecondEquipmentData.IpAddress);
  33. FourRopesView.ThirdEquipment = App.Config.Equipments.First(c => c.IpAddress == FourRopesView.ThirdEquipmentData.IpAddress);
  34. FourRopesView.FourthEquipment = App.Config.Equipments.First(c => c.IpAddress == FourRopesView.FourthEquipmentData.IpAddress);
  35. DataContext = FourRopesView;
  36. App.TcpServer.LiveStreamReceived += TcpServer_LiveStreamReceived;
  37. }
  38. private void OneRopePage_Loaded(object sender, System.Windows.RoutedEventArgs e)
  39. {
  40. if (FourRopesView.FirstEquipmentData.ChartSource != null)
  41. {
  42. firstChartLine.AddDataPoints(FourRopesView.FirstEquipmentData.ChartSource);
  43. }
  44. if (FourRopesView.SecondEquipmentData.ChartSource != null)
  45. {
  46. secondChartLine.AddDataPoints(FourRopesView.SecondEquipmentData.ChartSource);
  47. }
  48. if (FourRopesView.ThirdEquipmentData.ChartSource != null)
  49. {
  50. thirdChartLine.AddDataPoints(FourRopesView.ThirdEquipmentData.ChartSource);
  51. }
  52. if (FourRopesView.FourthEquipmentData.ChartSource != null)
  53. {
  54. fourthChartLine.AddDataPoints(FourRopesView.FourthEquipmentData.ChartSource);
  55. }
  56. }
  57. private void OneRopePage_Unloaded(object sender, System.Windows.RoutedEventArgs e)
  58. {
  59. FourRopesView.FirstEquipmentData.ChartSource = firstChartLine.GetChartSource();
  60. FourRopesView.SecondEquipmentData.ChartSource = secondChartLine.GetChartSource();
  61. FourRopesView.ThirdEquipmentData.ChartSource = thirdChartLine.GetChartSource();
  62. FourRopesView.FourthEquipmentData.ChartSource = fourthChartLine.GetChartSource();
  63. }
  64. private async void TcpServer_LiveStreamReceived(object sender, LiveStreamReceivedEventArgs e)
  65. {
  66. if (e.IpAddress == FourRopesView.FirstEquipment.IpAddress)
  67. {
  68. if (FourRopesView.FirstEquipmentData.DetectionData?.DetectionNo == FourRopesView.FirstEquipmentData.DetectionNo)
  69. {
  70. FourRopesView.FirstEquipmentData.ClearData();
  71. }
  72. await Task.Run(() =>
  73. {
  74. firstChartLine.AddDataPoints((FourRopesView.FirstEquipmentData.AbsolutePosition, e.LiveStream), FourRopesView.FirstEquipmentData.InUseSensor);
  75. });
  76. }
  77. else if (e.IpAddress == FourRopesView.SecondEquipmentData.IpAddress)
  78. {
  79. if (FourRopesView.SecondEquipmentData.DetectionData?.DetectionNo == FourRopesView.SecondEquipmentData.DetectionNo)
  80. {
  81. FourRopesView.SecondEquipmentData.ClearData();
  82. }
  83. await Task.Run(() =>
  84. {
  85. secondChartLine.AddDataPoints((FourRopesView.SecondEquipmentData.AbsolutePosition, e.LiveStream), FourRopesView.SecondEquipmentData.InUseSensor);
  86. });
  87. }
  88. else if (e.IpAddress == FourRopesView.ThirdEquipmentData.IpAddress)
  89. {
  90. if (FourRopesView.ThirdEquipmentData.DetectionData?.DetectionNo == FourRopesView.ThirdEquipmentData.DetectionNo)
  91. {
  92. FourRopesView.ThirdEquipmentData.ClearData();
  93. }
  94. await Task.Run(() =>
  95. {
  96. thirdChartLine.AddDataPoints((FourRopesView.ThirdEquipmentData.AbsolutePosition, e.LiveStream), FourRopesView.ThirdEquipmentData.InUseSensor);
  97. });
  98. }
  99. else if (e.IpAddress == FourRopesView.FourthEquipmentData.IpAddress)
  100. {
  101. if (FourRopesView.FourthEquipmentData.DetectionData?.DetectionNo == FourRopesView.FourthEquipmentData.DetectionNo)
  102. {
  103. FourRopesView.FourthEquipmentData.ClearData();
  104. }
  105. await Task.Run(() =>
  106. {
  107. fourthChartLine.AddDataPoints((FourRopesView.FourthEquipmentData.AbsolutePosition, e.LiveStream), FourRopesView.FourthEquipmentData.InUseSensor);
  108. });
  109. }
  110. }
  111. private void FirstEquipmentAlarm_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  112. {
  113. DamagesDialog damagesDialog = new DamagesDialog(FourRopesView.FirstEquipmentData.Alarms);
  114. damagesDialog.ShowDialog(true);
  115. }
  116. private void SecondEquipmentAlarm_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  117. {
  118. DamagesDialog damagesDialog = new DamagesDialog(FourRopesView.SecondEquipmentData.Alarms);
  119. damagesDialog.ShowDialog(true);
  120. }
  121. private void ThirdEquipmentAlarm_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  122. {
  123. DamagesDialog damagesDialog = new DamagesDialog(FourRopesView.ThirdEquipmentData.Alarms);
  124. damagesDialog.ShowDialog(true);
  125. }
  126. private void FourthEquipmentAlarm_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  127. {
  128. DamagesDialog damagesDialog = new DamagesDialog(FourRopesView.FourthEquipmentData.Alarms);
  129. damagesDialog.ShowDialog(true);
  130. }
  131. private void FirstParameterSetting_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  132. {
  133. ParameterDialog parameterDialog = new ParameterDialog(FourRopesView.FirstEquipment,
  134. FourRopesView.FirstEquipmentData.ClientSocket,
  135. FourRopesView.FirstEquipmentData.RunningStatus);
  136. parameterDialog.ShowDialog(true);
  137. }
  138. private void SecondParameterSetting_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  139. {
  140. ParameterDialog parameterDialog = new ParameterDialog(FourRopesView.SecondEquipment,
  141. FourRopesView.SecondEquipmentData.ClientSocket,
  142. FourRopesView.SecondEquipmentData.RunningStatus);
  143. parameterDialog.ShowDialog(true);
  144. }
  145. private void ThirdParameterSetting_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  146. {
  147. ParameterDialog parameterDialog = new ParameterDialog(FourRopesView.ThirdEquipment,
  148. FourRopesView.ThirdEquipmentData.ClientSocket,
  149. FourRopesView.ThirdEquipmentData.RunningStatus);
  150. parameterDialog.ShowDialog(true);
  151. }
  152. private void FourthParameterSetting_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  153. {
  154. ParameterDialog parameterDialog = new ParameterDialog(FourRopesView.FourthEquipment,
  155. FourRopesView.FourthEquipmentData.ClientSocket,
  156. FourRopesView.FourthEquipmentData.RunningStatus);
  157. parameterDialog.ShowDialog(true);
  158. }
  159. }
  160. }