Change HallEffectAndPosition to proper naming

All of the templates assume the position variable is called encoder,
not position. I spent a while trying to figure out if the naming
should be the other way around, but I think 'encoder' is correct.

Change-Id: Icb0fa9a94bdea4ae3a43b947a073cc1f83ba5f4a
diff --git a/frc971/control_loops/control_loops.q b/frc971/control_loops/control_loops.q
index 0f248f1..03e93fd 100644
--- a/frc971/control_loops/control_loops.q
+++ b/frc971/control_loops/control_loops.q
@@ -132,7 +132,7 @@
   // The current hall effect state.
   bool current;
   // The current encoder position.
-  double position;
+  double encoder;
   // The number of positive and negative edges we've seen on the hall effect
   // sensor.
   int32_t posedge_count;
diff --git a/frc971/control_loops/position_sensor_sim.cc b/frc971/control_loops/position_sensor_sim.cc
index d560228..97a96d5 100644
--- a/frc971/control_loops/position_sensor_sim.cc
+++ b/frc971/control_loops/position_sensor_sim.cc
@@ -175,7 +175,7 @@
 void PositionSensorSimulator::GetSensorValues(HallEffectAndPosition *values) {
   values->current = lower_index_edge_.current_index_segment() !=
                     upper_index_edge_.current_index_segment();
-  values->position = current_position_ - start_position_;
+  values->encoder = current_position_ - start_position_;
 
   values->posedge_count = posedge_count_;
   values->negedge_count = negedge_count_;
diff --git a/frc971/control_loops/position_sensor_sim_test.cc b/frc971/control_loops/position_sensor_sim_test.cc
index e68feee..a4436ce 100644
--- a/frc971/control_loops/position_sensor_sim_test.cc
+++ b/frc971/control_loops/position_sensor_sim_test.cc
@@ -315,7 +315,7 @@
   sim.MoveTo(0.25);
   sim.GetSensorValues(&position);
   EXPECT_TRUE(position.current);
-  EXPECT_DOUBLE_EQ(0.50, position.position);
+  EXPECT_DOUBLE_EQ(0.50, position.encoder);
   EXPECT_EQ(1, position.posedge_count);
   EXPECT_EQ(0.25, position.posedge_value);
   EXPECT_EQ(0, position.negedge_count);
@@ -325,7 +325,7 @@
   sim.MoveTo(0.75);
   sim.GetSensorValues(&position);
   EXPECT_FALSE(position.current);
-  EXPECT_DOUBLE_EQ(1.0, position.position);
+  EXPECT_DOUBLE_EQ(1.0, position.encoder);
   EXPECT_EQ(1, position.posedge_count);
   EXPECT_DOUBLE_EQ(0.25, position.posedge_value);
   EXPECT_EQ(1, position.negedge_count);
@@ -335,7 +335,7 @@
   sim.MoveTo(1.75);
   sim.GetSensorValues(&position);
   EXPECT_FALSE(position.current);
-  EXPECT_DOUBLE_EQ(2.0, position.position);
+  EXPECT_DOUBLE_EQ(2.0, position.encoder);
   EXPECT_EQ(2, position.posedge_count);
   EXPECT_DOUBLE_EQ(1.25, position.posedge_value);
   EXPECT_EQ(2, position.negedge_count);
@@ -345,7 +345,7 @@
   sim.MoveTo(0.75);
   sim.GetSensorValues(&position);
   EXPECT_FALSE(position.current);
-  EXPECT_DOUBLE_EQ(1.0, position.position);
+  EXPECT_DOUBLE_EQ(1.0, position.encoder);
   EXPECT_EQ(3, position.posedge_count);
   EXPECT_DOUBLE_EQ(1.75, position.posedge_value);
   EXPECT_EQ(3, position.negedge_count);
@@ -355,7 +355,7 @@
   sim.MoveTo(0.25);
   sim.GetSensorValues(&position);
   EXPECT_TRUE(position.current);
-  EXPECT_DOUBLE_EQ(0.5, position.position);
+  EXPECT_DOUBLE_EQ(0.5, position.encoder);
   EXPECT_EQ(4, position.posedge_count);
   EXPECT_DOUBLE_EQ(0.75, position.posedge_value);
   EXPECT_EQ(3, position.negedge_count);
@@ -365,7 +365,7 @@
   sim.MoveTo(-0.25);
   sim.GetSensorValues(&position);
   EXPECT_FALSE(position.current);
-  EXPECT_DOUBLE_EQ(0.0, position.position);
+  EXPECT_DOUBLE_EQ(0.0, position.encoder);
   EXPECT_EQ(4, position.posedge_count);
   EXPECT_DOUBLE_EQ(0.75, position.posedge_value);
   EXPECT_EQ(4, position.negedge_count);
@@ -376,7 +376,7 @@
     sim.MoveTo(-0.25 - i * 1.0e-6);
     sim.GetSensorValues(&position);
     EXPECT_FALSE(position.current);
-    EXPECT_NEAR(-i * 1.0e-6, position.position, 1e-8);
+    EXPECT_NEAR(-i * 1.0e-6, position.encoder, 1e-8);
     EXPECT_EQ(4, position.posedge_count);
     EXPECT_DOUBLE_EQ(0.75, position.posedge_value);
     EXPECT_EQ(4, position.negedge_count);
diff --git a/frc971/control_loops/profiled_subsystem.q b/frc971/control_loops/profiled_subsystem.q
index f89da14..3bcd6c2 100644
--- a/frc971/control_loops/profiled_subsystem.q
+++ b/frc971/control_loops/profiled_subsystem.q
@@ -40,6 +40,44 @@
   .frc971.EstimatorState estimator_state;
 };
 
