I2C.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Uestc.Auto6.Dso.Core;
  7. using Uestc.Auto6.Dso.Core.Decode;
  8. using Uestc.Auto6.Dso.ComModel;
  9. using System.Drawing;
  10. using Uni_Trend.MSO7000X.Common.Helper;
  11. using System.Windows.Forms;
  12. namespace Uestc.Auto6.Dso.Protocol.I2C
  13. {
  14. public class I2C : DecodeView
  15. {
  16. public override IProtocolView ProtocolView => new I2CSetControl();
  17. public override ITriggerSerialView TriggerSerialView => new I2CTriggerSetControl();
  18. public override SerialProtocolType ProtocolType => SerialProtocolType.I2C;
  19. public override void DrawDecodeInfo(Graphics graphics, Rectangle rectangle, IProtocolPrsnt prsnt, Color ForeColor, Font font)
  20. {
  21. if (prsnt is I2CDecodePrsnt decodePrsnt)
  22. {
  23. TextRenderer.DrawText(graphics, $"{nameof(decodePrsnt.SCLK)}->{decodePrsnt.SCLK} {decodePrsnt.SCLKThreshold}V", font, GetRowRectangle(rectangle, 2), ForeColor, TextFormatFlags.Left | TextFormatFlags.Top);
  24. TextRenderer.DrawText(graphics, $"{nameof(decodePrsnt.SDA)}->{decodePrsnt.SDA} {decodePrsnt.SDAThreshold}V", font, GetRowRectangle(rectangle, 1), ForeColor, TextFormatFlags.Left | TextFormatFlags.Top);
  25. }
  26. }
  27. private Rectangle GetRowRectangle(Rectangle rectangle, Int32 row = 0)
  28. {
  29. row = Compare.CheckRange(row, 2, 0);
  30. return new Rectangle(0, 25 + (rectangle.Height - 25) / 3 * row, rectangle.Width, (rectangle.Height - 25) / 3);
  31. }
  32. }
  33. }