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);