+struct HallProfiledJointStatus {
+  // Is the subsystem zeroed?
+  bool zeroed;
+
+  // The state of the subsystem, if applicable.  -1 otherwise.
+  int32_t state;
+
+  // If true, we have aborted.
+  bool estopped;
+
+  // Position of the joint.
+  float position;
+  // Velocity of the joint in units/second.
+  float velocity;
+  // Profiled goal position of the joint.
+  float goal_position;
+  // Profiled goal velocity of the joint in units/second.
+  float goal_velocity;
+  // Unprofiled goal position from absoulte zero  of the joint.
+  float unprofiled_goal_position;
+  // Unprofiled goal velocity of the joint in units/second.
+  float unprofiled_goal_velocity;
+
+  // The estimated voltage error.
+  float voltage_error;
+
+  // The calculated velocity with delta x/delta t
+  float calculated_velocity;
+
+  // Components of the control loop output
+  float position_power;
+  float velocity_power;
+  float feedforwards_power;
+
+  // State of the estimator.
+  .frc971.HallEffectAndPositionEstimatorState estimator_state;
+};
+
 struct AbsoluteProfiledJointStatus {
   // Is the subsystem zeroed?
   bool zeroed;
diff --git a/frc971/zeroing/zeroing.cc b/frc971/zeroing/zeroing.cc
index c2de2cb..14d26c9 100644
--- a/frc971/zeroing/zeroing.cc
+++ b/frc971/zeroing/zeroing.cc
@@ -173,10 +173,10 @@
   // If we have a new posedge.
   if (!info.current) {
     if (last_hall_) {
-      min_low_position_ = max_low_position_ = info.position;
+      min_low_position_ = max_low_position_ = info.encoder;
     } else {
-      min_low_position_ = ::std::min(min_low_position_, info.position);
-      max_low_position_ = ::std::max(max_low_position_, info.position);
+      min_low_position_ = ::std::min(min_low_position_, info.encoder);
+      max_low_position_ = ::std::max(max_low_position_, info.encoder);
     }
   }
   last_hall_ = info.current;
@@ -207,9 +207,9 @@
 
   bool moving_backward = false;
   if (constants_.zeroing_move_direction) {
-    moving_backward = info.position > min_low_position_;
+    moving_backward = info.encoder > min_low_position_;
   } else {
-    moving_backward = info.position < max_low_position_;
+    moving_backward = info.encoder < max_low_position_;
   }
 
   // If there are no posedges to use or we don't have enough samples yet to
@@ -239,7 +239,7 @@
     zeroed_ = true;
   }
 
-  position_ = info.position - offset_;
+  position_ = info.encoder - offset_;
 }
 
 HallEffectAndPositionZeroingEstimator::State
diff --git a/y2017/control_loops/superstructure/column/column.cc b/y2017/control_loops/superstructure/column/column.cc
index aaca601..8a3644e 100644
--- a/y2017/control_loops/superstructure/column/column.cc
+++ b/y2017/control_loops/superstructure/column/column.cc
@@ -118,19 +118,19 @@
   }
 
   turret_last_position_ = turret_position();
