Skip to content

Commit

Permalink
simplemotor actually written right
Browse files Browse the repository at this point in the history
  • Loading branch information
dannynotsmart committed Jan 20, 2025
1 parent b8fdb89 commit 954f372
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 71 deletions.
41 changes: 29 additions & 12 deletions src/main/java/org/sciborgs1155/robot/hopper/Hopper.java
Original file line number Diff line number Diff line change
@@ -1,27 +1,43 @@
package org.sciborgs1155.robot.hopper;

import static edu.wpi.first.units.Units.Amps;
import static org.sciborgs1155.robot.Ports.Hopper.*;

import com.ctre.phoenix6.configs.TalonFXConfiguration;
import com.ctre.phoenix6.hardware.TalonFX;
import com.ctre.phoenix6.signals.NeutralModeValue;
import edu.wpi.first.wpilibj.DigitalInput;
import edu.wpi.first.wpilibj2.command.Command;
import edu.wpi.first.wpilibj2.command.SubsystemBase;
import edu.wpi.first.wpilibj2.command.button.Trigger;
import org.sciborgs1155.lib.SimpleMotor;
import org.sciborgs1155.robot.Robot;

public class Hopper extends SubsystemBase implements AutoCloseable {
/** Creates a real or non-existent hopper based on {@link Robot#isReal()}. */
private final SimpleMotor motor;
private final DigitalInput beambreak = new DigitalInput(BEAMBREAK);
public final Trigger beambreakTrigger;

public static Hopper create() {
return Robot.isReal() ? new Hopper(new RealHopper()) : Hopper.none();
return new Hopper(Robot.isReal() ? realMotor() : Hopper.none());
}

/** Creates a non-existent hopper. */
public static Hopper none() {
return new Hopper(new NoHopper());
private static SimpleMotor realMotor() {
TalonFXConfiguration config = new TalonFXConfiguration();

config.CurrentLimits.SupplyCurrentLimit = HopperConstants.CURRENT_LIMIT.in(Amps);
config.MotorOutput.NeutralMode = NeutralModeValue.Brake;

return SimpleMotor.talon(new TalonFX(MOTOR), config);
}

private final HopperIO hardware;
public final Trigger beambreakTrigger;
public static SimpleMotor none() {
return SimpleMotor.none();
}

public Hopper(HopperIO hardware) {
this.hardware = hardware;
this.beambreakTrigger = new Trigger(hardware::beambreak);
public Hopper(SimpleMotor motor) {
this.motor = motor;
this.beambreakTrigger = new Trigger(beambreak::get);
}

/**
Expand All @@ -31,7 +47,7 @@ public Hopper(HopperIO hardware) {
* @return A command to set the power of the hopper motors.
*/
public Command run(double power) {
return runOnce(() -> hardware.set(power));
return runOnce(() -> motor.set(power));
}

/**
Expand Down Expand Up @@ -63,6 +79,7 @@ public Command stop() {

@Override
public void close() throws Exception {
hardware.close();
motor.close();
beambreak.close();
}
}
7 changes: 0 additions & 7 deletions src/main/java/org/sciborgs1155/robot/hopper/HopperIO.java

This file was deleted.

14 changes: 0 additions & 14 deletions src/main/java/org/sciborgs1155/robot/hopper/NoHopper.java

This file was deleted.

38 changes: 0 additions & 38 deletions src/main/java/org/sciborgs1155/robot/hopper/RealHopper.java

This file was deleted.

0 comments on commit 954f372

Please sign in to comment.