Create an enum for sender errors
Will replace usages of bools, and will now currently only be used
for indicating that messages were sent too fast
After we merge this commit we will replace this enum with a general
Status class for all of aos, similar to absl::Status.
Change-Id: I4b5b2e7685744b3c6826a241cd3c84190eaa96ee
Signed-off-by: milind-u <milind.upadhyay@gmail.com>
diff --git a/y2016/control_loops/shooter/shooter.cc b/y2016/control_loops/shooter/shooter.cc
index 8b719c3..d317d4f 100644
--- a/y2016/control_loops/shooter/shooter.cc
+++ b/y2016/control_loops/shooter/shooter.cc
@@ -186,12 +186,12 @@
output_builder.add_push_to_shooter(shoot);
}
- output->Send(output_builder.Finish());
+ output->CheckOk(output->Send(output_builder.Finish()));
}
status_builder.add_shots(shots_);
- status->Send(status_builder.Finish());
+ (void)status->Send(status_builder.Finish());
}
} // namespace shooter
diff --git a/y2016/control_loops/shooter/shooter_lib_test.cc b/y2016/control_loops/shooter/shooter_lib_test.cc
index 6934a75..46b96c0 100644
--- a/y2016/control_loops/shooter/shooter_lib_test.cc
+++ b/y2016/control_loops/shooter/shooter_lib_test.cc
@@ -76,7 +76,8 @@
position_builder.add_theta_left(shooter_plant_left_->Y(0, 0));
position_builder.add_theta_right(shooter_plant_right_->Y(0, 0));
- builder.Send(position_builder.Finish());
+ EXPECT_EQ(builder.Send(position_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
void set_left_voltage_offset(double voltage_offset) {
@@ -172,7 +173,8 @@
auto builder = shooter_goal_sender_.MakeBuilder();
Goal::Builder goal_builder = builder.MakeBuilder<Goal>();
goal_builder.add_angular_velocity(0.0);
- EXPECT_TRUE(builder.Send(goal_builder.Finish()));
+ EXPECT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(dt() * 3 / 2);
@@ -193,7 +195,8 @@
auto builder = shooter_goal_sender_.MakeBuilder();
Goal::Builder goal_builder = builder.MakeBuilder<Goal>();
goal_builder.add_angular_velocity(450.0);
- EXPECT_TRUE(builder.Send(goal_builder.Finish()));
+ EXPECT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(1));
@@ -204,7 +207,8 @@
auto builder = shooter_goal_sender_.MakeBuilder();
Goal::Builder goal_builder = builder.MakeBuilder<Goal>();
goal_builder.add_angular_velocity(0.0);
- EXPECT_TRUE(builder.Send(goal_builder.Finish()));
+ EXPECT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// Make sure we don't apply voltage on spin-down.
@@ -230,7 +234,8 @@
auto builder = shooter_goal_sender_.MakeBuilder();
Goal::Builder goal_builder = builder.MakeBuilder<Goal>();
goal_builder.add_angular_velocity(20.0);
- EXPECT_TRUE(builder.Send(goal_builder.Finish()));
+ EXPECT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// Cause problems by adding a voltage error on one side.
shooter_plant_.set_right_voltage_offset(-4.0);
@@ -267,7 +272,8 @@
auto builder = shooter_goal_sender_.MakeBuilder();
Goal::Builder goal_builder = builder.MakeBuilder<Goal>();
goal_builder.add_angular_velocity(200.0);
- EXPECT_TRUE(builder.Send(goal_builder.Finish()));
+ EXPECT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(5));
EXPECT_TRUE(shooter_output_fetcher_.Fetch());
diff --git a/y2016/control_loops/superstructure/superstructure.cc b/y2016/control_loops/superstructure/superstructure.cc
index 3ee7730..88dfd93 100644
--- a/y2016/control_loops/superstructure/superstructure.cc
+++ b/y2016/control_loops/superstructure/superstructure.cc
@@ -742,7 +742,7 @@
output_struct.traverse_down = unsafe_goal->traverse_down();
}
- output->Send(Output::Pack(*output->fbb(), &output_struct));
+ output->CheckOk(output->Send(Output::Pack(*output->fbb(), &output_struct)));
}
// Save debug/internal state.
@@ -827,7 +827,7 @@
status_builder.add_state(state_);
status_builder.add_is_collided(is_collided);
- status->Send(status_builder.Finish());
+ (void)status->Send(status_builder.Finish());
last_state_ = state_before_switch;
}
diff --git a/y2016/control_loops/superstructure/superstructure_lib_test.cc b/y2016/control_loops/superstructure/superstructure_lib_test.cc
index 49ae033..12ef0a2 100644
--- a/y2016/control_loops/superstructure/superstructure_lib_test.cc
+++ b/y2016/control_loops/superstructure/superstructure_lib_test.cc
@@ -166,7 +166,8 @@
position_builder.add_shoulder(shoulder_offset);
position_builder.add_wrist(wrist_offset);
- builder.Send(position_builder.Finish());
+ EXPECT_EQ(builder.Send(position_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
double shoulder_angle() const { return arm_plant_->X(0, 0); }
@@ -417,7 +418,8 @@
goal_builder.add_max_angular_acceleration_intake(20);
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(5));
@@ -440,7 +442,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// Give it a lot of time to get there.
@@ -466,7 +469,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(10));
@@ -493,7 +497,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(10));
@@ -521,7 +526,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(10));
@@ -550,7 +556,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(10));
@@ -585,7 +592,8 @@
goal_builder.add_angle_shoulder(constants::Values::kShoulderRange.upper);
goal_builder.add_angle_wrist(constants::Values::kWristRange.upper +
constants::Values::kShoulderRange.upper);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// We have to wait for it to put the elevator in a safe position as well.
RunFor(chrono::seconds(15));
@@ -608,7 +616,8 @@
goal_builder.add_angle_intake(constants::Values::kIntakeRange.lower);
goal_builder.add_angle_shoulder(constants::Values::kShoulderRange.lower);
goal_builder.add_angle_wrist(0.0);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// We have to wait for it to put the superstructure in a safe position as
// well.
@@ -633,7 +642,8 @@
goal_builder.add_angle_intake(constants::Values::kIntakeRange.lower + 0.3);
goal_builder.add_angle_shoulder(constants::Values::kShoulderRange.upper);
goal_builder.add_angle_wrist(0.0);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(15));
@@ -659,7 +669,8 @@
goal_builder.add_angle_shoulder(constants::Values::kShoulderRange.lower +
0.03);
goal_builder.add_angle_wrist(constants::Values::kWristRange.lower + 0.03);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::milliseconds(100));
@@ -697,7 +708,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// Expected states to cycle through and check in order.
@@ -769,7 +781,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// Expected states to cycle through and check in order.
@@ -846,7 +859,8 @@
goal_builder.add_angle_intake(0.0);
goal_builder.add_angle_shoulder(0.0);
goal_builder.add_angle_wrist(0.0);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(8));
@@ -870,7 +884,8 @@
goal_builder.add_angle_shoulder(
constants::Values::kShoulderEncoderIndexDifference * 10);
goal_builder.add_angle_wrist(0.0);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// Run disabled for 2 seconds
@@ -925,7 +940,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(6));
@@ -945,7 +961,8 @@
goal_builder.add_max_angular_acceleration_shoulder(1);
goal_builder.add_max_angular_velocity_wrist(1);
goal_builder.add_max_angular_acceleration_wrist(1);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// TODO(austin): The profile isn't feasible, so when we try to track it, we
@@ -974,7 +991,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(6));
@@ -994,7 +1012,8 @@
goal_builder.add_max_angular_acceleration_shoulder(1);
goal_builder.add_max_angular_velocity_wrist(1);
goal_builder.add_max_angular_acceleration_wrist(1);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
superstructure_plant_.set_peak_intake_acceleration(1.20);
@@ -1021,7 +1040,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(6));
@@ -1042,7 +1062,8 @@
goal_builder.add_max_angular_acceleration_shoulder(1);
goal_builder.add_max_angular_velocity_wrist(1);
goal_builder.add_max_angular_acceleration_wrist(1);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
superstructure_plant_.set_peak_intake_acceleration(1.05);
@@ -1070,7 +1091,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(6));
@@ -1091,7 +1113,8 @@
goal_builder.add_max_angular_acceleration_shoulder(100);
goal_builder.add_max_angular_velocity_wrist(1);
goal_builder.add_max_angular_acceleration_wrist(100);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
superstructure_plant_.set_peak_intake_velocity(4.65);
@@ -1118,7 +1141,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(6));
@@ -1138,7 +1162,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(1);
goal_builder.add_max_angular_acceleration_wrist(100);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
superstructure_plant_.set_peak_intake_velocity(1.0);
@@ -1166,7 +1191,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(6));
@@ -1187,7 +1213,8 @@
goal_builder.add_max_angular_acceleration_shoulder(1.0);
goal_builder.add_max_angular_velocity_wrist(10.0);
goal_builder.add_max_angular_acceleration_wrist(160.0);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
superstructure_plant_.set_peak_intake_velocity(1.0);
@@ -1215,7 +1242,8 @@
goal_builder.add_angle_shoulder(
constants::Values::kShoulderRange.lower); // Down
goal_builder.add_angle_wrist(0.0); // Stowed
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(15));
@@ -1227,7 +1255,8 @@
constants::Values::kIntakeRange.upper); // stowed
goal_builder.add_angle_shoulder(M_PI / 4.0); // in the collision area
goal_builder.add_angle_wrist(M_PI / 2.0); // down
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(5));
@@ -1259,7 +1288,8 @@
constants::Values::kIntakeRange.upper); // stowed
goal_builder.add_angle_shoulder(M_PI / 2.0); // in the collision area
goal_builder.add_angle_wrist(M_PI); // forward
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(5));
@@ -1280,7 +1310,8 @@
goal_builder.add_angle_intake(0.0);
goal_builder.add_angle_shoulder(0.0);
goal_builder.add_angle_wrist(M_PI); // intentionally asking for forward
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(15));
@@ -1307,7 +1338,8 @@
goal_builder.add_angle_intake(0.0);
goal_builder.add_angle_shoulder(M_PI * 0.5);
goal_builder.add_angle_wrist(0.0);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(6));
@@ -1348,7 +1380,8 @@
goal_builder.add_angle_intake(0.0);
goal_builder.add_angle_shoulder(constants::Values::kShoulderRange.lower);
goal_builder.add_angle_wrist(0.0);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(6));
@@ -1392,7 +1425,8 @@
goal_builder.add_angle_intake(0.0);
goal_builder.add_angle_shoulder(constants::Values::kShoulderRange.lower);
goal_builder.add_angle_wrist(0.0); // intentionally asking for forward
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(6));
@@ -1421,7 +1455,8 @@
goal_builder.add_angle_intake(0.0);
goal_builder.add_angle_shoulder(M_PI * 0.25);
goal_builder.add_angle_wrist(0.0);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(8));
@@ -1438,7 +1473,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// Wait until we hit the transition point.
@@ -1462,7 +1498,8 @@
goal_builder.add_angle_intake(0.0);
goal_builder.add_angle_shoulder(0.0);
goal_builder.add_angle_wrist(0.0);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(8));
@@ -1479,7 +1516,8 @@
goal_builder.add_max_angular_acceleration_shoulder(20);
goal_builder.add_max_angular_velocity_wrist(20);
goal_builder.add_max_angular_acceleration_wrist(20);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// Wait until we hit the transition point.