Add wpilib-interface 2021 3rd robot climber
Change-Id: Ic5510c9a003d4cb6ca0a3013c19a84bc622aca45
Signed-off-by: Vinay Siva <100024232@mvla.net>
diff --git a/y2021_bot3/wpilib_interface.cc b/y2021_bot3/wpilib_interface.cc
index 1ad2f52..1808846 100644
--- a/y2021_bot3/wpilib_interface.cc
+++ b/y2021_bot3/wpilib_interface.cc
@@ -196,17 +196,26 @@
void set_intake_falcon(
::std::unique_ptr<::ctre::phoenix::motorcontrol::can::TalonFX> t) {
intake_falcon_ = ::std::move(t);
- ConfigureFalcon(intake_falcon_.get());
+ ConfigureRollerFalcon(intake_falcon_.get());
}
void set_outtake_falcon(
::std::unique_ptr<::ctre::phoenix::motorcontrol::can::TalonFX> t) {
outtake_falcon_ = ::std::move(t);
- ConfigureFalcon(outtake_falcon_.get());
+ ConfigureRollerFalcon(outtake_falcon_.get());
+ }
+
+ void set_climber_falcon(
+ ::std::unique_ptr<::ctre::phoenix::motorcontrol::can::TalonFX> t) {
+ climber_falcon_ = ::std::move(t);
+ climber_falcon_->ConfigSupplyCurrentLimit(
+ {true, Values::kClimberSupplyCurrentLimit(),
+ Values::kClimberSupplyCurrentLimit(), 0});
}
private:
- void ConfigureFalcon(::ctre::phoenix::motorcontrol::can::TalonFX *falcon) {
+ void ConfigureRollerFalcon(
+ ::ctre::phoenix::motorcontrol::can::TalonFX *falcon) {
falcon->ConfigSupplyCurrentLimit({true, Values::kRollerSupplyCurrentLimit(),
Values::kRollerSupplyCurrentLimit(), 0});
falcon->ConfigStatorCurrentLimit({true, Values::kRollerStatorCurrentLimit(),
@@ -223,12 +232,22 @@
void Write(const superstructure::Output &output) override {
WriteToFalcon(output.intake_volts(), intake_falcon_.get());
WriteToFalcon(output.outtake_volts(), outtake_falcon_.get());
+
+ WriteToFalcon(-output.climber_volts(), climber_falcon_.get());
}
- void Stop() override { AOS_LOG(WARNING, "Superstructure output too old.\n"); }
+ void Stop() override {
+ AOS_LOG(WARNING, "Superstructure output too old.\n");
+ climber_falcon_->Set(ctre::phoenix::motorcontrol::ControlMode::Disabled, 0);
+ intake_falcon_->Set(ctre::phoenix::motorcontrol::ControlMode::Disabled, 0);
+ outtake_falcon_->Set(ctre::phoenix::motorcontrol::ControlMode::Disabled, 0);
+ }
::std::unique_ptr<::ctre::phoenix::motorcontrol::can::TalonFX> intake_falcon_,
outtake_falcon_;
+
+ ::std::unique_ptr<::ctre::phoenix::motorcontrol::can::TalonFX>
+ climber_falcon_;
};
class WPILibRobot : public ::frc971::wpilib::WPILibRobotBase {
@@ -274,6 +293,8 @@
make_unique<::ctre::phoenix::motorcontrol::can::TalonFX>(0));
superstructure_writer.set_outtake_falcon(
make_unique<::ctre::phoenix::motorcontrol::can::TalonFX>(1));
+ superstructure_writer.set_climber_falcon(
+ make_unique<::ctre::phoenix::motorcontrol::can::TalonFX>(2));
AddLoop(&output_event_loop);