Change falcon position scale by a gear ratio
Signed-off-by: Maxwell Henderson <maxwell.henderson@mailbox.org>
Change-Id: I5965428c19fb51bb1e86086ff56990ab5c71eaee
diff --git a/frc971/wpilib/falcon.cc b/frc971/wpilib/falcon.cc
index 6be83aa..014556d 100644
--- a/frc971/wpilib/falcon.cc
+++ b/frc971/wpilib/falcon.cc
@@ -94,7 +94,8 @@
return status;
}
-void Falcon::SerializePosition(flatbuffers::FlatBufferBuilder *fbb) {
+void Falcon::SerializePosition(flatbuffers::FlatBufferBuilder *fbb,
+ double gear_ratio) {
control_loops::CANFalcon::Builder builder(*fbb);
builder.add_id(device_id_);
builder.add_device_temp(device_temp());
@@ -102,7 +103,7 @@
builder.add_supply_current(supply_current());
builder.add_torque_current(torque_current());
builder.add_duty_cycle(duty_cycle());
- builder.add_position(position());
+ builder.add_position(position() * gear_ratio);
last_position_offset_ = builder.Finish();
}
diff --git a/frc971/wpilib/falcon.h b/frc971/wpilib/falcon.h
index 8f0f1f0..d516290 100644
--- a/frc971/wpilib/falcon.h
+++ b/frc971/wpilib/falcon.h
@@ -35,7 +35,9 @@
ctre::phoenix6::hardware::TalonFX *talon() { return &talon_; }
- void SerializePosition(flatbuffers::FlatBufferBuilder *fbb);
+ // The position of the Falcon output shaft is multiplied by gear_ratio
+ void SerializePosition(flatbuffers::FlatBufferBuilder *fbb,
+ double gear_ratio);
std::optional<flatbuffers::Offset<control_loops::CANFalcon>> TakeOffset();