Ethernet.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using Uestc.Auto6.Dso.ComModel;
  8. using Uestc.Auto6.Dso.Core;
  9. using Uestc.Auto6.Dso.Core.Decode;
  10. using Uni_Trend.MSO7000X.Common.Helper;
  11. using System.Windows.Forms;
  12. namespace Uestc.Auto6.Dso.Protocol.Ethernet
  13. {
  14. public class Ethernet : DecodeView
  15. {
  16. public override IProtocolView ProtocolView => new EthernetSetPage();
  17. public override ITriggerSerialView TriggerSerialView => new EthernetTriggerSetPage();
  18. public override SerialProtocolType ProtocolType => SerialProtocolType.Ethernet;
  19. public override void DrawDecodeInfo(Graphics graphics, Rectangle rectangle, IProtocolPrsnt prsnt, Color foreColor, Font font)
  20. {
  21. if(prsnt is EthernetDecodePrsnt ethernet)
  22. {
  23. TextRenderer.DrawText(graphics, ethernet.Speed switch
  24. {
  25. ProtocolEthernet.EthernetSpeed.EthernetSpeed_10M => "10Mbps",
  26. ProtocolEthernet.EthernetSpeed.EthernetSpeed_100M => "100Mbps",
  27. ProtocolEthernet.EthernetSpeed.EthernetSpeed_1000M => "1000Mbps",
  28. _=>"10Mbps",
  29. }, font, GetRowRectangle(), foreColor, TextFormatFlags.Right | TextFormatFlags.VerticalCenter);
  30. TextRenderer.DrawText(graphics, ethernet.Version.ToString(), font, GetRowRectangle(2), foreColor, TextFormatFlags.Right | TextFormatFlags.VerticalCenter);
  31. if (ethernet.SignalType == ProtocolEthernet.SignalType.Difference)
  32. {
  33. TextRenderer.DrawText(graphics, $"{ethernet.SignalInput1} H->{SIHelper.ValueChangeToSI(ethernet.Signal1ThresholdH, 2, "V")}", font, GetRowRectangle(1), foreColor, TextFormatFlags.Left | TextFormatFlags.VerticalCenter);
  34. TextRenderer.DrawText(graphics, $"{ethernet.SignalInput1} L->{SIHelper.ValueChangeToSI(ethernet.Signal1ThresholdL, 2, "V")}", font, GetRowRectangle(2), foreColor, TextFormatFlags.Left | TextFormatFlags.VerticalCenter);
  35. }
  36. else
  37. {
  38. TextRenderer.DrawText(graphics, $"{ethernet.SignalInput1}->{SIHelper.ValueChangeToSI(ethernet.Signal1Threshold, 2, "V")}", font, GetRowRectangle(1), foreColor, TextFormatFlags.Left | TextFormatFlags.VerticalCenter);
  39. TextRenderer.DrawText(graphics, $"{ethernet.SignalInput2}->{SIHelper.ValueChangeToSI(ethernet.Signal2Threshold, 2, "V")}", font, GetRowRectangle(2), foreColor, TextFormatFlags.Left | TextFormatFlags.VerticalCenter);
  40. }
  41. if (ethernet.QFlag)
  42. {
  43. TextRenderer.DrawText(graphics, "Q", font, GetRowRectangle(1), foreColor, TextFormatFlags.Right | TextFormatFlags.VerticalCenter);
  44. }
  45. }
  46. }
  47. }
  48. }