Update WPILib, roborio compilers, and CTRE Phoenix libraries
This borrows heavily from work that Ravago did to initially get this
stuff working.
Tested rudimentary functionality on a test bench, ensured that we could:
* Enable the robot.
* Read joystick and button values.
* Switch between auto and teleop modes.
* Read sensor values (encoder, absolute encoder, potentiometer).
* Read PDP values.
* Drive PWM motors.
* Drive CANivore motors.
Non-WPILib changes are made to accommodate the upgrade roborio
compiler's improved pickiness.
Merge commit '125aac16d9bf03c833ffa18de2f113a33758a4b8' into HEAD
Change-Id: I8648956fb7517b2d784bf58e0a236742af7a306a
Signed-off-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
diff --git a/frc971/wpilib/joystick_sender.cc b/frc971/wpilib/joystick_sender.cc
index 9137a99..26f7545 100644
--- a/frc971/wpilib/joystick_sender.cc
+++ b/frc971/wpilib/joystick_sender.cc
@@ -24,9 +24,13 @@
event_loop_->OnRun([this]() {
frc::DriverStation *const ds = &frc::DriverStation::GetInstance();
+ wpi::Event event{false, false};
+ HAL_ProvideNewDataEventHandle(event.GetHandle());
+
// TODO(Brian): Fix the potential deadlock when stopping here (condition
// variable / mutex needs to get exposed all the way out or something).
while (event_loop_->is_running()) {
+ wpi::WaitForObject(event.GetHandle());
ds->RunIteration([&]() {
auto builder = joystick_state_sender_.MakeBuilder();
@@ -129,6 +133,8 @@
}
});
}
+
+ HAL_RemoveNewDataEventHandle(event.GetHandle());
});
}