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/frc971/wpilib/ADIS16448.cc b/frc971/wpilib/ADIS16448.cc
index c047cf9..4be346c 100644
--- a/frc971/wpilib/ADIS16448.cc
+++ b/frc971/wpilib/ADIS16448.cc
@@ -284,7 +284,8 @@
     IMUValuesBatch::Builder imu_values_batch_builder =
         builder.MakeBuilder<IMUValuesBatch>();
     imu_values_batch_builder.add_readings(readings_offset);
-    if (!builder.Send(imu_values_batch_builder.Finish())) {
+    if (builder.Send(imu_values_batch_builder.Finish()) !=
+        aos::RawSender::Error::kOk) {
       AOS_LOG(WARNING, "sending queue message failed\n");
     }
 
diff --git a/frc971/wpilib/ADIS16470.cc b/frc971/wpilib/ADIS16470.cc
index 151f3e0..b7b315b 100644
--- a/frc971/wpilib/ADIS16470.cc
+++ b/frc971/wpilib/ADIS16470.cc
@@ -263,7 +263,7 @@
   IMUValuesBatch::Builder imu_values_batch_builder =
       builder.MakeBuilder<IMUValuesBatch>();
   imu_values_batch_builder.add_readings(readings_offset);
-  builder.Send(imu_values_batch_builder.Finish());
+  builder.CheckOk(builder.Send(imu_values_batch_builder.Finish()));
 }
 
 void ADIS16470::DoInitializeStep() {
@@ -388,7 +388,7 @@
       IMUValuesBatch::Builder imu_batch_builder =
           builder.MakeBuilder<IMUValuesBatch>();
       imu_batch_builder.add_readings(readings_offset);
-      builder.Send(imu_batch_builder.Finish());
+      builder.CheckOk(builder.Send(imu_batch_builder.Finish()));
       if (success) {
         state_ = State::kRunning;
       } else {
diff --git a/frc971/wpilib/gyro_sender.cc b/frc971/wpilib/gyro_sender.cc
index 9f25d04..ac88acb 100644
--- a/frc971/wpilib/gyro_sender.cc
+++ b/frc971/wpilib/gyro_sender.cc
@@ -54,8 +54,8 @@
           AOS_LOG(INFO, "gyro initialized successfully\n");
 
           auto builder = uid_sender_.MakeBuilder();
-          builder.Send(
-              frc971::sensors::CreateUid(*builder.fbb(), gyro_.ReadPartID()));
+          builder.CheckOk(builder.Send(
+              frc971::sensors::CreateUid(*builder.fbb(), gyro_.ReadPartID())));
         }
         last_initialize_time_ = monotonic_now;
       }
@@ -117,7 +117,7 @@
             builder.MakeBuilder<sensors::GyroReading>();
         gyro_builder.add_angle(angle_);
         gyro_builder.add_velocity(angle_rate + zero_offset_ * kReadingRate);
-        builder.Send(gyro_builder.Finish());
+        builder.CheckOk(builder.Send(gyro_builder.Finish()));
       } else {
         // TODO(brian): Don't break without 6 seconds of standing still before
         // enabling. Ideas:
@@ -128,7 +128,7 @@
               builder.MakeBuilder<sensors::GyroReading>();
           gyro_builder.add_angle(0.0);
           gyro_builder.add_velocity(0.0);
-          builder.Send(gyro_builder.Finish());
+          builder.CheckOk(builder.Send(gyro_builder.Finish()));
         }
         zeroing_data_.AddData(new_angle);
 
diff --git a/frc971/wpilib/joystick_sender.cc b/frc971/wpilib/joystick_sender.cc
index 5661933..fab3d05 100644
--- a/frc971/wpilib/joystick_sender.cc
+++ b/frc971/wpilib/joystick_sender.cc
@@ -111,7 +111,8 @@
         }
         joystick_state_builder.add_team_id(team_id_);
 
-        if (!builder.Send(joystick_state_builder.Finish())) {
+        if (builder.Send(joystick_state_builder.Finish()) !=
+            aos::RawSender::Error::kOk) {
           AOS_LOG(WARNING, "sending joystick_state failed\n");
         }
       });
diff --git a/frc971/wpilib/loop_output_handler_test.cc b/frc971/wpilib/loop_output_handler_test.cc
index fcbcbb5..0701bf5 100644
--- a/frc971/wpilib/loop_output_handler_test.cc
+++ b/frc971/wpilib/loop_output_handler_test.cc
@@ -97,7 +97,8 @@
           LoopOutputHandlerTestOutput::Builder output_builder =
               builder.MakeBuilder<LoopOutputHandlerTestOutput>();
           output_builder.add_voltage(5.0);
-          EXPECT_TRUE(builder.Send(output_builder.Finish()));
+          EXPECT_EQ(builder.Send(output_builder.Finish()),
+                    aos::RawSender::Error::kOk);
 
           ++count;
         }
diff --git a/frc971/wpilib/pdp_fetcher.cc b/frc971/wpilib/pdp_fetcher.cc
index 62e0e37..0526806 100644
--- a/frc971/wpilib/pdp_fetcher.cc
+++ b/frc971/wpilib/pdp_fetcher.cc
@@ -45,7 +45,7 @@
   pdp_builder.add_power(pdp_->GetTotalPower());
   pdp_builder.add_currents(currents_offset);
 
-  if (!builder.Send(pdp_builder.Finish())) {
+  if (builder.Send(pdp_builder.Finish()) != aos::RawSender::Error::kOk) {
     AOS_LOG(WARNING, "sending pdp values failed\n");
   }
 }
diff --git a/frc971/wpilib/sensor_reader.cc b/frc971/wpilib/sensor_reader.cc
index f476e71..6c47214 100644
--- a/frc971/wpilib/sensor_reader.cc
+++ b/frc971/wpilib/sensor_reader.cc
@@ -110,7 +110,7 @@
 
   {
     auto builder = robot_state_sender_.MakeBuilder();
-    builder.Send(::frc971::wpilib::PopulateRobotState(&builder, my_pid_));
+    (void)builder.Send(::frc971::wpilib::PopulateRobotState(&builder, my_pid_));
   }
   RunIteration();
   if (dma_synchronizer_) {