using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using Uestc.Auto6.Dso.ComModel; using Uestc.Auto6.Dso.Core; using Uestc.Auto6.Dso.Core.Decode; using Uni_Trend.MSO7000X.Common.Helper; using System.Windows.Forms; namespace Uestc.Auto6.Dso.Protocol.Ethernet { public class Ethernet : DecodeView { public override IProtocolView ProtocolView => new EthernetSetPage(); public override ITriggerSerialView TriggerSerialView => new EthernetTriggerSetPage(); public override SerialProtocolType ProtocolType => SerialProtocolType.Ethernet; public override void DrawDecodeInfo(Graphics graphics, Rectangle rectangle, IProtocolPrsnt prsnt, Color foreColor, Font font) { if(prsnt is EthernetDecodePrsnt ethernet) { TextRenderer.DrawText(graphics, ethernet.Speed switch { ProtocolEthernet.EthernetSpeed.EthernetSpeed_10M => "10Mbps", ProtocolEthernet.EthernetSpeed.EthernetSpeed_100M => "100Mbps", ProtocolEthernet.EthernetSpeed.EthernetSpeed_1000M => "1000Mbps", _=>"10Mbps", }, font, GetRowRectangle(), foreColor, TextFormatFlags.Right | TextFormatFlags.VerticalCenter); TextRenderer.DrawText(graphics, ethernet.Version.ToString(), font, GetRowRectangle(2), foreColor, TextFormatFlags.Right | TextFormatFlags.VerticalCenter); if (ethernet.SignalType == ProtocolEthernet.SignalType.Difference) { TextRenderer.DrawText(graphics, $"{ethernet.SignalInput1} H->{SIHelper.ValueChangeToSI(ethernet.Signal1ThresholdH, 2, "V")}", font, GetRowRectangle(1), foreColor, TextFormatFlags.Left | TextFormatFlags.VerticalCenter); TextRenderer.DrawText(graphics, $"{ethernet.SignalInput1} L->{SIHelper.ValueChangeToSI(ethernet.Signal1ThresholdL, 2, "V")}", font, GetRowRectangle(2), foreColor, TextFormatFlags.Left | TextFormatFlags.VerticalCenter); } else { TextRenderer.DrawText(graphics, $"{ethernet.SignalInput1}->{SIHelper.ValueChangeToSI(ethernet.Signal1Threshold, 2, "V")}", font, GetRowRectangle(1), foreColor, TextFormatFlags.Left | TextFormatFlags.VerticalCenter); TextRenderer.DrawText(graphics, $"{ethernet.SignalInput2}->{SIHelper.ValueChangeToSI(ethernet.Signal2Threshold, 2, "V")}", font, GetRowRectangle(2), foreColor, TextFormatFlags.Left | TextFormatFlags.VerticalCenter); } if (ethernet.QFlag) { TextRenderer.DrawText(graphics, "Q", font, GetRowRectangle(1), foreColor, TextFormatFlags.Right | TextFormatFlags.VerticalCenter); } } } } }