Skip to content

Custom Widget Examples

Gold87 edited this page Feb 4, 2024 · 5 revisions

Single Color View

Color exampleColor = new Color(68, 238, 255);
SmartDashboard.putString("Example Color", exampleColor.toHexString());

SwerveDrive

Note: Velocity must be in meters per second, and angles must be in either radians, degrees, or rotations, and CCW+

SmartDashboard.putData("Swerve Drive", new Sendable() {
  @Override
  public void initSendable(SendableBuilder builder) {
    builder.setSmartDashboardType("SwerveDrive");

    builder.addDoubleProperty("Front Left Angle", () -> frontLeftModule.getAngle().getRadians(), null);
    builder.addDoubleProperty("Front Left Velocity", () -> frontLeftModule.getVelocity(), null);

    builder.addDoubleProperty("Front Right Angle", () -> frontRightModule.getAngle().getRadians(), null);
    builder.addDoubleProperty("Front Right Velocity", () -> frontRightModule.getVelocity(), null);

    builder.addDoubleProperty("Back Left Angle", () -> backLeftModule.getAngle().getRadians(), null);
    builder.addDoubleProperty("Back Left Velocity", () -> backLeftModule.getVelocity(), null);

    builder.addDoubleProperty("Back Right Angle", () -> backRightModule.getAngle().getRadians(), null);
    builder.addDoubleProperty("Back Right Velocity", () -> backRightModule.getVelocity(), null);

    builder.addDoubleProperty("Robot Angle", () -> getRotation().getRadians(), null);
  }
});

YAGSL Swerve Drive

If you are using the YAGSL Swerve Library, you can create a Swerve Drive widget without even modifying your code. Simply head to the SmartDashboard table, and drag the swerve table onto the grid, and you will have created a Swerve widget that shows your current and desired module states.

Alerts

This displays data from the NetworkAlerts by Team 6328. For examples and implementation, see Mechanical Advantage 2023 Robot Code