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/y2019/actors/autonomous_actor.cc b/y2019/actors/autonomous_actor.cc
index 7622a64..ad5bd5b 100644
--- a/y2019/actors/autonomous_actor.cc
+++ b/y2019/actors/autonomous_actor.cc
@@ -98,7 +98,8 @@
localizer_control_builder.add_y(1.35 * turn_scalar);
localizer_control_builder.add_theta(M_PI);
localizer_control_builder.add_theta_uncertainty(0.00001);
- if (!builder.Send(localizer_control_builder.Finish())) {
+ if (builder.Send(localizer_control_builder.Finish()) !=
+ aos::RawSender::Error::kOk) {
AOS_LOG(ERROR, "Failed to reset localizer.\n");
}
}
diff --git a/y2019/actors/autonomous_actor.h b/y2019/actors/autonomous_actor.h
index af2a60f..c0792b8 100644
--- a/y2019/actors/autonomous_actor.h
+++ b/y2019/actors/autonomous_actor.h
@@ -153,7 +153,8 @@
superstructure_builder.add_intake(intake_offset);
superstructure_builder.add_suction(suction_offset);
- if (!builder.Send(superstructure_builder.Finish())) {
+ if (builder.Send(superstructure_builder.Finish()) !=
+ aos::RawSender::Error::kOk) {
AOS_LOG(ERROR, "Sending superstructure goal failed.\n");
}
}
diff --git a/y2019/control_loops/drivetrain/localized_drivetrain_test.cc b/y2019/control_loops/drivetrain/localized_drivetrain_test.cc
index 485dff6..4d6f84a 100644
--- a/y2019/control_loops/drivetrain/localized_drivetrain_test.cc
+++ b/y2019/control_loops/drivetrain/localized_drivetrain_test.cc
@@ -160,8 +160,10 @@
::std::get<0>(camera_delay_queue_.front()) <
monotonic_now() - camera_latency) {
auto builder = camera_sender_.MakeBuilder();
- ASSERT_TRUE(builder.Send(CameraFrame::Pack(
- *builder.fbb(), ::std::get<1>(camera_delay_queue_.front()).get())));
+ ASSERT_EQ(builder.Send(CameraFrame::Pack(
+ *builder.fbb(),
+ ::std::get<1>(camera_delay_queue_.front()).get())),
+ aos::RawSender::Error::kOk);
camera_delay_queue_.pop();
}
}
@@ -216,7 +218,8 @@
drivetrain_builder.add_left_goal(-1.0);
drivetrain_builder.add_right_goal(1.0);
- EXPECT_TRUE(builder.Send(drivetrain_builder.Finish()));
+ EXPECT_EQ(builder.Send(drivetrain_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(3));
VerifyNearGoal();
@@ -237,7 +240,8 @@
drivetrain_builder.add_left_goal(-1.0);
drivetrain_builder.add_right_goal(1.0);
- EXPECT_TRUE(builder.Send(drivetrain_builder.Finish()));
+ EXPECT_EQ(builder.Send(drivetrain_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(3));
VerifyNearGoal();
@@ -257,7 +261,8 @@
drivetrain_builder.add_left_goal(-1.0);
drivetrain_builder.add_right_goal(1.0);
- EXPECT_TRUE(builder.Send(drivetrain_builder.Finish()));
+ EXPECT_EQ(builder.Send(drivetrain_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(3));
VerifyNearGoal();
@@ -279,7 +284,8 @@
drivetrain_builder.add_left_goal(-1.0);
drivetrain_builder.add_right_goal(1.0);
- EXPECT_TRUE(builder.Send(drivetrain_builder.Finish()));
+ EXPECT_EQ(builder.Send(drivetrain_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(3));
// VerifyNearGoal succeeds because it is just checking wheel positions:
@@ -308,7 +314,8 @@
drivetrain_builder.add_left_goal(-1.0);
drivetrain_builder.add_right_goal(1.0);
- EXPECT_TRUE(builder.Send(drivetrain_builder.Finish()));
+ EXPECT_EQ(builder.Send(drivetrain_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
{
@@ -321,7 +328,8 @@
localizer_control_builder.add_y(drivetrain_plant_.state().y());
localizer_control_builder.add_theta(drivetrain_plant_.state()(2, 0));
- EXPECT_TRUE(builder.Send(localizer_control_builder.Finish()));
+ EXPECT_EQ(builder.Send(localizer_control_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(3));
VerifyNearGoal();
@@ -344,7 +352,8 @@
drivetrain_builder.add_left_goal(-1.0);
drivetrain_builder.add_right_goal(1.0);
- EXPECT_TRUE(builder.Send(drivetrain_builder.Finish()));
+ EXPECT_EQ(builder.Send(drivetrain_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(5));
VerifyNearGoal(4e-3);
@@ -373,7 +382,8 @@
frc971::control_loops::drivetrain::ControllerType::LINE_FOLLOWER);
drivetrain_builder.add_throttle(0.5);
- EXPECT_TRUE(builder.Send(drivetrain_builder.Finish()));
+ EXPECT_EQ(builder.Send(drivetrain_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(6));
diff --git a/y2019/control_loops/drivetrain/target_selector_test.cc b/y2019/control_loops/drivetrain/target_selector_test.cc
index 5933f3f..f33224b 100644
--- a/y2019/control_loops/drivetrain/target_selector_test.cc
+++ b/y2019/control_loops/drivetrain/target_selector_test.cc
@@ -39,8 +39,7 @@
TargetSelectorParamTest()
: configuration_(aos::configuration::ReadConfig("y2019/config.json")),
event_loop_factory_(&configuration_.message()),
- event_loop_(
- this->event_loop_factory_.MakeEventLoop("drivetrain")),
+ event_loop_(this->event_loop_factory_.MakeEventLoop("drivetrain")),
test_event_loop_(this->event_loop_factory_.MakeEventLoop("test")),
target_selector_hint_sender_(
test_event_loop_->MakeSender<
@@ -82,12 +81,14 @@
builder.MakeBuilder<superstructure::Goal>();
goal_builder.add_suction(suction_offset);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
{
auto builder = target_selector_hint_sender_.MakeBuilder();
- ASSERT_TRUE(builder.Send(drivetrain::CreateTargetSelectorHint(
- *builder.fbb(), GetParam().selection_hint)));
+ ASSERT_EQ(builder.Send(drivetrain::CreateTargetSelectorHint(
+ *builder.fbb(), GetParam().selection_hint)),
+ aos::RawSender::Error::kOk);
}
bool expect_target = GetParam().expect_target;
const State state = GetParam().state;
diff --git a/y2019/control_loops/superstructure/superstructure.cc b/y2019/control_loops/superstructure/superstructure.cc
index 9e7a5fe..e796f0b 100644
--- a/y2019/control_loops/superstructure/superstructure.cc
+++ b/y2019/control_loops/superstructure/superstructure.cc
@@ -119,7 +119,7 @@
output_struct.intake_roller_voltage = 0.0;
}
- output->Send(Output::Pack(*output->fbb(), &output_struct));
+ output->CheckOk(output->Send(Output::Pack(*output->fbb(), &output_struct)));
}
if (unsafe_goal) {
@@ -196,7 +196,7 @@
}
}
- status->Send(status_offset);
+ (void)status->Send(status_offset);
}
void Superstructure::SendColors(float red, float green, float blue) {
@@ -208,7 +208,8 @@
status_light_builder.add_green(green);
status_light_builder.add_blue(blue);
- if (!builder.Send(status_light_builder.Finish())) {
+ if (builder.Send(status_light_builder.Finish()) !=
+ aos::RawSender::Error::kOk) {
AOS_LOG(ERROR, "Failed to send lights.\n");
}
}
diff --git a/y2019/control_loops/superstructure/superstructure_lib_test.cc b/y2019/control_loops/superstructure/superstructure_lib_test.cc
index cabb4e2..d6b4f2d 100644
--- a/y2019/control_loops/superstructure/superstructure_lib_test.cc
+++ b/y2019/control_loops/superstructure/superstructure_lib_test.cc
@@ -7,6 +7,7 @@
#include "frc971/control_loops/control_loop_test.h"
#include "frc971/control_loops/position_sensor_sim.h"
#include "frc971/control_loops/team_number_test_environment.h"
+#include "glog/logging.h"
#include "gtest/gtest.h"
#include "y2019/constants.h"
#include "y2019/control_loops/superstructure/elevator/elevator_plant.h"
@@ -166,7 +167,8 @@
position_builder.add_stilts(stilts_offset);
position_builder.add_suction_pressure(simulated_pressure_);
- builder.Send(position_builder.Finish());
+ CHECK_EQ(builder.Send(position_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
double elevator_position() const { return elevator_plant_->X(0, 0); }
@@ -501,7 +503,8 @@
goal_builder.add_intake(intake_offset);
goal_builder.add_stilts(stilts_offset);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(10));
VerifyNearGoal();
@@ -550,7 +553,8 @@
goal_builder.add_intake(intake_offset);
goal_builder.add_stilts(stilts_offset);
- 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.
@@ -593,7 +597,8 @@
goal_builder.add_intake(intake_offset);
goal_builder.add_stilts(stilts_offset);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(8));
VerifyNearGoal();
@@ -630,7 +635,8 @@
goal_builder.add_intake(intake_offset);
goal_builder.add_stilts(stilts_offset);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
superstructure_plant_.set_peak_elevator_velocity(23.0);
superstructure_plant_.set_peak_elevator_acceleration(0.2);
@@ -682,7 +688,8 @@
goal_builder.add_intake(intake_offset);
goal_builder.add_stilts(stilts_offset);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
WaitUntilZeroed();
VerifyNearGoal();
@@ -743,7 +750,8 @@
goal_builder.add_intake(intake_offset);
goal_builder.add_stilts(stilts_offset);
- 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.
@@ -783,7 +791,8 @@
goal_builder.add_stilts(stilts_offset);
goal_builder.add_roller_voltage(6.0);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(5));
@@ -818,7 +827,8 @@
goal_builder.add_stilts(stilts_offset);
goal_builder.add_roller_voltage(6.0);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(chrono::seconds(5));
@@ -860,7 +870,8 @@
goal_builder.add_stilts(stilts_offset);
goal_builder.add_suction(suction_offset);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
RunFor(Vacuum::kTimeAtHigherVoltage - chrono::milliseconds(10));
@@ -904,7 +915,8 @@
goal_builder.add_stilts(stilts_offset);
goal_builder.add_suction(suction_offset);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// Verify that at 0 pressure after short time voltage is still high
@@ -954,7 +966,8 @@
goal_builder.add_stilts(stilts_offset);
goal_builder.add_suction(suction_offset);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
// Get a Gamepiece
@@ -991,7 +1004,8 @@
goal_builder.add_stilts(stilts_offset);
goal_builder.add_suction(suction_offset);
- ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+ ASSERT_EQ(builder.Send(goal_builder.Finish()),
+ aos::RawSender::Error::kOk);
}
superstructure_plant_.set_simulated_pressure(1.0);
diff --git a/y2019/joystick_reader.cc b/y2019/joystick_reader.cc
index a92dd90..51aeffb 100644
--- a/y2019/joystick_reader.cc
+++ b/y2019/joystick_reader.cc
@@ -283,7 +283,8 @@
control_loops::drivetrain::SelectionHint::NONE);
}
}
- if (!builder.Send(target_selector_hint_builder.Finish())) {
+ if (builder.Send(target_selector_hint_builder.Finish()) !=
+ aos::RawSender::Error::kOk) {
AOS_LOG(ERROR, "Failed to send target selector hint.\n");
}
}
@@ -297,7 +298,8 @@
localizer_control_builder.add_y(3.4);
localizer_control_builder.add_keep_current_theta(true);
- if (!builder.Send(localizer_control_builder.Finish())) {
+ if (builder.Send(localizer_control_builder.Finish()) !=
+ aos::RawSender::Error::kOk) {
AOS_LOG(ERROR, "Failed to reset localizer.\n");
}
}
@@ -311,7 +313,8 @@
localizer_control_builder.add_y(-3.4);
localizer_control_builder.add_keep_current_theta(true);
- if (!builder.Send(localizer_control_builder.Finish())) {
+ if (builder.Send(localizer_control_builder.Finish()) !=
+ aos::RawSender::Error::kOk) {
AOS_LOG(ERROR, "Failed to reset localizer.\n");
}
}
@@ -325,7 +328,8 @@
localizer_control_builder.add_y(3.4);
localizer_control_builder.add_theta(0.0);
- if (!builder.Send(localizer_control_builder.Finish())) {
+ if (builder.Send(localizer_control_builder.Finish()) !=
+ aos::RawSender::Error::kOk) {
AOS_LOG(ERROR, "Failed to reset localizer.\n");
}
}
@@ -339,7 +343,8 @@
localizer_control_builder.add_y(3.4);
localizer_control_builder.add_theta(M_PI);
- if (!builder.Send(localizer_control_builder.Finish())) {
+ if (builder.Send(localizer_control_builder.Finish()) !=
+ aos::RawSender::Error::kOk) {
AOS_LOG(ERROR, "Failed to reset localizer.\n");
}
}
@@ -353,7 +358,8 @@
localizer_control_builder.add_y(-3.4);
localizer_control_builder.add_theta(0.0);
- if (!builder.Send(localizer_control_builder.Finish())) {
+ if (builder.Send(localizer_control_builder.Finish()) !=
+ aos::RawSender::Error::kOk) {
AOS_LOG(ERROR, "Failed to reset localizer.\n");
}
}
@@ -367,7 +373,8 @@
localizer_control_builder.add_y(-3.4);
localizer_control_builder.add_theta(M_PI);
- if (!builder.Send(localizer_control_builder.Finish())) {
+ if (builder.Send(localizer_control_builder.Finish()) !=
+ aos::RawSender::Error::kOk) {
AOS_LOG(ERROR, "Failed to reset localizer.\n");
}
}
@@ -599,7 +606,8 @@
mutable_superstructure_goal->mutable_wrist()->mutate_unsafe_goal(
elevator_wrist_pos_.wrist);
- if (!main_superstructure_goal_builder.Send(superstructure_goal_offset)) {
+ if (main_superstructure_goal_builder.Send(superstructure_goal_offset) !=
+ aos::RawSender::Error::kOk) {
AOS_LOG(ERROR, "Sending superstructure goal failed.\n");
}
@@ -611,7 +619,8 @@
{
auto builder = camera_log_sender_.MakeBuilder();
- builder.Send(CreateCameraLog(*builder.fbb(), data.IsPressed(kCameraLog)));
+ (void)builder.Send(
+ CreateCameraLog(*builder.fbb(), data.IsPressed(kCameraLog)));
}
}
diff --git a/y2019/wpilib_interface.cc b/y2019/wpilib_interface.cc
index 885bc12..da076f2 100644
--- a/y2019/wpilib_interface.cc
+++ b/y2019/wpilib_interface.cc
@@ -247,7 +247,7 @@
drivetrain_builder.add_right_speed(-drivetrain_velocity_translate(
drivetrain_right_encoder_->GetPeriod()));
- builder.Send(drivetrain_builder.Finish());
+ builder.CheckOk(builder.Send(drivetrain_builder.Finish()));
}
const auto values = constants::GetValues();
@@ -308,7 +308,7 @@
position_builder.add_platform_right_detect(
!platform_right_detect_->Get());
- builder.Send(position_builder.Finish());
+ builder.CheckOk(builder.Send(position_builder.Finish()));
}
{
@@ -326,7 +326,7 @@
auto_mode_builder.add_mode(mode);
- builder.Send(auto_mode_builder.Finish());
+ builder.CheckOk(builder.Send(auto_mode_builder.Finish()));
}
}
@@ -457,7 +457,7 @@
.time_since_epoch())
.count());
camera_frame_builder.add_camera(received.camera_index);
- builder.Send(camera_frame_builder.Finish());
+ builder.CheckOk(builder.Send(camera_frame_builder.Finish()));
}
if (dummy_spi_) {
@@ -652,7 +652,7 @@
pcm_.Flush();
to_log_builder.add_read_solenoids(pcm_.GetAll());
- builder.Send(to_log_builder.Finish());
+ (void)builder.Send(to_log_builder.Finish());
}
status_light_fetcher_.Fetch();