diff --git a/src/main/java/frc4388/robot/Constants.java b/src/main/java/frc4388/robot/Constants.java index 68c6003..f7d5575 100644 --- a/src/main/java/frc4388/robot/Constants.java +++ b/src/main/java/frc4388/robot/Constants.java @@ -72,8 +72,9 @@ public final class Constants { public static final double SERIALIZER_SHOOTER_BELT_SPEED = 1.0; // TODO (currently max power, DO NOT RUN) // CAN IDs - public static final int SERIALIZER_BELT = 1; // TODO - public static final int SERIALIZER_SHOOTER_BELT = 1; // TODO + public static final int SERIALIZER_BELT = -1; // TODO + public static final int SERIALIZER_SHOOTER_BELT = -1; // TODO + public static final int SERIALIZER_BELT_BEAM = -1; // TODO } public static final class LEDConstants { diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 7f2cbcf..d1282b1 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -78,6 +78,10 @@ public class RobotContainer { new JoystickButton(getOperatorJoystick(), XboxController.A_BUTTON) .whenPressed(() -> m_robotLED.setPattern(LEDPatterns.LAVA_RAINBOW)) .whenReleased(() -> m_robotLED.setPattern(LEDConstants.DEFAULT_PATTERN)); + + new JoystickButton(getOperatorJoystick(), XboxController.B_BUTTON) + .whenPressed(() -> m_robotSerializer.setSerializerStateWithBeam(true, m_robotSerializer.getBeam())) + .whenReleased(() -> m_robotSerializer.setSerializerStateWithBeam(false, m_robotSerializer.getBeam())); } /** diff --git a/src/main/java/frc4388/robot/subsystems/Serializer.java b/src/main/java/frc4388/robot/subsystems/Serializer.java index ad25a41..141de75 100644 --- a/src/main/java/frc4388/robot/subsystems/Serializer.java +++ b/src/main/java/frc4388/robot/subsystems/Serializer.java @@ -1,31 +1,42 @@ package frc4388.robot.subsystems; -import edu.wpi.first.wpilibj.command.Subsystem; import edu.wpi.first.wpilibj.motorcontrol.Spark; import edu.wpi.first.wpilibj2.command.SubsystemBase; import frc4388.robot.Constants; +import edu.wpi.first.wpilibj.DigitalInput; public class Serializer extends SubsystemBase{ private Spark m_serializerBelt; private Spark m_serializerShooterBelt; - + private DigitalInput m_serializerBeam; private boolean serializerState; - public Serializer(Spark serializerBelt, Spark serializerShooterBelt) { - m_serializerBelt = serializerBelt; - m_serializerShooterBelt = serializerShooterBelt; + public Serializer(Spark serializerBelt, Spark serializerShooterBelt) { + m_serializerBelt = serializerBelt; + m_serializerShooterBelt = serializerShooterBelt; + m_serializerBeam = new DigitalInput(Constants.SerializerConstants.SERIALIZER_BELT_BEAM); - serializerState = false; - setSerializerState(serializerState); - } + serializerState = false; + setSerializerState(serializerState); + } + public boolean getBeam() { + return m_serializerBeam.get(); + } + public void setSerializerStateWithBeam(boolean ctrlbutter, boolean beambroken) { + boolean total = ctrlbutter || beambroken; + setSerializerState(total); + } + public void setSerializerState(boolean state) { + double serializerBeltSpeed = state ? Constants.SerializerConstants.SERIALIZER_BELT_SPEED : 0.d; + double serializerShooterBeltSpeed = state ? Constants.SerializerConstants.SERIALIZER_SHOOTER_BELT_SPEED : 0.d; - public void setSerializerState(boolean state) { - double serializerBeltSpeed = state ? Constants.SerializerConstants.SERIALIZER_BELT_SPEED : 0.d; - double serializerShooterBeltSpeed = state ? Constants.SerializerConstants.SERIALIZER_SHOOTER_BELT_SPEED : 0.d; + m_serializerBelt.set(serializerBeltSpeed); + m_serializerShooterBelt.set(serializerShooterBeltSpeed); - m_serializerBelt.set(serializerBeltSpeed); - m_serializerShooterBelt.set(serializerShooterBeltSpeed); - - serializerState = state; - } + serializerState = state; + } + + public boolean getSerializerState() { + return serializerState; + } }