Add retention roller to wpilib_interface
Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: If621371f26caa4505b4f9b3a93be6d2279863ff3
diff --git a/y2024/wpilib_interface.cc b/y2024/wpilib_interface.cc
index 94951a2..3d0b7a5 100644
--- a/y2024/wpilib_interface.cc
+++ b/y2024/wpilib_interface.cc
@@ -467,7 +467,6 @@
6, false, "Drivetrain Bus", &canivore_signal_registry,
current_limits->intake_pivot_stator_current_limit(),
current_limits->intake_pivot_supply_current_limit());
- // TODO(max): Assign these proper ids
std::shared_ptr<TalonFX> altitude = std::make_shared<TalonFX>(
9, false, "Drivetrain Bus", &canivore_signal_registry,
current_limits->altitude_stator_current_limit(),
@@ -480,6 +479,10 @@
8, false, "rio", &rio_signal_registry,
current_limits->intake_roller_stator_current_limit(),
current_limits->intake_roller_supply_current_limit());
+ std::shared_ptr<TalonFX> retention_roller = std::make_shared<TalonFX>(
+ 10, false, "rio", &rio_signal_registry,
+ current_limits->intake_roller_stator_current_limit(),
+ current_limits->intake_roller_supply_current_limit());
std::shared_ptr<TalonFX> transfer_roller = std::make_shared<TalonFX>(
9, false, "rio", &rio_signal_registry,
current_limits->transfer_roller_stator_current_limit(),
@@ -493,7 +496,7 @@
current_limits->extend_stator_current_limit(),
current_limits->extend_supply_current_limit());
std::shared_ptr<TalonFX> extend_roller = std::make_shared<TalonFX>(
- 10, false, "rio", &rio_signal_registry,
+ 12, false, "rio", &rio_signal_registry,
current_limits->extend_roller_stator_current_limit(),
current_limits->extend_roller_supply_current_limit());
@@ -522,8 +525,8 @@
canivore_talonfxs.push_back(talonfx);
}
- for (auto talonfx :
- {intake_roller, transfer_roller, climber, extend, extend_roller}) {
+ for (auto talonfx : {intake_roller, transfer_roller, climber, extend,
+ extend_roller, retention_roller}) {
rio_talonfxs.push_back(talonfx);
}
@@ -594,7 +597,7 @@
&rio_sensor_reader_event_loop, std::move(rio_signal_registry),
rio_talonfxs,
[&intake_roller, &transfer_roller, &climber, &extend, &extend_roller,
- &superstructure_rio_position_sender](
+ &retention_roller, &superstructure_rio_position_sender](
ctre::phoenix::StatusCode status) {
aos::Sender<y2024::control_loops::superstructure::CANPositionStatic>::
StaticBuilder superstructure_can_builder =
@@ -613,6 +616,8 @@
extend_roller->SerializePosition(
superstructure_can_builder->add_extend_roller(),
constants::Values::kExtendRollerOutputRatio);
+ retention_roller->SerializePosition(
+ superstructure_can_builder->add_retention_roller(), 1.0);
superstructure_can_builder->set_timestamp(
intake_roller->GetTimestamp());
@@ -652,6 +657,8 @@
->second->WriteVoltage(output.altitude_voltage());
talonfx_map.find("turret")->second->WriteVoltage(
output.turret_voltage());
+ talonfx_map.find("retention_roller")
+ ->second->WriteVoltage(output.retention_roller_voltage());
});
can_drivetrain_writer.set_talonfxs({right_front, right_back},
@@ -665,6 +672,7 @@
can_superstructure_writer.add_talonfx("extend_roller", extend_roller);
can_superstructure_writer.add_talonfx("altitude", altitude);
can_superstructure_writer.add_talonfx("turret", turret);
+ can_superstructure_writer.add_talonfx("retention_roller", retention_roller);
can_output_event_loop.MakeWatcher(
"/roborio", [&can_drivetrain_writer, &can_superstructure_writer](