Refactor constants
Everything is layed out so you can actually read them (kind of) now.
Change-Id: I7e042c2257a8271c08fa94d46bfd2ea846c90c38
diff --git a/y2017/constants.cc b/y2017/constants.cc
index e636f95..05eca31 100644
--- a/y2017/constants.cc
+++ b/y2017/constants.cc
@@ -25,126 +25,86 @@
namespace y2017 {
namespace constants {
-// ///// Mutual constants between robots. /////
const int Values::kZeroingSampleSize;
-constexpr double Values::kDrivetrainEncoderRatio, Values::kShooterEncoderRatio,
- Values::kIntakeEncoderRatio, Values::kIntakePotRatio,
- Values::kHoodEncoderRatio, Values::kHoodPotRatio,
- Values::kTurretEncoderRatio, Values::kTurretPotRatio,
- Values::kIndexerEncoderRatio, Values::kIntakeEncoderIndexDifference,
- Values::kIndexerEncoderIndexDifference,
- Values::kTurretEncoderIndexDifference, Values::kHoodEncoderIndexDifference;
-constexpr ::frc971::constants::Range Values::kIntakeRange, Values::kHoodRange,
- Values::kTurretRange;
+constexpr double Values::kDrivetrainEncoderRatio;
+
+constexpr double Values::kShooterEncoderRatio;
+
+constexpr double Values::kIntakeEncoderRatio, Values::kIntakePotRatio,
+ Values::kIntakeEncoderIndexDifference;
+constexpr ::frc971::constants::Range Values::kIntakeRange;
+
+constexpr double Values::kHoodEncoderRatio, Values::kHoodPotRatio,
+ Values::kHoodEncoderIndexDifference;
+constexpr ::frc971::constants::Range Values::kHoodRange;
+
+constexpr double Values::kTurretEncoderRatio, Values::kTurretPotRatio,
+ Values::kTurretEncoderIndexDifference;
+constexpr ::frc971::constants::Range Values::kTurretRange;
+
+constexpr double Values::kIndexerEncoderRatio,
+ Values::kIndexerEncoderIndexDifference;
namespace {
+
const uint16_t kCompTeamNumber = 971;
const uint16_t kPracticeTeamNumber = 9971;
-// ///// Dynamic constants. /////
-
const Values *DoGetValuesForTeam(uint16_t team) {
+ Values *const r = new Values();
+ Values::Intake *const intake = &r->intake;
+ Values::Turret *const turret = &r->turret;
+ Values::Hood *const hood = &r->hood;
+
+ r->drivetrain_max_speed = 5;
+
+ intake->zeroing.average_filter_size = Values::kZeroingSampleSize;
+ intake->zeroing.index_difference = Values::kIntakeEncoderIndexDifference;
+ intake->zeroing.measured_index_position = 0;
+ intake->zeroing.allowable_encoder_error = 0.3;
+
+ turret->zeroing.average_filter_size = Values::kZeroingSampleSize;
+ turret->zeroing.index_difference = Values::kTurretEncoderIndexDifference;
+ turret->zeroing.measured_index_position = 0;
+ turret->zeroing.allowable_encoder_error = 0.3;
+
+ hood->zeroing.average_filter_size = Values::kZeroingSampleSize;
+ hood->zeroing.index_difference = Values::kHoodEncoderIndexDifference;
+ hood->zeroing.measured_index_position = 0.1;
+ hood->zeroing.allowable_encoder_error = 0.3;
+
switch (team) {
- case 1: // for tests
- return new Values{
- 5.0, // drivetrain max speed
-
- // Intake
- {
- // Pot Offset
- 0.0,
- {Values::kZeroingSampleSize,
- Values::kIntakeEncoderIndexDifference, 0.0, 0.3},
- },
-
- // Turret
- {
- // Pot Offset
- 0.0,
- {Values::kZeroingSampleSize,
- Values::kTurretEncoderIndexDifference, 0.0, 0.3},
- },
-
- // Hood
- {
- // Pot Offset
- 0.1,
- {Values::kZeroingSampleSize, Values::kHoodEncoderIndexDifference,
- 0.1, 0.3},
- },
- 0.0, // down error
- "practice",
- };
+ // A set of constants for tests.
+ case 1:
+ intake->pot_offset = 0;
+ turret->pot_offset = 0;
+ hood->pot_offset = 0.1;
+ r->down_error = 0;
+ r->vision_name = "test";
break;
case kCompTeamNumber:
- return new Values{
- 5.0, // drivetrain max speed
-
- // Intake
- {
- // Pot Offset
- 0.0,
- {Values::kZeroingSampleSize,
- Values::kIntakeEncoderIndexDifference, 0.0, 0.3},
- },
-
- // Turret
- {
- // Pot Offset
- 0.0,
- {Values::kZeroingSampleSize,
- Values::kTurretEncoderIndexDifference, 0.0, 0.3},
- },
-
- // Hood
- {
- // Pot Offset
- 0.0,
- {Values::kZeroingSampleSize, Values::kHoodEncoderIndexDifference,
- 0.0, 0.3},
- },
- 0.0, // down error
- "competition",
- };
+ intake->pot_offset = 0;
+ turret->pot_offset = 0;
+ hood->pot_offset = 0.1;
+ r->down_error = 0;
+ r->vision_name = "competition";
break;
case kPracticeTeamNumber:
- return new Values{
- 5.0, // drivetrain max speed
-
- // Intake
- {
- // Pot Offset
- 0.0,
- {Values::kZeroingSampleSize,
- Values::kIntakeEncoderIndexDifference, 0.0, 0.3},
- },
-
- // Turret
- {
- // Pot Offset
- 0.0,
- {Values::kZeroingSampleSize,
- Values::kTurretEncoderIndexDifference, 0.0, 0.3},
- },
-
- // Hood
- {
- // Pot Offset
- 0.0,
- {Values::kZeroingSampleSize, Values::kHoodEncoderIndexDifference,
- 0.0, 0.3},
- },
- 0.0, // down error
- "practice",
- };
+ intake->pot_offset = 0;
+ turret->pot_offset = 0;
+ hood->pot_offset = 0.1;
+ r->down_error = 0;
+ r->vision_name = "practice";
break;
default:
LOG(FATAL, "unknown team #%" PRIu16 "\n", team);
}
+
+ return r;
}
const Values *DoGetValues() {