7971 now uses the new IMU plugged in directly
Saves a bunch of wires.
Change-Id: I27b37c9c5a2b4c61fd5f043b739ff19902689789
diff --git a/y2020/constants.cc b/y2020/constants.cc
index a35798f..90129dd 100644
--- a/y2020/constants.cc
+++ b/y2020/constants.cc
@@ -26,7 +26,6 @@
const uint16_t kCompTeamNumber = 971;
const uint16_t kPracticeTeamNumber = 9971;
-const uint16_t kCodingRobotTeamNumber = 7971;
const Values *DoGetValuesForTeam(uint16_t team) {
Values *const r = new Values();
@@ -120,7 +119,7 @@
turret_params->zeroing_constants.measured_absolute_position = 0.0;
break;
- case kCodingRobotTeamNumber:
+ case Values::kCodingRobotTeamNumber:
hood->zeroing_constants.measured_absolute_position = 0.0;
intake->zeroing_constants.measured_absolute_position = 0.0;
diff --git a/y2020/constants.h b/y2020/constants.h
index ed58777..4713072 100644
--- a/y2020/constants.h
+++ b/y2020/constants.h
@@ -21,6 +21,8 @@
namespace constants {
struct Values {
+ static const uint16_t kCodingRobotTeamNumber = 7971;
+
static const int kZeroingSampleSize = 200;
static constexpr double kDrivetrainCyclesPerRevolution() { return 512.0; }
diff --git a/y2020/wpilib_interface.cc b/y2020/wpilib_interface.cc
index a1083eb..b336fd7 100644
--- a/y2020/wpilib_interface.cc
+++ b/y2020/wpilib_interface.cc
@@ -25,6 +25,7 @@
#include "aos/init.h"
#include "aos/logging/logging.h"
#include "aos/make_unique.h"
+#include "aos/network/team_number.h"
#include "aos/realtime.h"
#include "aos/robot_state/robot_state_generated.h"
#include "aos/time/time.h"
@@ -504,9 +505,19 @@
// Note: If ADIS16470 is plugged in directly to the roboRIO SPI port without
// the Spartan Board, then trigger is on 26, reset 27, and chip select is
// CS0.
- auto imu_trigger = make_unique<frc::DigitalInput>(0);
- auto imu_reset = make_unique<frc::DigitalOutput>(1);
- auto spi = make_unique<frc::SPI>(frc::SPI::Port::kOnboardCS2);
+ frc::SPI::Port spi_port = frc::SPI::Port::kOnboardCS2;
+ std::unique_ptr<frc::DigitalInput> imu_trigger;
+ std::unique_ptr<frc::DigitalOutput> imu_reset;
+ if (::aos::network::GetTeamNumber() ==
+ constants::Values::kCodingRobotTeamNumber) {
+ imu_trigger = make_unique<frc::DigitalInput>(26);
+ imu_reset = make_unique<frc::DigitalOutput>(27);
+ spi_port = frc::SPI::Port::kOnboardCS0;
+ } else {
+ imu_trigger = make_unique<frc::DigitalInput>(0);
+ imu_reset = make_unique<frc::DigitalOutput>(1);
+ }
+ auto spi = make_unique<frc::SPI>(spi_port);
frc971::wpilib::ADIS16470 imu(&sensor_reader_event_loop, spi.get(),
imu_trigger.get(), imu_reset.get());
sensor_reader.set_imu(&imu);