Updated wpilib interface and constants.

Updated files for robot to handle drivetrain.

Change-Id: I6743c58b52027a4114b14032972a4f6e29a25cb3
diff --git a/y2019/BUILD b/y2019/BUILD
index 7c987f6..2b9d39b 100644
--- a/y2019/BUILD
+++ b/y2019/BUILD
@@ -13,6 +13,7 @@
         "//aos/mutex",
         "//aos/network:team_number",
         "//frc971:constants",
+        "//y2019/control_loops/drivetrain:polydrivetrain_plants",
     ],
 )
 
@@ -23,6 +24,7 @@
     ],
     restricted_to = ["//tools:roborio"],
     deps = [
+        ":constants",
         "//aos:init",
         "//aos:make_unique",
         "//aos:math",
diff --git a/y2019/constants.h b/y2019/constants.h
index e4dda86..e7c178b 100644
--- a/y2019/constants.h
+++ b/y2019/constants.h
@@ -5,6 +5,7 @@
 #include <math.h>
 
 #include "frc971/constants.h"
+#include "y2019/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
 
 namespace y2019 {
 namespace constants {
@@ -21,6 +22,20 @@
 
 struct Values {
   static const int kZeroingSampleSize = 200;
+
+  static constexpr double kDrivetrainCyclesPerRevolution() { return 512.0; }
+  static constexpr double kDrivetrainEncoderCountsPerRevolution() {
+    return kDrivetrainCyclesPerRevolution() * 4;
+  }
+  static constexpr double kDrivetrainEncoderRatio() {
+    return (52.0 / 24.0);
+  }
+  static constexpr double kMaxDrivetrainEncoderPulsesPerSecond() {
+    return control_loops::drivetrain::kFreeSpeed / (2.0 * M_PI) *
+           control_loops::drivetrain::kHighOutputRatio /
+           constants::Values::kDrivetrainEncoderRatio() *
+           kDrivetrainEncoderCountsPerRevolution();
+  }
 };
 
 // Creates (once) a Values instance for ::aos::network::GetTeamNumber() and
diff --git a/y2019/wpilib_interface.cc b/y2019/wpilib_interface.cc
index 9395489..ff5839f 100644
--- a/y2019/wpilib_interface.cc
+++ b/y2019/wpilib_interface.cc
@@ -40,12 +40,14 @@
 #include "frc971/wpilib/sensor_reader.h"
 #include "frc971/wpilib/wpilib_interface.h"
 #include "frc971/wpilib/wpilib_robot_base.h"
+#include "y2019/constants.h"
 
 #ifndef M_PI
 #define M_PI 3.14159265358979323846
 #endif
 
 using ::frc971::control_loops::drivetrain_queue;
+using ::y2019::constants::Values;
 using ::aos::monotonic_clock;
 namespace chrono = ::std::chrono;
 using aos::make_unique;
@@ -73,18 +75,18 @@
 }
 
 double drivetrain_translate(int32_t in) {
-  return ((static_cast<double>(in)
-           /* / Values::kDrivetrainEncoderCountsPerRevolution()) *
+  return ((static_cast<double>(in) /
+           Values::kDrivetrainEncoderCountsPerRevolution()) *
           (2.0 * M_PI)) *
          Values::kDrivetrainEncoderRatio() *
-         control_loops::drivetrain::kWheelRadius*/));
+         control_loops::drivetrain::kWheelRadius;
 }
 
 double drivetrain_velocity_translate(double in) {
-  return (((1.0 / in) /* / Values::kDrivetrainCyclesPerRevolution()) *
+  return (((1.0 / in) / Values::kDrivetrainCyclesPerRevolution()) *
           (2.0 * M_PI)) *
          Values::kDrivetrainEncoderRatio() *
-         control_loops::drivetrain::kWheelRadius*/));
+         control_loops::drivetrain::kWheelRadius;
 }
 
 constexpr double kMaxFastEncoderPulsesPerSecond =