Convert aos over to flatbuffers

Everything builds, and all the tests pass.  I suspect that some entries
are missing from the config files, but those will be found pretty
quickly on startup.

There is no logging or live introspection of queue messages.

Change-Id: I496ee01ed68f202c7851bed7e8786cee30df29f5
diff --git a/y2014/actors/shoot_actor.cc b/y2014/actors/shoot_actor.cc
index 7fb4c05..58df186 100644
--- a/y2014/actors/shoot_actor.cc
+++ b/y2014/actors/shoot_actor.cc
@@ -4,10 +4,11 @@
 
 #include "aos/logging/logging.h"
 
-#include "frc971/control_loops/drivetrain/drivetrain.q.h"
 #include "y2014/constants.h"
-#include "y2014/control_loops/claw/claw.q.h"
-#include "y2014/control_loops/shooter/shooter.q.h"
+#include "y2014/control_loops/claw/claw_goal_generated.h"
+#include "y2014/control_loops/claw/claw_status_generated.h"
+#include "y2014/control_loops/shooter/shooter_goal_generated.h"
+#include "y2014/control_loops/shooter/shooter_status_generated.h"
 
 namespace y2014 {
 namespace actors {
@@ -17,26 +18,24 @@
 constexpr double ShootActor::kClawShootingSeparationGoal;
 
 ShootActor::ShootActor(::aos::EventLoop *event_loop)
-    : ::aos::common::actions::ActorBase<actors::ShootActionQueueGroup>(
-          event_loop, ".y2014.actors.shoot_action"),
+    : ::aos::common::actions::ActorBase<aos::common::actions::Goal>(
+          event_loop, "/shoot_action"),
       claw_goal_fetcher_(
-          event_loop->MakeFetcher<::y2014::control_loops::ClawQueue::Goal>(
-              ".y2014.control_loops.claw_queue.goal")),
+          event_loop->MakeFetcher<::y2014::control_loops::claw::Goal>("/claw")),
       claw_status_fetcher_(
-          event_loop->MakeFetcher<::y2014::control_loops::ClawQueue::Status>(
-              ".y2014.control_loops.claw_queue.status")),
+          event_loop->MakeFetcher<::y2014::control_loops::claw::Status>(
+              "/claw")),
       claw_goal_sender_(
-          event_loop->MakeSender<::y2014::control_loops::ClawQueue::Goal>(
-              ".y2014.control_loops.claw_queue.goal")),
+          event_loop->MakeSender<::y2014::control_loops::claw::Goal>("/claw")),
       shooter_status_fetcher_(
-          event_loop->MakeFetcher<::y2014::control_loops::ShooterQueue::Status>(
-              ".y2014.control_loops.shooter_queue.status")),
+          event_loop->MakeFetcher<::y2014::control_loops::shooter::Status>(
+              "/shooter")),
       shooter_goal_fetcher_(
-          event_loop->MakeFetcher<::y2014::control_loops::ShooterQueue::Goal>(
-              ".y2014.control_loops.shooter_queue.goal")),
+          event_loop->MakeFetcher<::y2014::control_loops::shooter::Goal>(
+              "/shooter")),
       shooter_goal_sender_(
-          event_loop->MakeSender<::y2014::control_loops::ShooterQueue::Goal>(
-              ".y2014.control_loops.shooter_queue.goal")) {}
+          event_loop->MakeSender<::y2014::control_loops::shooter::Goal>(
+              "/shooter")) {}
 
 double ShootActor::SpeedToAngleOffset(double speed) {
   const constants::Values &values = constants::GetValues();
@@ -52,14 +51,17 @@
     // turn it off.
     return true;
   } else {
-    auto goal_message = claw_goal_sender_.MakeMessage();
+    auto builder = claw_goal_sender_.MakeBuilder();
 
-    goal_message->bottom_angle = claw_goal_fetcher_->bottom_angle;
-    goal_message->separation_angle = claw_goal_fetcher_->separation_angle;
-    goal_message->intake = 0.0;
-    goal_message->centering = 0.0;
+    control_loops::claw::Goal::Builder claw_builder =
+        builder.MakeBuilder<control_loops::claw::Goal>();
 
-    if (!goal_message.Send()) {
+    claw_builder.add_bottom_angle(claw_goal_fetcher_->bottom_angle());
+    claw_builder.add_separation_angle(claw_goal_fetcher_->separation_angle());
+    claw_builder.add_intake(0.0);
+    claw_builder.add_centering(0.0);
+
+    if (!builder.Send(claw_builder.Finish())) {
       AOS_LOG(WARNING, "sending claw goal failed\n");
       return false;
     }
@@ -67,7 +69,7 @@
   return true;
 }
 
-bool ShootActor::RunAction(const double&) {
+bool ShootActor::RunAction(const aos::common::actions::DoubleParam *) {
   InnerRunAction();
 
   // Now do our 'finally' block and make sure that we aren't requesting shots
@@ -76,12 +78,15 @@
   if (shooter_goal_fetcher_.get() == nullptr) {
     return true;
   }
-  auto goal_message = shooter_goal_sender_.MakeMessage();
-  goal_message->shot_power = shooter_goal_fetcher_->shot_power;
-  goal_message->shot_requested = false;
-  goal_message->unload_requested = false;
-  goal_message->load_requested = false;
-  if (!goal_message.Send()) {
+  auto builder = shooter_goal_sender_.MakeBuilder();
+  control_loops::shooter::Goal::Builder shooter_builder =
+      builder.MakeBuilder<control_loops::shooter::Goal>();
+
+  shooter_builder.add_shot_power(shooter_goal_fetcher_->shot_power());
+  shooter_builder.add_shot_requested(false);
+  shooter_builder.add_unload_requested(false);
+  shooter_builder.add_load_requested(false);
+  if (!builder.Send(shooter_builder.Finish())) {
     AOS_LOG(WARNING, "sending shooter goal failed\n");
     return false;
   }
@@ -104,16 +109,18 @@
   shooter_status_fetcher_.Fetch();
   // Get the number of shots fired up to this point. This should not be updated
   // again for another few cycles.
-  previous_shots_ = shooter_status_fetcher_->shots;
+  previous_shots_ = shooter_status_fetcher_->shots();
   // Shoot!
   shooter_goal_fetcher_.Fetch();
   {
-    auto goal_message = shooter_goal_sender_.MakeMessage();
-    goal_message->shot_power = shooter_goal_fetcher_->shot_power;
-    goal_message->shot_requested = true;
-    goal_message->unload_requested = false;
-    goal_message->load_requested = false;
-    if (!goal_message.Send()) {
+    auto builder = shooter_goal_sender_.MakeBuilder();
+    control_loops::shooter::Goal::Builder goal_builder =
+        builder.MakeBuilder<control_loops::shooter::Goal>();
+    goal_builder.add_shot_power(shooter_goal_fetcher_->shot_power());
+    goal_builder.add_shot_requested(true);
+    goal_builder.add_unload_requested(false);
+    goal_builder.add_load_requested(false);
+    if (!builder.Send(goal_builder.Finish())) {
       AOS_LOG(WARNING, "sending shooter goal failed\n");
       return;
     }
@@ -128,20 +135,20 @@
 bool ShootActor::ClawIsReady() {
   claw_goal_fetcher_.Fetch();
 
-  bool ans = claw_status_fetcher_->zeroed &&
-             (::std::abs(claw_status_fetcher_->bottom_velocity) < 0.5) &&
-             (::std::abs(claw_status_fetcher_->bottom -
-                         claw_goal_fetcher_->bottom_angle) < 0.10) &&
-             (::std::abs(claw_status_fetcher_->separation -
-                         claw_goal_fetcher_->separation_angle) < 0.4);
+  bool ans = claw_status_fetcher_->zeroed() &&
+             (::std::abs(claw_status_fetcher_->bottom_velocity()) < 0.5) &&
+             (::std::abs(claw_status_fetcher_->bottom() -
+                         claw_goal_fetcher_->bottom_angle()) < 0.10) &&
+             (::std::abs(claw_status_fetcher_->separation() -
+                         claw_goal_fetcher_->separation_angle()) < 0.4);
   AOS_LOG(DEBUG,
           "Claw is %sready zeroed %d bottom_velocity %f bottom %f sep %f\n",
-          ans ? "" : "not ", claw_status_fetcher_->zeroed,
-          ::std::abs(claw_status_fetcher_->bottom_velocity),
-          ::std::abs(claw_status_fetcher_->bottom -
-                     claw_goal_fetcher_->bottom_angle),
-          ::std::abs(claw_status_fetcher_->separation -
-                     claw_goal_fetcher_->separation_angle));
+          ans ? "" : "not ", claw_status_fetcher_->zeroed(),
+          ::std::abs(claw_status_fetcher_->bottom_velocity()),
+          ::std::abs(claw_status_fetcher_->bottom() -
+                     claw_goal_fetcher_->bottom_angle()),
+          ::std::abs(claw_status_fetcher_->separation() -
+                     claw_goal_fetcher_->separation_angle()));
   return ans;
 }
 
@@ -149,14 +156,14 @@
   shooter_goal_fetcher_.Fetch();
 
   AOS_LOG(DEBUG, "Power error is %f - %f -> %f, ready %d\n",
-          shooter_status_fetcher_->hard_stop_power,
-          shooter_goal_fetcher_->shot_power,
-          ::std::abs(shooter_status_fetcher_->hard_stop_power -
-                     shooter_goal_fetcher_->shot_power),
-          shooter_status_fetcher_->ready);
-  return (::std::abs(shooter_status_fetcher_->hard_stop_power -
-                     shooter_goal_fetcher_->shot_power) < 1.0) &&
-         shooter_status_fetcher_->ready;
+          shooter_status_fetcher_->hard_stop_power(),
+          shooter_goal_fetcher_->shot_power(),
+          ::std::abs(shooter_status_fetcher_->hard_stop_power() -
+                     shooter_goal_fetcher_->shot_power()),
+          shooter_status_fetcher_->ready());
+  return (::std::abs(shooter_status_fetcher_->hard_stop_power() -
+                     shooter_goal_fetcher_->shot_power()) < 1.0) &&
+         shooter_status_fetcher_->ready();
 }
 
 bool ShootActor::DoneSetupShot() {
@@ -174,7 +181,7 @@
 
 bool ShootActor::DonePreShotOpen() {
   claw_status_fetcher_.Fetch();
-  if (claw_status_fetcher_->separation > kClawShootingSeparation) {
+  if (claw_status_fetcher_->separation() > kClawShootingSeparation) {
     AOS_LOG(INFO, "Opened up enough to shoot.\n");
     return true;
   }
@@ -184,7 +191,7 @@
 bool ShootActor::DoneShot() {
   shooter_status_fetcher_.Fetch();
   if (shooter_status_fetcher_.get() &&
-      shooter_status_fetcher_->shots > previous_shots_) {
+      shooter_status_fetcher_->shots() > previous_shots_) {
     AOS_LOG(INFO, "Shot succeeded!\n");
     return true;
   }