Hi Ray :)

This commit is contained in:
TheRealGrayden 2026-03-05 20:25:48 -05:00
parent c3653debcd
commit 6830d29eb3
3 changed files with 73 additions and 12 deletions

View File

@ -4,6 +4,8 @@
package frc.robot;
import java.security.PublicKey;
/**
* 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
@ -66,4 +68,8 @@ public final class Constants {
public static final int INTAKE_MOTOR_ID = 2;
}
public static class HopperConstants {
public static final int KICKER_MOTOR_ID = 0;
public static final int SPINDEXER_MOTOR_ID = 1;
}
}

View File

@ -0,0 +1,60 @@
// 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 static org.fairportrobotics.frc.posty.assertions.Assertions.*;
import edu.wpi.first.wpilibj2.command.Command;
public class ExampleSubsystem extends TestableSubsystem {
/** Creates a new ExampleSubsystem. */
public ExampleSubsystem() {}
/**
* 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");
}
}

View File

@ -10,7 +10,7 @@ import org.fairportrobotics.frc.posty.test.PostTest;
import com.ctre.phoenix6.hardware.TalonFX;
import static org.fairportrobotics.frc.posty.assertions.Assertions.*;
import frc.robot.Constants;
import edu.wpi.first.wpilibj2.command.Command;
public class HopperSubsystem extends TestableSubsystem {
@ -19,28 +19,23 @@ public class HopperSubsystem extends TestableSubsystem {
private TalonFX kickerMotor;
/** Creates a new HopperSubsystem. */
public HopperSubsystem() {
spindexerMotor = new TalonFX(0);
kickerMotor = new TalonFX(1);
spindexerMotor = new TalonFX(Constants.HopperConstants.SPINDEXER_MOTOR_ID);
kickerMotor = new TalonFX(Constants.HopperConstants.KICKER_MOTOR_ID);
}
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);
}