Switch all robots over to use EventLoop
Stop using the old QueueGroup constructor for ControlLoop
Change-Id: I027febf86e75399a97cdb4dc50dbc475705e0393
diff --git a/frc971/codelab/BUILD b/frc971/codelab/BUILD
index 252e01d..0fe9205 100644
--- a/frc971/codelab/BUILD
+++ b/frc971/codelab/BUILD
@@ -1,39 +1,40 @@
-package(default_visibility = ['//visibility:public'])
+package(default_visibility = ["//visibility:public"])
-load('//aos/build:queues.bzl', 'queue_library')
+load("//aos/build:queues.bzl", "queue_library")
cc_binary(
- name = 'basic_test',
- srcs = ['basic_test.cc'],
- deps = [
- ':basic_queue',
- ':basic',
- '//aos/testing:googletest',
- '//aos:queues',
- '//aos/controls:control_loop_test',
- '//frc971/control_loops:state_feedback_loop',
- '//frc971/control_loops:team_number_test_environment',
- ],
- testonly = 1,
+ name = "basic_test",
+ testonly = 1,
+ srcs = ["basic_test.cc"],
+ deps = [
+ ":basic",
+ ":basic_queue",
+ "//aos:queues",
+ "//aos/controls:control_loop_test",
+ "//aos/events:shm-event-loop",
+ "//aos/testing:googletest",
+ "//frc971/control_loops:state_feedback_loop",
+ "//frc971/control_loops:team_number_test_environment",
+ ],
)
cc_library(
- name = 'basic',
- srcs = ['basic.cc'],
- hdrs = ['basic.h'],
- deps = [
- ':basic_queue',
- '//aos/controls:control_loop',
- ],
+ name = "basic",
+ srcs = ["basic.cc"],
+ hdrs = ["basic.h"],
+ deps = [
+ ":basic_queue",
+ "//aos/controls:control_loop",
+ ],
)
queue_library(
- name = 'basic_queue',
- srcs = [
- 'basic.q',
- ],
- deps = [
- '//aos/controls:control_loop_queues',
- '//frc971/control_loops:queues',
- ],
+ name = "basic_queue",
+ srcs = [
+ "basic.q",
+ ],
+ deps = [
+ "//aos/controls:control_loop_queues",
+ "//frc971/control_loops:queues",
+ ],
)
diff --git a/frc971/codelab/basic.cc b/frc971/codelab/basic.cc
index 536384c..d06e285 100644
--- a/frc971/codelab/basic.cc
+++ b/frc971/codelab/basic.cc
@@ -3,8 +3,8 @@
namespace frc971 {
namespace codelab {
-Basic::Basic(BasicQueue *my_basic_queue)
- : aos::controls::ControlLoop<BasicQueue>(my_basic_queue) {}
+Basic::Basic(::aos::EventLoop *event_loop, const ::std::string &name)
+ : aos::controls::ControlLoop<BasicQueue>(event_loop, name) {}
void Basic::RunIteration(const BasicQueue::Goal *goal,
const BasicQueue::Position *position,
diff --git a/frc971/codelab/basic.h b/frc971/codelab/basic.h
index 0332168..6f33718 100644
--- a/frc971/codelab/basic.h
+++ b/frc971/codelab/basic.h
@@ -43,7 +43,8 @@
// - Read basic.q, and familiarize yourself on the inputs and types involved.
class Basic : public ::aos::controls::ControlLoop<BasicQueue> {
public:
- explicit Basic(BasicQueue *my_basic_queue = &basic_queue);
+ explicit Basic(::aos::EventLoop *event_loop,
+ const ::std::string &name = ".frc971.codelab.basic_queue");
protected:
void RunIteration(const BasicQueue::Goal *goal,
diff --git a/frc971/codelab/basic_test.cc b/frc971/codelab/basic_test.cc
index 5132407..2dc8dea 100644
--- a/frc971/codelab/basic_test.cc
+++ b/frc971/codelab/basic_test.cc
@@ -6,6 +6,7 @@
#include <memory>
#include "aos/controls/control_loop_test.h"
+#include "aos/events/shm-event-loop.h"
#include "aos/queue.h"
#include "frc971/codelab/basic.q.h"
#include "frc971/control_loops/team_number_test_environment.h"
@@ -65,7 +66,7 @@
".frc971.codelab.basic_queue.position",
".frc971.codelab.basic_queue.output",
".frc971.codelab.basic_queue.status"),
- basic_loop_(&basic_queue_) {
+ basic_loop_(&event_loop_, ".frc971.codelab.basic_queue") {
set_team_id(control_loops::testing::kTeamNumber);
}
@@ -81,6 +82,7 @@
}
BasicQueue basic_queue_;
+ ::aos::ShmEventLoop event_loop_;
Basic basic_loop_;
BasicSimulation basic_simulation_;
};
diff --git a/frc971/control_loops/drivetrain/drivetrain.cc b/frc971/control_loops/drivetrain/drivetrain.cc
index 27a0a76..a06bc3b 100644
--- a/frc971/control_loops/drivetrain/drivetrain.cc
+++ b/frc971/control_loops/drivetrain/drivetrain.cc
@@ -29,11 +29,11 @@
namespace control_loops {
namespace drivetrain {
-DrivetrainLoop::DrivetrainLoop(
- const DrivetrainConfig<double> &dt_config,
- ::frc971::control_loops::DrivetrainQueue *my_drivetrain)
+DrivetrainLoop::DrivetrainLoop(const DrivetrainConfig<double> &dt_config,
+ ::aos::EventLoop *event_loop,
+ const ::std::string &name)
: aos::controls::ControlLoop<::frc971::control_loops::DrivetrainQueue>(
- my_drivetrain),
+ event_loop, name),
dt_config_(dt_config),
kf_(dt_config_.make_kf_drivetrain_loop()),
dt_openloop_(dt_config_, &kf_),
diff --git a/frc971/control_loops/drivetrain/drivetrain.h b/frc971/control_loops/drivetrain/drivetrain.h
index 9396aed..a357eab 100644
--- a/frc971/control_loops/drivetrain/drivetrain.h
+++ b/frc971/control_loops/drivetrain/drivetrain.h
@@ -22,9 +22,8 @@
// Constructs a control loop which can take a Drivetrain or defaults to the
// drivetrain at frc971::control_loops::drivetrain
explicit DrivetrainLoop(
- const DrivetrainConfig<double> &dt_config,
- ::frc971::control_loops::DrivetrainQueue *my_drivetrain =
- &::frc971::control_loops::drivetrain_queue);
+ const DrivetrainConfig<double> &dt_config, ::aos::EventLoop *event_loop,
+ const ::std::string &name = ".frc971.control_loops.drivetrain_queue");
int ControllerIndexFromGears();
diff --git a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
index bb5d5d9..5c1a8b4 100644
--- a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
+++ b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
@@ -103,11 +103,11 @@
// TODO(aschuh) Do we want to test the clutch one too?
DrivetrainSimulation()
: drivetrain_plant_(new DrivetrainPlant(MakeDrivetrainPlant())),
- my_drivetrain_queue_(".frc971.control_loops.drivetrain",
- ".frc971.control_loops.drivetrain.goal",
- ".frc971.control_loops.drivetrain.position",
- ".frc971.control_loops.drivetrain.output",
- ".frc971.control_loops.drivetrain.status"),
+ my_drivetrain_queue_(".frc971.control_loops.drivetrain_queue",
+ ".frc971.control_loops.drivetrain_queue.goal",
+ ".frc971.control_loops.drivetrain_queue.position",
+ ".frc971.control_loops.drivetrain_queue.output",
+ ".frc971.control_loops.drivetrain_queue.status"),
gyro_reading_(::frc971::sensors::gyro_reading.name()) {
Reinitialize();
last_U_.setZero();
@@ -219,17 +219,18 @@
// is no longer valid.
::frc971::control_loops::DrivetrainQueue my_drivetrain_queue_;
+ ::aos::ShmEventLoop event_loop_;
// Create a loop and simulation plant.
DrivetrainLoop drivetrain_motor_;
DrivetrainSimulation drivetrain_motor_plant_;
DrivetrainTest()
- : my_drivetrain_queue_(".frc971.control_loops.drivetrain",
- ".frc971.control_loops.drivetrain.goal",
- ".frc971.control_loops.drivetrain.position",
- ".frc971.control_loops.drivetrain.output",
- ".frc971.control_loops.drivetrain.status"),
- drivetrain_motor_(GetDrivetrainConfig(), &my_drivetrain_queue_),
+ : my_drivetrain_queue_(".frc971.control_loops.drivetrain_queue",
+ ".frc971.control_loops.drivetrain_queue.goal",
+ ".frc971.control_loops.drivetrain_queue.position",
+ ".frc971.control_loops.drivetrain_queue.output",
+ ".frc971.control_loops.drivetrain_queue.status"),
+ drivetrain_motor_(GetDrivetrainConfig(), &event_loop_),
drivetrain_motor_plant_() {
::frc971::sensors::gyro_reading.Clear();
set_battery_voltage(12.0);