-  Y_ << new_position.indexer.position, new_position.turret.position;
+  Y_ << new_position.indexer.encoder, new_position.turret.encoder;
   Y_ += offset_;
   loop_->Correct(Y_);
 
-  indexer_history_[indexer_history_position_] = new_position.indexer.position;
+  indexer_history_[indexer_history_position_] = new_position.indexer.encoder;
   indexer_history_position_ = (indexer_history_position_ + 1) % kHistoryLength;
 
   indexer_dt_velocity_ =
-      (new_position.indexer.position - indexer_last_position_) /
+      (new_position.indexer.encoder - indexer_last_position_) /
       chrono::duration_cast<chrono::duration<double>>(
           ::aos::controls::kLoopFrequency)
           .count();
-  indexer_last_position_ = new_position.indexer.position;
+  indexer_last_position_ = new_position.indexer.encoder;
 
   stuck_indexer_detector_->Correct(Y_);
 
diff --git a/y2017/control_loops/superstructure/column/column_zeroing.cc b/y2017/control_loops/superstructure/column/column_zeroing.cc
index e26d33e..d5a378c 100644
--- a/y2017/control_loops/superstructure/column/column_zeroing.cc
+++ b/y2017/control_loops/superstructure/column/column_zeroing.cc
@@ -38,8 +38,8 @@
     indexer_offset_ = indexer_.offset();
 
     // Compute the current turret position.
-    const double current_turret = indexer_offset_ + position.indexer.position +
-                                  turret_.offset() + position.turret.position;
+    const double current_turret = indexer_offset_ + position.indexer.encoder +
+                                  turret_.offset() + position.turret.encoder;
 
     // Now, we can compute the turret position which is closest to 0 radians
     // (within +- M_PI).
@@ -47,14 +47,14 @@
         ::frc971::zeroing::Wrap(0.0, current_turret, M_PI * 2.0);
 
     // Now, compute the actual turret offset.
-    turret_offset_ = adjusted_turret - position.turret.position -
-                     (indexer_offset_ + position.indexer.position);
+    turret_offset_ = adjusted_turret - position.turret.encoder -
+                     (indexer_offset_ + position.indexer.encoder);
     offset_ready_ = true;
 
     // If we are close enough to 0, we are zeroed.  Otherwise, we don't know
     // which revolution we are on and need more info.  We will always report the
     // turret position as within +- M_PI from 0 with the provided offset.
-    if (::std::abs(position.indexer.position + position.turret.position +
+    if (::std::abs(position.indexer.encoder + position.turret.encoder +
                    indexer_offset_ + turret_offset_) <
         turret_zeroed_distance_) {
       zeroed_ = true;
diff --git a/y2017/control_loops/superstructure/superstructure_lib_test.cc b/y2017/control_loops/superstructure/superstructure_lib_test.cc
index d538dc8..894f99d 100644
--- a/y2017/control_loops/superstructure/superstructure_lib_test.cc
+++ b/y2017/control_loops/superstructure/superstructure_lib_test.cc
@@ -1066,7 +1066,7 @@
   superstructure_queue_.position.FetchLatest();
   ASSERT_TRUE(superstructure_queue_.position.get() != nullptr);
   const double indexer_position =
-      superstructure_queue_.position->column.indexer.position;
+      superstructure_queue_.position->column.indexer.encoder;
 
   // Now, unstick it.
   superstructure_plant_.set_freeze_indexer(false);
@@ -1094,7 +1094,7 @@
   superstructure_queue_.position.FetchLatest();
   ASSERT_TRUE(superstructure_queue_.position.get() != nullptr);
   const double unstuck_indexer_position =
-      superstructure_queue_.position->column.indexer.position;
+      superstructure_queue_.position->column.indexer.encoder;
   EXPECT_LT(unstuck_indexer_position, indexer_position - 0.1);
 
   // Now, verify that everything works as expected.
diff --git a/y2017/wpilib_interface.cc b/y2017/wpilib_interface.cc
index 01184fa..12f3313 100644
--- a/y2017/wpilib_interface.cc
+++ b/y2017/wpilib_interface.cc
@@ -453,7 +453,7 @@
                     double encoder_counts_per_revolution, double encoder_ratio,
                     bool reverse) {
     const double multiplier = reverse ? -1.0 : 1.0;
-    position->position =
+    position->encoder =
         multiplier * encoder_translate(counter.polled_encoder(),
                                        encoder_counts_per_revolution,
                                        encoder_ratio);