Castor2026/src/main/java/frc/robot/subsystems/HopperSubsystem.java

91 lines
2.1 KiB
Java

// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
package frc.robot.subsystems;
import org.fairportrobotics.frc.posty.TestableSubsystem;
import org.fairportrobotics.frc.posty.test.PostTest;
import com.ctre.phoenix6.hardware.TalonFX;
import static org.fairportrobotics.frc.posty.assertions.Assertions.*;
import edu.wpi.first.wpilibj2.command.Command;
public class HopperSubsystem extends TestableSubsystem {
private TalonFX spindexerMotor;
private TalonFX kickerMotor;
/** Creates a new HopperSubsystem. */
public HopperSubsystem() {
spindexerMotor = new TalonFX(0);
kickerMotor = new TalonFX(1);
}
public void feed(){
kickerMotor.set(0.5);
}
public void reverse(){
kickerMotor.set(-0.5);
}
public void stop(){
kickerMotor.set(0);
}
public void spin(double speed){
spindexerMotor.set(speed);
}
/**
* Example command factory method.
*
* @return a command
*/
public Command exampleMethodCommand() {
// Inline construction of command goes here.
// Subsystem::RunOnce implicitly requires `this` subsystem.
return runOnce(
() -> {
/* one-time action goes here */
});
}
/**
* An example method querying a boolean state of the subsystem (for example, a digital sensor).
*
* @return value of some boolean subsystem state, such as a digital sensor.
*/
public boolean exampleCondition() {
// Query some boolean state, such as a digital sensor.
return false;
}
@Override
public void periodic() {
// This method will be called once per scheduler run
}
@Override
public void simulationPeriodic() {
// This method will be called once per scheduler run during simulation
}
@PostTest(name = "A friendly name", enabled = true)
public void myFailingPostTest(){
assertThat(true).isFalse();
}
@PostTest(enabled = true)
public void myPassingPostTest(){
assertThat("Hello World").endWith("World");
}
}