From 4f7168b5710eecffc892573959a5a40ffb7193f4 Mon Sep 17 00:00:00 2001 From: thenetworkgrinch Date: Sun, 25 Aug 2024 14:07:23 -0500 Subject: [PATCH] Added Auto-Optimization to module creation for backwards compatibility with MAX Swerve Modules. Signed-off-by: thenetworkgrinch --- src/main/java/swervelib/parser/json/ModuleJson.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/swervelib/parser/json/ModuleJson.java b/src/main/java/swervelib/parser/json/ModuleJson.java index 4e89652b..8e4604c4 100644 --- a/src/main/java/swervelib/parser/json/ModuleJson.java +++ b/src/main/java/swervelib/parser/json/ModuleJson.java @@ -1,5 +1,6 @@ package swervelib.parser.json; +import com.revrobotics.AbsoluteEncoder; import com.revrobotics.CANSparkMax; import com.revrobotics.MotorFeedbackSensor; import edu.wpi.first.math.util.Units; @@ -11,6 +12,7 @@ import swervelib.parser.json.modules.BoolMotorJson; import swervelib.parser.json.modules.ConversionFactorsJson; import swervelib.parser.json.modules.LocationJson; +import swervelib.telemetry.Alert; /** * {@link swervelib.SwerveModule} JSON parsed class. Used to access the JSON data. @@ -138,6 +140,13 @@ public SwerveModuleConfiguration createModuleConfiguration( "Conversion factors cannot be 0, please configure conversion factors in physicalproperties.json or the module JSON files."); } + // Backwards compatibility, auto-optimization. + if (conversionFactor.angle == 360 && absEncoder != null && + absEncoder.getAbsoluteEncoder() instanceof AbsoluteEncoder && angleMotor.getMotor() instanceof CANSparkMax) + { + angleMotor.setAbsoluteEncoder(absEncoder); + } + return new SwerveModuleConfiguration( drive.createMotor(true), angleMotor,