From f0e6ad12d7a387064859815f88841d9fcf1aa181 Mon Sep 17 00:00:00 2001 From: T Grinch <10247070+thenetworkgrinch@users.noreply.github.com> Date: Mon, 30 Jan 2023 20:27:42 +0000 Subject: [PATCH] Updated swerveparser to allow for remote integrated encoders. --- swervelib/SwerveParser.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/swervelib/SwerveParser.java b/swervelib/SwerveParser.java index baf1594..fc67ba6 100644 --- a/swervelib/SwerveParser.java +++ b/swervelib/SwerveParser.java @@ -7,6 +7,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.revrobotics.CANSparkMax; import com.revrobotics.CANSparkMaxLowLevel.MotorType; +import com.revrobotics.SparkMaxAbsoluteEncoder.Type; import edu.wpi.first.math.geometry.Pose2d; import edu.wpi.first.math.geometry.Rotation2d; import edu.wpi.first.math.util.Units; @@ -184,6 +185,13 @@ public class SwerveParser MotorController driveMotor = createMotor(moduleJson.get("Motor").get("Drive")), steerMotor = createMotor(moduleJson.get("Motor").get("Steer")); Object encoder = createEncoder(moduleJson.get("AbsoluteEncoder")); + if (encoder == null) + { + if (moduleJson.get("IntegratedAbsoluteEncoder").asBoolean() && (steerMotor instanceof CANSparkMax)) + { + encoder = ((CANSparkMax) steerMotor).getAbsoluteEncoder(Type.kDutyCycle); + } + } SwerveModule module = new SwerveModule<>(driveMotor, steerMotor,