EthernetTriggerSetPage.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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 Uestc.Auto6.Dso.Core.Decode;
  12. using Uni_Trend.MSO7000X.Common.Helper;
  13. namespace Uestc.Auto6.Dso.Protocol.Ethernet
  14. {
  15. public partial class EthernetTriggerSetPage : UserControl,ITriggerSerialView
  16. {
  17. #region 属性定义
  18. protected new Boolean DesignMode
  19. {
  20. get
  21. {
  22. Boolean rtnflag = false;
  23. #if DEBUG
  24. rtnflag = DesignTimeHelper.InDesignMode(this);
  25. #endif
  26. return rtnflag;
  27. }
  28. }
  29. public EthernetTrigSerialPrsnt Presenter
  30. {
  31. get => (EthernetTrigSerialPrsnt)(ParentForm as ITriggerView).Presenter;
  32. set => (ParentForm as ITriggerView).Presenter = value;
  33. }
  34. ITriggerPrsnt IView<ITriggerPrsnt>.Presenter
  35. {
  36. get => Presenter;
  37. set => Presenter = (EthernetTrigSerialPrsnt)value;
  38. }
  39. #endregion 属性定义
  40. #region 字段定义
  41. private TrigDataPage _DataPage;
  42. private TrigMACPage _MacPage;
  43. private EthernetSetPage _SetPage;
  44. #endregion 字段定义
  45. public EthernetTriggerSetPage()
  46. {
  47. InitializeComponent();
  48. }
  49. protected override void OnLoad(EventArgs e)
  50. {
  51. base.OnLoad(e);
  52. _DataPage = new TrigDataPage();
  53. _DataPage.Visible = false;
  54. _DataPage.Presenter = Presenter;
  55. _DataPage.Presenter.TryAddView(_DataPage);
  56. _DataPage.Top = 0;
  57. _DataPage.Left = 0;
  58. this.TlpPanel.Controls.Add(_DataPage,0,1);
  59. _MacPage = new TrigMACPage();
  60. _MacPage.Visible = false;
  61. _MacPage.Presenter = Presenter;
  62. _MacPage.Presenter.TryAddView(_MacPage);
  63. _MacPage.Top = 0;
  64. _MacPage.Left = 0;
  65. this.TlpPanel.Controls.Add(_MacPage, 0, 2);
  66. _SetPage = new EthernetSetPage();
  67. _SetPage.Presenter = ProtocolPrsnt.GetTrigSerialDecodePrsnt(ComModel.SerialProtocolType.Ethernet, _SetPage);
  68. _SetPage.Presenter.TryAddView(_SetPage);
  69. _SetPage.Top = 0;
  70. _SetPage.Left = 0;
  71. this.TlpPanel.Controls.Add(_SetPage, 0, 3);
  72. UpdateTriggerOn();
  73. }
  74. public void UpdateView(Object presenter, String propertyName)
  75. {
  76. if(String.IsNullOrEmpty(propertyName))
  77. {
  78. UpdateTriggerOn();
  79. return;
  80. }
  81. switch (propertyName)
  82. {
  83. case nameof(FlexRayTrigSerialPrsnt.Condition):
  84. UpdateTriggerOn();
  85. break;
  86. }
  87. }
  88. private void UpdateTriggerOn()
  89. {
  90. TlpPanel.Controls.Cast<Control>().ToList().ForEach(x => x.Visible = false);
  91. switch(Presenter.Condition)
  92. {
  93. case ComModel.ProtocolEthernet.Condition.MACAddress:
  94. _DataPage.Visible = false;
  95. _MacPage.Visible = true;
  96. break;
  97. case ComModel.ProtocolEthernet.Condition.FrameHead:
  98. default:
  99. _DataPage.Visible = false;
  100. _MacPage.Visible = false;
  101. break;
  102. case ComModel.ProtocolEthernet.Condition.ClientData:
  103. _DataPage.Visible = true;
  104. _MacPage.Visible = false;
  105. break;
  106. }
  107. this.Height = TlpPanel.PreferredSize.Height;
  108. }
  109. }
  110. }