Added set functions for turret and catapult falcons
Signed-off-by: Jacob Ismael <jacob.ismael@gmail.com>
Change-Id: I209a25013b812f0c1b6efed5e165b2608d5a8ce5
diff --git a/y2022/wpilib_interface.cc b/y2022/wpilib_interface.cc
index 0ee1e92..9586c25 100644
--- a/y2022/wpilib_interface.cc
+++ b/y2022/wpilib_interface.cc
@@ -189,6 +189,18 @@
Values::kClimberSupplyCurrentLimit(), 0});
}
+ void set_turret_falcon(::std::unique_ptr<::frc::TalonFX> t) {
+ turret_falcon_ = ::std::move(t);
+ }
+
+ void set_catapult_falcon_1(::std::unique_ptr<::frc::TalonFX> t) {
+ catapult_falcon_1_ = ::std::move(t);
+ }
+
+ void set_catapult_falcon_2(::std::unique_ptr<::frc::TalonFX> t) {
+ catapult_falcon_2_ = ::std::move(t);
+ }
+
private:
void WriteToFalconCan(const double voltage,
::ctre::phoenix::motorcontrol::can::TalonFX *falcon) {
@@ -199,15 +211,32 @@
void Write(const superstructure::Output &output) override {
WriteToFalconCan(output.climber_voltage(), climber_falcon_.get());
+ catapult_falcon_1_->SetSpeed(std::clamp(output.catapult_voltage(),
+ -kMaxBringupPower,
+ kMaxBringupPower) /
+ 12.0);
+ catapult_falcon_2_->SetSpeed(std::clamp(output.catapult_voltage(),
+ -kMaxBringupPower,
+ kMaxBringupPower) /
+ 12.0);
+ turret_falcon_->SetSpeed(std::clamp(output.turret_voltage(),
+ -kMaxBringupPower, kMaxBringupPower) /
+ 12.0);
}
void Stop() override {
AOS_LOG(WARNING, "Superstructure output too old.\n");
climber_falcon_->Set(ctre::phoenix::motorcontrol::ControlMode::Disabled, 0);
+ catapult_falcon_1_->SetDisabled();
+ catapult_falcon_2_->SetDisabled();
+ turret_falcon_->SetDisabled();
}
::std::unique_ptr<::ctre::phoenix::motorcontrol::can::TalonFX>
climber_falcon_;
+
+ ::std::unique_ptr<::frc::TalonFX> turret_falcon_, catapult_falcon_1_,
+ catapult_falcon_2_;
};
class WPILibRobot : public ::frc971::wpilib::WPILibRobotBase {
@@ -252,6 +281,9 @@
superstructure_writer.set_climber_falcon(
make_unique<::ctre::phoenix::motorcontrol::can::TalonFX>(0));
+ superstructure_writer.set_turret_falcon(make_unique<::frc::TalonFX>(2));
+ superstructure_writer.set_catapult_falcon_1(make_unique<::frc::TalonFX>(3));
+ superstructure_writer.set_catapult_falcon_2(make_unique<::frc::TalonFX>(4));
AddLoop(&output_event_loop);