diff --git a/src/main/java/frc/team5115/Constants.java b/src/main/java/frc/team5115/Constants.java index 845153d..5153b50 100644 --- a/src/main/java/frc/team5115/Constants.java +++ b/src/main/java/frc/team5115/Constants.java @@ -13,6 +13,8 @@ package frc.team5115; +import edu.wpi.first.wpilibj.RobotBase; + /** * The Constants class provides a convenient place for teams to hold robot-wide numerical or boolean * constants. This class should not be used for any other purpose. All constants should be declared @@ -22,7 +24,9 @@ * constants are needed, to reduce verbosity. */ public final class Constants { - public static final Mode currentMode = Mode.REAL; + private static final boolean isReplay = false; + public static final Mode currentMode = + RobotBase.isReal() ? Mode.REAL : (isReplay ? Mode.REPLAY : Mode.SIM); public static enum Mode { /** Running on a real robot. */ diff --git a/src/main/java/frc/team5115/Robot.java b/src/main/java/frc/team5115/Robot.java index d33fa0f..ccbb456 100644 --- a/src/main/java/frc/team5115/Robot.java +++ b/src/main/java/frc/team5115/Robot.java @@ -93,9 +93,7 @@ public void robotInit() { /** This function is called periodically during all modes. */ @Override - public void robotPeriodic() { - - } + public void robotPeriodic() {} /** This function is called once when autonomous is enabled. */ @Override diff --git a/src/main/java/frc/team5115/RobotContainer.java b/src/main/java/frc/team5115/RobotContainer.java new file mode 100644 index 0000000..4bd74d6 --- /dev/null +++ b/src/main/java/frc/team5115/RobotContainer.java @@ -0,0 +1,26 @@ +package frc.team5115; + +import frc.team5115.subsystems.sensor.Sensor; +import frc.team5115.subsystems.sensor.SensorIO; +import frc.team5115.subsystems.sensor.SensorIOPololu; + +public class RobotContainer { + private final Sensor sensor; + + public RobotContainer() { + switch (Constants.currentMode) { + case REAL: + sensor = new Sensor(new SensorIOPololu()); + break; + + case SIM: + sensor = new Sensor(new SensorIO() {}); + break; + + default: + sensor = new Sensor(new SensorIO() {}); + break; + } + sensor.setDefaultCommand(sensor.printState()); + } +} diff --git a/src/main/java/frc/team5115/subsystems/sensor/Sensor.java b/src/main/java/frc/team5115/subsystems/sensor/Sensor.java index 9b0556f..2d4f053 100644 --- a/src/main/java/frc/team5115/subsystems/sensor/Sensor.java +++ b/src/main/java/frc/team5115/subsystems/sensor/Sensor.java @@ -1,13 +1,25 @@ package frc.team5115.subsystems.sensor; +import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.Commands; import edu.wpi.first.wpilibj2.command.SubsystemBase; +import org.littletonrobotics.junction.Logger; public class Sensor extends SubsystemBase { - private final SensorIO io; + private final SensorIO io; + private final SensorIOInputsAutoLogged inputs = new SensorIOInputsAutoLogged(); - public Sensor (SensorIO io) { - this.io = io; - } + public Sensor(SensorIO io) { + this.io = io; + } - + @Override + public void periodic() { + io.updateInputs(inputs); + Logger.processInputs(getName(), inputs); + } + + public Command printState() { + return Commands.print("Something Detected?" + inputs.somethingDetected); + } } diff --git a/src/main/java/frc/team5115/subsystems/sensor/SensorIO.java b/src/main/java/frc/team5115/subsystems/sensor/SensorIO.java index b3c35d8..2592794 100644 --- a/src/main/java/frc/team5115/subsystems/sensor/SensorIO.java +++ b/src/main/java/frc/team5115/subsystems/sensor/SensorIO.java @@ -3,10 +3,10 @@ import org.littletonrobotics.junction.AutoLog; public interface SensorIO { - @AutoLog - public static class SensorIOInputs { - public boolean somethingDetected = false; - } + @AutoLog + public static class SensorIOInputs { + public boolean somethingDetected = false; + } - public default void updateInputs(SensorIOInputs inputs) {} + public default void updateInputs(SensorIOInputs inputs) {} } diff --git a/src/main/java/frc/team5115/subsystems/sensor/SensorIOPololu.java b/src/main/java/frc/team5115/subsystems/sensor/SensorIOPololu.java index babc056..fb1a211 100644 --- a/src/main/java/frc/team5115/subsystems/sensor/SensorIOPololu.java +++ b/src/main/java/frc/team5115/subsystems/sensor/SensorIOPololu.java @@ -3,15 +3,14 @@ import edu.wpi.first.wpilibj.DigitalInput; public class SensorIOPololu implements SensorIO { - private final DigitalInput sensor; + private final DigitalInput sensor; - public SensorIOPololu() { - sensor = new DigitalInput(0); + public SensorIOPololu() { + sensor = new DigitalInput(0); + } - } - - @Override - public void updateInputs(SensorIOInputs inputs) { - inputs.somethingDetected = sensor.get(); - } + @Override + public void updateInputs(SensorIOInputs inputs) { + inputs.somethingDetected = sensor.get(); + } }