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_bot3/joystick_reader.cc b/y2014_bot3/joystick_reader.cc
index dc43f30..47546a7 100644
--- a/y2014_bot3/joystick_reader.cc
+++ b/y2014_bot3/joystick_reader.cc
@@ -11,12 +11,10 @@
#include "aos/time/time.h"
#include "aos/input/drivetrain_input.h"
-#include "frc971/autonomous/auto.q.h"
#include "frc971/autonomous/base_autonomous_actor.h"
-#include "frc971/control_loops/drivetrain/drivetrain.q.h"
-#include "frc971/queues/gyro.q.h"
+#include "frc971/control_loops/drivetrain/drivetrain_goal_generated.h"
#include "y2014_bot3/control_loops/drivetrain/drivetrain_base.h"
-#include "y2014_bot3/control_loops/rollers/rollers.q.h"
+#include "y2014_bot3/control_loops/rollers/rollers_goal_generated.h"
using ::aos::input::driver_station::ButtonLocation;
using ::aos::input::driver_station::POVLocation;
@@ -47,9 +45,8 @@
Reader(::aos::EventLoop *event_loop)
: ::aos::input::JoystickInput(event_loop),
rollers_goal_sender_(
- event_loop
- ->MakeSender<::y2014_bot3::control_loops::RollersQueue::Goal>(
- ".y2014_bot3.control_loops.rollers_queue.goal")),
+ event_loop->MakeSender<::y2014_bot3::control_loops::rollers::Goal>(
+ "/rollers")),
autonomous_action_factory_(
::frc971::autonomous::BaseAutonomousActor::MakeFactory(
event_loop)) {
@@ -89,20 +86,21 @@
}
// Rollers.
- auto rollers_goal = rollers_goal_sender_.MakeMessage();
- rollers_goal->Zero();
+ auto builder = rollers_goal_sender_.MakeBuilder();
+ control_loops::rollers::GoalT rollers_goal;
if (data.IsPressed(kFrontRollersIn)) {
- rollers_goal->intake = 1;
+ rollers_goal.intake = 1;
} else if (data.IsPressed(kFrontRollersOut)) {
- rollers_goal->low_spit = 1;
+ rollers_goal.low_spit = 1;
} else if (data.IsPressed(kBackRollersIn)) {
- rollers_goal->intake = -1;
+ rollers_goal.intake = -1;
} else if (data.IsPressed(kBackRollersOut)) {
- rollers_goal->low_spit = -1;
+ rollers_goal.low_spit = -1;
} else if (data.IsPressed(kHumanPlayer)) {
- rollers_goal->human_player = true;
+ rollers_goal.human_player = true;
}
- if (!rollers_goal.Send()) {
+ if (!builder.Send(control_loops::rollers::Goal::Pack(*builder.fbb(),
+ &rollers_goal))) {
AOS_LOG(WARNING, "Sending rollers values failed.\n");
}
}
@@ -110,7 +108,7 @@
private:
void StartAuto() {
AOS_LOG(INFO, "Starting auto mode.\n");
- ::frc971::autonomous::AutonomousActionParams params;
+ ::frc971::autonomous::AutonomousActionParamsT params;
params.mode = 0;
action_queue_.EnqueueAction(autonomous_action_factory_.Make(params));
}
@@ -129,7 +127,7 @@
::aos::common::actions::ActionQueue action_queue_;
::std::unique_ptr<DrivetrainInputReader> drivetrain_input_reader_;
- ::aos::Sender<::y2014_bot3::control_loops::RollersQueue::Goal>
+ ::aos::Sender<::y2014_bot3::control_loops::rollers::Goal>
rollers_goal_sender_;
::frc971::autonomous::BaseAutonomousActor::Factory autonomous_action_factory_;
@@ -142,7 +140,10 @@
int main() {
::aos::InitNRT(true);
- ::aos::ShmEventLoop event_loop;
+ aos::FlatbufferDetachedBuffer<aos::Configuration> config =
+ aos::configuration::ReadConfig("config.json");
+
+ ::aos::ShmEventLoop event_loop(&config.message());
::y2014_bot3::input::joysticks::Reader reader(&event_loop);
event_loop.Run();