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;