FlexRayTriggerSetControl.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using Uestc.Auto6.Dso.Core;
  11. using Uni_Trend.MSO7000X.Language;
  12. using Uni_Trend.MSO7000X.Common.Helper;
  13. using Uni_Trend.MSO7000X.UserControls;
  14. using Uestc.Auto6.Dso.ComModel;
  15. using Uestc.Auto6.Dso.Core.Decode;
  16. namespace Uestc.Auto6.Dso.Protocol.FlexRay
  17. {
  18. [System.ComponentModel.ToolboxItem(false)]
  19. public partial class FlexRayTriggerSetControl : UserControl, ITriggerSerialView
  20. {
  21. #region 属性定义
  22. protected new Boolean DesignMode
  23. {
  24. get
  25. {
  26. Boolean rtnflag = false;
  27. #if DEBUG
  28. rtnflag = DesignTimeHelper.InDesignMode(this);
  29. #endif
  30. return rtnflag;
  31. }
  32. }
  33. public FlexRayTrigSerialPrsnt Presenter
  34. {
  35. get => (FlexRayTrigSerialPrsnt)(ParentForm as ITriggerView).Presenter;
  36. set => (ParentForm as ITriggerView).Presenter = value;
  37. }
  38. ITriggerPrsnt IView<ITriggerPrsnt>.Presenter
  39. {
  40. get => Presenter;
  41. set => Presenter = (FlexRayTrigSerialPrsnt)value;
  42. }
  43. private FlexRayCycleDataPage _CycleDataPage = new FlexRayCycleDataPage();
  44. private FlexRayIDPage _IDPage = new FlexRayIDPage();
  45. private FlexRayDataPage _DataPage = new FlexRayDataPage();
  46. private FlexRayIndicatorPage _IndicatorPage = new FlexRayIndicatorPage();
  47. private FlexRayErrorPage _ErrorPage = new FlexRayErrorPage();
  48. private FlexRayFrameTailPage _FrameTailPage = new FlexRayFrameTailPage();
  49. #endregion 属性定义
  50. public FlexRayTriggerSetControl()
  51. {
  52. InitializeComponent();
  53. }
  54. protected override void OnLoad(EventArgs e)
  55. {
  56. base.OnLoad(e);
  57. InitView();
  58. Init();
  59. }
  60. private void Init()
  61. {
  62. }
  63. private void InitView()
  64. {
  65. _DataPage.Presenter = Presenter;
  66. this.TlpPanel.Controls.Add(_DataPage, 0, 1);
  67. _IDPage.Presenter = Presenter;
  68. this.TlpPanel.Controls.Add(_IDPage, 0, 2);
  69. _IndicatorPage.Presenter = Presenter;
  70. this.TlpPanel.Controls.Add(_IndicatorPage, 0, 3);
  71. _CycleDataPage.Presenter = Presenter;
  72. this.TlpPanel.Controls.Add(_CycleDataPage, 0, 4);
  73. _ErrorPage.Presenter = Presenter;
  74. this.TlpPanel.Controls.Add(_ErrorPage, 0, 5);
  75. _FrameTailPage.Presenter = Presenter;
  76. this.TlpPanel.Controls.Add(_FrameTailPage, 0, 6);
  77. this.TlpPanel.Controls.Cast<Control>().ToList().ForEach(x =>
  78. {
  79. x.Dock = DockStyle.Fill;
  80. });
  81. Presenter.TryAddView(_DataPage);
  82. Presenter.TryAddView(_IDPage);
  83. Presenter.TryAddView(_IndicatorPage);
  84. Presenter.TryAddView(_CycleDataPage);
  85. Presenter.TryAddView(_ErrorPage);
  86. Presenter.TryAddView(_FrameTailPage);
  87. UpdateCondition();
  88. }
  89. public void UpdateView(Object presenter, String propertyName)
  90. {
  91. switch (propertyName)
  92. {
  93. case nameof(FlexRayTrigSerialPrsnt.Condition):
  94. UpdateCondition();
  95. break;
  96. }
  97. }
  98. [UpdateProperty(nameof(FlexRayTrigSerialPrsnt.Condition))]
  99. private void UpdateCondition()
  100. {
  101. TlpPanel.Controls.Cast<Control>().ToList().ForEach(x => x.Visible = false);
  102. switch (Presenter.Condition)
  103. {
  104. case ProtocolFlexRay.Condition.Circulate:
  105. _CycleDataPage.Visible = true;
  106. break;
  107. case ProtocolFlexRay.Condition.ID:
  108. _IDPage.Visible = true;
  109. break;
  110. case ProtocolFlexRay.Condition.Data:
  111. _DataPage.Visible = true;
  112. break;
  113. case ProtocolFlexRay.Condition.Indicator:
  114. _IndicatorPage.Visible = true;
  115. break;
  116. case ProtocolFlexRay.Condition.IDAndData:
  117. _DataPage.Visible = true;
  118. _IDPage.Visible = true;
  119. break;
  120. case ProtocolFlexRay.Condition.Error:
  121. _ErrorPage.Visible = true;
  122. break;
  123. case ProtocolFlexRay.Condition.FrameTail:
  124. _FrameTailPage.Visible = true;
  125. break;
  126. }
  127. this.Height = this.TlpPanel.PreferredSize.Height;
  128. }
  129. }
  130. }