Copy back a lot of the 2014 code.

Change-Id: I552292d8bd7bce4409e02d254bef06a9cc009568
diff --git a/frc971/control_loops/control_loops.q b/frc971/control_loops/control_loops.q
index bf2b27a..3dacff8 100644
--- a/frc971/control_loops/control_loops.q
+++ b/frc971/control_loops/control_loops.q
@@ -36,3 +36,25 @@
   PotAndIndexPosition left;
   PotAndIndexPosition right;
 };
+
+// Records edges captured on a single hall effect sensor.
+struct HallEffectStruct {
+  bool current;
+  int32_t posedge_count;
+  int32_t negedge_count;
+};
+
+// Records the positions for a mechanism with edge-capturing sensors on it.
+struct HallEffectPositions {
+  double current;
+  double posedge;
+  double negedge;
+};
+
+// Records edges captured on a single hall effect sensor.
+struct PosedgeOnlyCountedHallEffectStruct {
+  bool current;
+  int32_t posedge_count;
+  int32_t negedge_count;
+  double posedge_value;
+};