Move Position, robot_state, and joystick_state over
ControlLoop should now be completely using the event loop.
Change-Id: Ifb936c384d1031abbc9e61d834b1ef157ad0841c
diff --git a/frc971/control_loops/drivetrain/drivetrain.cc b/frc971/control_loops/drivetrain/drivetrain.cc
index 36f7c82..27a0a76 100644
--- a/frc971/control_loops/drivetrain/drivetrain.cc
+++ b/frc971/control_loops/drivetrain/drivetrain.cc
@@ -331,7 +331,7 @@
dt_openloop_.SetGoal(*goal);
}
- dt_openloop_.Update();
+ dt_openloop_.Update(robot_state().voltage_battery);
dt_closedloop_.Update(output != NULL && controller_type == 1);
@@ -393,7 +393,7 @@
right_high_requested_ = output->right_high;
}
- const double scalar = ::aos::robot_state->voltage_battery / 12.0;
+ const double scalar = robot_state().voltage_battery / 12.0;
left_voltage *= scalar;
right_voltage *= scalar;
diff --git a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
index a6711e4..bb5d5d9 100644
--- a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
+++ b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
@@ -164,6 +164,7 @@
last_U_ << my_drivetrain_queue_.output->left_voltage,
my_drivetrain_queue_.output->right_voltage;
{
+ ::aos::robot_state.FetchLatest();
const double scalar = ::aos::robot_state->voltage_battery / 12.0;
last_U_ *= scalar;
}
diff --git a/frc971/control_loops/drivetrain/polydrivetrain.h b/frc971/control_loops/drivetrain/polydrivetrain.h
index 64b1aff..cc3468a 100644
--- a/frc971/control_loops/drivetrain/polydrivetrain.h
+++ b/frc971/control_loops/drivetrain/polydrivetrain.h
@@ -45,7 +45,7 @@
Scalar MaxVelocity();
- void Update();
+ void Update(Scalar voltage_battery);
void SetOutput(::frc971::control_loops::DrivetrainQueue::Output *output);
@@ -292,7 +292,7 @@
}
template <typename Scalar>
-void PolyDrivetrain<Scalar>::Update() {
+void PolyDrivetrain<Scalar>::Update(Scalar voltage_battery) {
if (dt_config_.loop_type == LoopType::CLOSED_LOOP) {
loop_->mutable_X_hat()(0, 0) = kf_->X_hat()(1, 0);
loop_->mutable_X_hat()(1, 0) = kf_->X_hat()(3, 0);
@@ -406,7 +406,9 @@
(R_right / dt_config_.v)(0, 0) + (IsInGear(right_gear_) ? 0 : wiggle),
-kTwelve, kTwelve);
#ifdef __linux__
- loop_->mutable_U() *= kTwelve / ::aos::robot_state->voltage_battery;
+ loop_->mutable_U() *= kTwelve / voltage_battery;
+#else
+ (void)voltage_battery;
#endif // __linux__
}
}