Change CopyPosition to use static flatbuffers

This also changes previous years code to use static flatbuffers when
sending position while using CopyPosition.

Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: I07c523a882dfd6fa7f6fb0cbc6eb807f3f04fa88
diff --git a/frc971/wpilib/sensor_reader.h b/frc971/wpilib/sensor_reader.h
index 963cd6e..bf8c96a 100644
--- a/frc971/wpilib/sensor_reader.h
+++ b/frc971/wpilib/sensor_reader.h
@@ -8,7 +8,7 @@
 #include "aos/events/shm_event_loop.h"
 #include "aos/stl_mutex/stl_mutex.h"
 #include "aos/time/time.h"
-#include "frc971/control_loops/control_loops_generated.h"
+#include "frc971/control_loops/control_loops_static.h"
 #include "frc971/control_loops/drivetrain/drivetrain_position_static.h"
 #include "frc971/input/robot_state_generated.h"
 #include "frc971/wpilib/ahal/DigitalGlitchFilter.h"
@@ -65,149 +65,149 @@
   // Copies a DMAEncoder to a IndexPosition with the correct unit and direction
   // changes.
   void CopyPosition(const ::frc971::wpilib::DMAEncoder &encoder,
-                    ::frc971::IndexPositionT *position,
+                    ::frc971::IndexPositionStatic *position,
                     double encoder_counts_per_revolution, double encoder_ratio,
                     bool reverse) {
     const double multiplier = reverse ? -1.0 : 1.0;
-    position->encoder =
-        multiplier * encoder_translate(encoder.polled_encoder_value(),
-                                       encoder_counts_per_revolution,
-                                       encoder_ratio);
-    position->latched_encoder =
+    position->set_encoder(multiplier *
+                          encoder_translate(encoder.polled_encoder_value(),
+                                            encoder_counts_per_revolution,
+                                            encoder_ratio));
+    position->set_latched_encoder(
         multiplier * encoder_translate(encoder.last_encoder_value(),
                                        encoder_counts_per_revolution,
-                                       encoder_ratio);
-    position->index_pulses = encoder.index_posedge_count();
+                                       encoder_ratio));
+    position->set_index_pulses(encoder.index_posedge_count());
   }
 
   // Copies a AbsoluteEncoderAndPotentiometer to a PotAndAbsolutePosition with
   // the correct unit and direction changes.
   void CopyPosition(
       const ::frc971::wpilib::AbsoluteEncoderAndPotentiometer &encoder,
-      ::frc971::PotAndAbsolutePositionT *position,
+      ::frc971::PotAndAbsolutePositionStatic *position,
       double encoder_counts_per_revolution, double encoder_ratio,
       ::std::function<double(double)> potentiometer_translate, bool reverse,
       double pot_offset) {
     const double multiplier = reverse ? -1.0 : 1.0;
-    position->pot = multiplier * potentiometer_translate(
-                                     encoder.ReadPotentiometerVoltage()) +
-                    pot_offset;
-    position->encoder =
-        multiplier * encoder_translate(encoder.ReadRelativeEncoder(),
-                                       encoder_counts_per_revolution,
-                                       encoder_ratio);
+    position->set_pot(multiplier * potentiometer_translate(
+                                       encoder.ReadPotentiometerVoltage()) +
+                      pot_offset);
+    position->set_encoder(multiplier *
+                          encoder_translate(encoder.ReadRelativeEncoder(),
+                                            encoder_counts_per_revolution,
+                                            encoder_ratio));
 
-    position->absolute_encoder =
-        (reverse ? (1.0 - encoder.ReadAbsoluteEncoder())
-                 : encoder.ReadAbsoluteEncoder()) *
-        encoder_ratio * (2.0 * M_PI);
+    position->set_absolute_encoder((reverse
+                                        ? (1.0 - encoder.ReadAbsoluteEncoder())
+                                        : encoder.ReadAbsoluteEncoder()) *
+                                   encoder_ratio * (2.0 * M_PI));
   }
 
   // Copies an AbsoluteEncoderAndPotentiometer to an AbsoluteAndAbsolutePosition
   // with the correct unit and direction changes.
   void CopyPosition(const ::frc971::wpilib::AbsoluteAndAbsoluteEncoder &encoder,
-                    ::frc971::AbsoluteAndAbsolutePositionT *position,
+                    ::frc971::AbsoluteAndAbsolutePositionStatic *position,
                     double encoder_counts_per_revolution, double encoder_ratio,
                     double single_turn_encoder_ratio, bool reverse) {
     const double multiplier = reverse ? -1.0 : 1.0;
-    position->encoder =
-        multiplier * encoder_translate(encoder.ReadRelativeEncoder(),
-                                       encoder_counts_per_revolution,
-                                       encoder_ratio);
+    position->set_encoder(multiplier *
+                          encoder_translate(encoder.ReadRelativeEncoder(),
+                                            encoder_counts_per_revolution,
+                                            encoder_ratio));
 
-    position->absolute_encoder =
-        (reverse ? (1.0 - encoder.ReadAbsoluteEncoder())
-                 : encoder.ReadAbsoluteEncoder()) *
-        encoder_ratio * (2.0 * M_PI);
+    position->set_absolute_encoder((reverse
+                                        ? (1.0 - encoder.ReadAbsoluteEncoder())
+                                        : encoder.ReadAbsoluteEncoder()) *
+                                   encoder_ratio * (2.0 * M_PI));
 
-    position->single_turn_absolute_encoder =
+    position->set_single_turn_absolute_encoder(
         (reverse ? (1.0 - encoder.ReadSingleTurnAbsoluteEncoder())
                  : encoder.ReadSingleTurnAbsoluteEncoder()) *
-        single_turn_encoder_ratio * (2.0 * M_PI);
+        single_turn_encoder_ratio * (2.0 * M_PI));
   }
 
   // Copies a DMAEdgeCounter to a HallEffectAndPosition with the correct unit
   // and direction changes.
   void CopyPosition(const ::frc971::wpilib::DMAEdgeCounter &counter,
-                    ::frc971::HallEffectAndPositionT *position,
+                    ::frc971::HallEffectAndPositionStatic *position,
                     double encoder_counts_per_revolution, double encoder_ratio,
                     bool reverse) {
     const double multiplier = reverse ? -1.0 : 1.0;
-    position->encoder =
-        multiplier * encoder_translate(counter.polled_encoder(),
-                                       encoder_counts_per_revolution,
-                                       encoder_ratio);
-    position->current = !counter.polled_value();
-    position->posedge_count = counter.negative_count();
-    position->negedge_count = counter.positive_count();
-    position->posedge_value =
+    position->set_encoder(multiplier *
+                          encoder_translate(counter.polled_encoder(),
+                                            encoder_counts_per_revolution,
+                                            encoder_ratio));
+    position->set_current(!counter.polled_value());
+    position->set_posedge_count(counter.negative_count());
+    position->set_negedge_count(counter.positive_count());
+    position->set_posedge_value(
         multiplier * encoder_translate(counter.last_negative_encoder_value(),
                                        encoder_counts_per_revolution,
-                                       encoder_ratio);
-    position->negedge_value =
+                                       encoder_ratio));
+    position->set_negedge_value(
         multiplier * encoder_translate(counter.last_positive_encoder_value(),
                                        encoder_counts_per_revolution,
-                                       encoder_ratio);
+                                       encoder_ratio));
   }
 
   // Copies a Absolute Encoder with the correct unit
   // and direction changes.
   void CopyPosition(const ::frc971::wpilib::AbsoluteEncoder &encoder,
-                    ::frc971::AbsolutePositionT *position,
+                    ::frc971::AbsolutePositionStatic *position,
                     double encoder_counts_per_revolution, double encoder_ratio,
                     bool reverse) {
     const double multiplier = reverse ? -1.0 : 1.0;
-    position->encoder =
-        multiplier * encoder_translate(encoder.ReadRelativeEncoder(),
-                                       encoder_counts_per_revolution,
-                                       encoder_ratio);
+    position->set_encoder(multiplier *
+                          encoder_translate(encoder.ReadRelativeEncoder(),
+                                            encoder_counts_per_revolution,
+                                            encoder_ratio));
 
-    position->absolute_encoder =
-        (reverse ? (1.0 - encoder.ReadAbsoluteEncoder())
-                 : encoder.ReadAbsoluteEncoder()) *
-        encoder_ratio * (2.0 * M_PI);
+    position->set_absolute_encoder((reverse
+                                        ? (1.0 - encoder.ReadAbsoluteEncoder())
+                                        : encoder.ReadAbsoluteEncoder()) *
+                                   encoder_ratio * (2.0 * M_PI));
   }
 
   void CopyPosition(const ::frc971::wpilib::DMAEncoderAndPotentiometer &encoder,
-                    ::frc971::PotAndIndexPositionT *position,
+                    ::frc971::PotAndIndexPositionStatic *position,
                     ::std::function<double(int32_t)> encoder_translate,
                     ::std::function<double(double)> potentiometer_translate,
                     bool reverse, double pot_offset) {
     const double multiplier = reverse ? -1.0 : 1.0;
-    position->encoder =
-        multiplier * encoder_translate(encoder.polled_encoder_value());
-    position->pot = multiplier * potentiometer_translate(
-                                     encoder.polled_potentiometer_voltage()) +
-                    pot_offset;
-    position->latched_encoder =
-        multiplier * encoder_translate(encoder.last_encoder_value());
-    position->latched_pot =
+    position->set_encoder(multiplier *
+                          encoder_translate(encoder.polled_encoder_value()));
+    position->set_pot(multiplier * potentiometer_translate(
+                                       encoder.polled_potentiometer_voltage()) +
+                      pot_offset);
+    position->set_latched_encoder(
+        multiplier * encoder_translate(encoder.last_encoder_value()));
+    position->set_latched_pot(
         multiplier *
             potentiometer_translate(encoder.last_potentiometer_voltage()) +
-        pot_offset;
-    position->index_pulses = encoder.index_posedge_count();
+        pot_offset);
+    position->set_index_pulses(encoder.index_posedge_count());
   }
 
   // Copies a relative digital encoder.
   void CopyPosition(const ::frc::Encoder &encoder,
-                    ::frc971::RelativePositionT *position,
+                    ::frc971::RelativePositionStatic *position,
                     double encoder_counts_per_revolution, double encoder_ratio,
                     bool reverse) {
     const double multiplier = reverse ? -1.0 : 1.0;
-    position->encoder =
-        multiplier * encoder_translate(encoder.GetRaw(),
-                                       encoder_counts_per_revolution,
-                                       encoder_ratio);
+    position->set_encoder(multiplier *
+                          encoder_translate(encoder.GetRaw(),
+                                            encoder_counts_per_revolution,
+                                            encoder_ratio));
   }
 
   // Copies a potentiometer
   void CopyPosition(const ::frc::AnalogInput &input,
-                    ::frc971::RelativePositionT *position,
+                    ::frc971::RelativePositionStatic *position,
                     ::std::function<double(double)> potentiometer_translate,
                     bool reverse, double pot_offset) {
     const double multiplier = reverse ? -1.0 : 1.0;
-    position->encoder =
-        multiplier * potentiometer_translate(input.GetVoltage()) + pot_offset;
+    position->set_encoder(
+        multiplier * potentiometer_translate(input.GetVoltage()) + pot_offset);
   }
 
   double encoder_translate(int32_t value, double counts_per_revolution,