Add beambreaks to wpilib_interface
Signed-off-by: Siddhant Kanwar <kanwarsiddhant@gmail.com>
Change-Id: I2615f919f438d01d764307d1b484e2c63636566b
diff --git a/y2022/control_loops/superstructure/superstructure_position.fbs b/y2022/control_loops/superstructure/superstructure_position.fbs
index cd0bc67..8de272b 100644
--- a/y2022/control_loops/superstructure/superstructure_position.fbs
+++ b/y2022/control_loops/superstructure/superstructure_position.fbs
@@ -13,6 +13,12 @@
// Zero is straight and positive is open
flipper_arm_left:frc971.RelativePosition (id: 4);
flipper_arm_right:frc971.RelativePosition (id: 5);
+
+
+ // True is broken
+ intake_beambreak_front:bool (id:6);
+ intake_beambreak_back:bool (id:7);
+ turret_beambreak:bool (id:8);
}
root_type Position;
diff --git a/y2022/wpilib_interface.cc b/y2022/wpilib_interface.cc
index bd884a8..8de396c 100644
--- a/y2022/wpilib_interface.cc
+++ b/y2022/wpilib_interface.cc
@@ -193,6 +193,10 @@
position_builder.add_intake_front(intake_offset_front);
position_builder.add_intake_back(intake_offset_back);
position_builder.add_turret(turret_offset);
+ position_builder.add_intake_beambreak_front(
+ intake_beambreak_front_->Get());
+ position_builder.add_intake_beambreak_back(intake_beambreak_back_->Get());
+ position_builder.add_turret_beambreak(turret_beambreak_->Get());
builder.CheckOk(builder.Send(position_builder.Finish()));
}
@@ -294,6 +298,16 @@
turret_encoder_.set_potentiometer(::std::move(potentiometer));
}
+ void set_intake_beambreak_front(::std::unique_ptr<frc::DigitalInput> sensor) {
+ intake_beambreak_front_ = ::std::move(sensor);
+ }
+ void set_intake_beambreak_back(::std::unique_ptr<frc::DigitalInput> sensor) {
+ intake_beambreak_back_ = ::std::move(sensor);
+ }
+ void set_turret_beambreak(::std::unique_ptr<frc::DigitalInput> sensor) {
+ turret_beambreak_ = ::std::move(sensor);
+ }
+
private:
std::shared_ptr<const Values> values_;
@@ -304,6 +318,9 @@
std::array<std::unique_ptr<frc::DigitalInput>, 2> autonomous_modes_;
+ std::unique_ptr<frc::DigitalInput> intake_beambreak_front_,
+ intake_beambreak_back_, turret_beambreak_;
+
std::unique_ptr<frc::AnalogInput> climber_potentiometer_,
flipper_arm_right_potentiometer_, flipper_arm_left_potentiometer_;
frc971::wpilib::AbsoluteEncoderAndPotentiometer intake_encoder_front_,
@@ -483,6 +500,10 @@
sensor_reader.set_turret_absolute_pwm(make_unique<frc::DigitalInput>(4));
sensor_reader.set_turret_potentiometer(make_unique<frc::AnalogInput>(4));
+ sensor_reader.set_intake_beambreak_front(make_unique<frc::DigitalInput>(5));
+ sensor_reader.set_intake_beambreak_back(make_unique<frc::DigitalInput>(6));
+ sensor_reader.set_turret_beambreak(make_unique<frc::DigitalInput>(7));
+
sensor_reader.set_climber_potentiometer(make_unique<frc::AnalogInput>(5));
sensor_reader.set_flipper_arm_left_potentiometer(