diff --git a/src/main/java/frc4388/robot/Robot.java b/src/main/java/frc4388/robot/Robot.java index 7735364..8c15e6a 100644 --- a/src/main/java/frc4388/robot/Robot.java +++ b/src/main/java/frc4388/robot/Robot.java @@ -7,6 +7,8 @@ package frc4388.robot; +import com.ctre.phoenix.motorcontrol.NeutralMode; + import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.CommandScheduler; @@ -58,6 +60,7 @@ public class Robot extends TimedRobot { */ @Override public void disabledInit() { + m_robotContainer.setDriveNeutralMode(NeutralMode.Coast); } @Override @@ -71,6 +74,7 @@ public class Robot extends TimedRobot { public void autonomousInit() { m_autonomousCommand = m_robotContainer.getAutonomousCommand(); + m_robotContainer.setDriveNeutralMode(NeutralMode.Brake); /* * String autoSelected = SmartDashboard.getString("Auto Selector", * "Default"); switch(autoSelected) { case "My Auto": autonomousCommand @@ -93,6 +97,8 @@ public class Robot extends TimedRobot { @Override public void teleopInit() { + m_robotContainer.setDriveNeutralMode(NeutralMode.Brake); + // This makes sure that the autonomous stops running when // teleop starts running. If you want the autonomous to // continue until interrupted by another command, remove diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 1aaaddc..ad837e9 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -7,6 +7,8 @@ package frc4388.robot; +import com.ctre.phoenix.motorcontrol.NeutralMode; + import edu.wpi.first.wpilibj.Joystick; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.InstantCommand; @@ -68,6 +70,14 @@ public class RobotContainer { .whenPressed(() -> m_robotLED.setPattern(LEDPatterns.LAVA_RAINBOW)) .whenReleased(() -> m_robotLED.setPattern(LEDConstants.DEFAULT_PATTERN)); } + + /** + * Sets Motors to a NeutralMode. + * @param mode NeutralMode to set motors to + */ + public void setDriveNeutralMode(NeutralMode mode) { + m_robotDrive.setDriveTrainNeutralMode(mode); + } /** * Use this to pass the autonomous command to the main {@link Robot} class. diff --git a/src/main/java/frc4388/robot/subsystems/Drive.java b/src/main/java/frc4388/robot/subsystems/Drive.java index 9500a2c..c8d4d1e 100644 --- a/src/main/java/frc4388/robot/subsystems/Drive.java +++ b/src/main/java/frc4388/robot/subsystems/Drive.java @@ -58,10 +58,7 @@ public class Drive extends ProfiledPIDSubsystem { m_rightBackMotor.follow(m_rightFrontMotor); /* set neutral mode */ - m_leftFrontMotor.setNeutralMode(NeutralMode.Brake); - m_rightFrontMotor.setNeutralMode(NeutralMode.Brake); - m_leftFrontMotor.setNeutralMode(NeutralMode.Brake); - m_rightFrontMotor.setNeutralMode(NeutralMode.Brake); + setDriveTrainNeutralMode(NeutralMode.Brake); /* flip input so forward becomes back, etc */ m_leftFrontMotor.setInverted(false); @@ -83,6 +80,17 @@ public class Drive extends ProfiledPIDSubsystem { } } + /** + * Sets Motors to a NeutralMode. + * @param mode NeutralMode to set motors to + */ + public void setDriveTrainNeutralMode(NeutralMode mode) { + m_leftFrontMotor.setNeutralMode(mode); + m_rightFrontMotor.setNeutralMode(mode); + m_leftFrontMotor.setNeutralMode(mode); + m_rightFrontMotor.setNeutralMode(mode); + } + /** * Add your docs here. */