Move LocalizerControl queue to event loops
Change-Id: Ic29f2daaf1cba7c7054f1e689c5051f23424fe07
diff --git a/frc971/autonomous/base_autonomous_actor.cc b/frc971/autonomous/base_autonomous_actor.cc
index f551898..7d7e12e 100644
--- a/frc971/autonomous/base_autonomous_actor.cc
+++ b/frc971/autonomous/base_autonomous_actor.cc
@@ -21,13 +21,13 @@
namespace autonomous {
BaseAutonomousActor::BaseAutonomousActor(
- AutonomousActionQueueGroup *s,
+ ::aos::EventLoop *event_loop, AutonomousActionQueueGroup *s,
const control_loops::drivetrain::DrivetrainConfig<double> &dt_config)
: aos::common::actions::ActorBase<AutonomousActionQueueGroup>(s),
dt_config_(dt_config),
initial_drivetrain_({0.0, 0.0}),
target_selector_hint_sender_(
- event_loop_.MakeSender<
+ event_loop->MakeSender<
::y2019::control_loops::drivetrain::TargetSelectorHint>(
".y2019.control_loops.drivetrain.target_selector_hint")) {}
diff --git a/frc971/autonomous/base_autonomous_actor.h b/frc971/autonomous/base_autonomous_actor.h
index a6a57cd..7636486 100644
--- a/frc971/autonomous/base_autonomous_actor.h
+++ b/frc971/autonomous/base_autonomous_actor.h
@@ -18,7 +18,7 @@
: public ::aos::common::actions::ActorBase<AutonomousActionQueueGroup> {
public:
explicit BaseAutonomousActor(
- AutonomousActionQueueGroup *s,
+ ::aos::EventLoop *event_loop, AutonomousActionQueueGroup *s,
const control_loops::drivetrain::DrivetrainConfig<double> &dt_config);
protected:
@@ -108,8 +108,6 @@
private:
friend class SplineHandle;
- ::aos::ShmEventLoop event_loop_;
-
::aos::Sender<::y2019::control_loops::drivetrain::TargetSelectorHint>
target_selector_hint_sender_;
diff --git a/frc971/control_loops/drivetrain/localizer.q b/frc971/control_loops/drivetrain/localizer.q
index b1169a9..323f895 100644
--- a/frc971/control_loops/drivetrain/localizer.q
+++ b/frc971/control_loops/drivetrain/localizer.q
@@ -2,6 +2,7 @@
// Allows you to reset the state of the localizer to a specific position on the
// field.
+// Published on ".frc971.control_loops.drivetrain.localizer_control"
message LocalizerControl {
float x; // X position, meters
float y; // Y position, meters
@@ -9,5 +10,3 @@
double theta_uncertainty; // Uncertainty in theta.
bool keep_current_theta; // Whether to keep the current theta value.
};
-
-queue LocalizerControl localizer_control;
diff --git a/y2014_bot3/actors/BUILD b/y2014_bot3/actors/BUILD
index 57f6d08..ed6dfa1 100644
--- a/y2014_bot3/actors/BUILD
+++ b/y2014_bot3/actors/BUILD
@@ -8,6 +8,7 @@
],
deps = [
"//aos/actions:action_lib",
+ "//aos/events:event-loop",
"//aos/logging",
"//aos/util:phased_loop",
"//frc971/autonomous:base_autonomous_actor",
@@ -26,6 +27,7 @@
deps = [
":autonomous_action_lib",
"//aos:init",
+ "//aos/events:shm-event-loop",
"//frc971/autonomous:auto_queue",
],
)
diff --git a/y2014_bot3/actors/autonomous_actor.cc b/y2014_bot3/actors/autonomous_actor.cc
index 681b7a0..31f0175 100644
--- a/y2014_bot3/actors/autonomous_actor.cc
+++ b/y2014_bot3/actors/autonomous_actor.cc
@@ -4,6 +4,7 @@
#include <chrono>
#include <cmath>
+#include "aos/events/event-loop.h"
#include "aos/logging/logging.h"
#include "aos/util/phased_loop.h"
#include "frc971/control_loops/drivetrain/drivetrain.q.h"
@@ -29,9 +30,10 @@
} // namespace
AutonomousActor::AutonomousActor(
+ ::aos::EventLoop *event_loop,
::frc971::autonomous::AutonomousActionQueueGroup *s)
: frc971::autonomous::BaseAutonomousActor(
- s, control_loops::drivetrain::GetDrivetrainConfig()) {}
+ event_loop, s, control_loops::drivetrain::GetDrivetrainConfig()) {}
bool AutonomousActor::RunAction(
const ::frc971::autonomous::AutonomousActionParams ¶ms) {
diff --git a/y2014_bot3/actors/autonomous_actor.h b/y2014_bot3/actors/autonomous_actor.h
index 94bbbd7..a338d40 100644
--- a/y2014_bot3/actors/autonomous_actor.h
+++ b/y2014_bot3/actors/autonomous_actor.h
@@ -6,6 +6,7 @@
#include "aos/actions/actions.h"
#include "aos/actions/actor.h"
+#include "aos/events/event-loop.h"
#include "frc971/autonomous/base_autonomous_actor.h"
namespace y2014_bot3 {
@@ -13,7 +14,8 @@
class AutonomousActor : public ::frc971::autonomous::BaseAutonomousActor {
public:
- explicit AutonomousActor(::frc971::autonomous::AutonomousActionQueueGroup *s);
+ explicit AutonomousActor(::aos::EventLoop *event_loop,
+ ::frc971::autonomous::AutonomousActionQueueGroup *s);
bool RunAction(
const ::frc971::autonomous::AutonomousActionParams ¶ms) override;
diff --git a/y2014_bot3/actors/autonomous_actor_main.cc b/y2014_bot3/actors/autonomous_actor_main.cc
index 157d9ed..2304b78 100644
--- a/y2014_bot3/actors/autonomous_actor_main.cc
+++ b/y2014_bot3/actors/autonomous_actor_main.cc
@@ -1,5 +1,6 @@
#include <stdio.h>
+#include "aos/events/shm-event-loop.h"
#include "aos/init.h"
#include "frc971/autonomous/auto.q.h"
#include "y2014_bot3/actors/autonomous_actor.h"
@@ -7,8 +8,9 @@
int main(int /*argc*/, char * /*argv*/ []) {
::aos::Init(-1);
+ ::aos::ShmEventLoop event_loop;
::y2014_bot3::actors::AutonomousActor autonomous(
- &::frc971::autonomous::autonomous_action);
+ &event_loop, &::frc971::autonomous::autonomous_action);
autonomous.Run();
::aos::Cleanup();
diff --git a/y2016/actors/BUILD b/y2016/actors/BUILD
index 19b5c63..f5b2566 100644
--- a/y2016/actors/BUILD
+++ b/y2016/actors/BUILD
@@ -1,132 +1,134 @@
-package(default_visibility = ['//visibility:public'])
+package(default_visibility = ["//visibility:public"])
-load('//aos/build:queues.bzl', 'queue_library')
+load("//aos/build:queues.bzl", "queue_library")
filegroup(
- name = 'binaries',
- srcs = [
- ':superstructure_action',
- ':autonomous_action',
- ],
+ name = "binaries",
+ srcs = [
+ ":autonomous_action",
+ ":superstructure_action",
+ ],
)
queue_library(
- name = 'superstructure_action_queue',
- srcs = [
- 'superstructure_action.q',
- ],
- deps = [
- '//aos/actions:action_queue',
- ],
+ name = "superstructure_action_queue",
+ srcs = [
+ "superstructure_action.q",
+ ],
+ deps = [
+ "//aos/actions:action_queue",
+ ],
)
cc_library(
- name = 'superstructure_action_lib',
- srcs = [
- 'superstructure_actor.cc',
- ],
- hdrs = [
- 'superstructure_actor.h',
- ],
- deps = [
- ':superstructure_action_queue',
- '//aos/util:phased_loop',
- '//aos/logging',
- '//aos/actions:action_lib',
- '//y2016/control_loops/superstructure:superstructure_queue',
- ],
+ name = "superstructure_action_lib",
+ srcs = [
+ "superstructure_actor.cc",
+ ],
+ hdrs = [
+ "superstructure_actor.h",
+ ],
+ deps = [
+ ":superstructure_action_queue",
+ "//aos/actions:action_lib",
+ "//aos/events:event-loop",
+ "//aos/logging",
+ "//aos/util:phased_loop",
+ "//y2016/control_loops/superstructure:superstructure_queue",
+ ],
)
cc_binary(
- name = 'superstructure_action',
- srcs = [
- 'superstructure_actor_main.cc',
- ],
- deps = [
- ':superstructure_action_lib',
- ':superstructure_action_queue',
- '//aos:init',
- ],
+ name = "superstructure_action",
+ srcs = [
+ "superstructure_actor_main.cc",
+ ],
+ deps = [
+ ":superstructure_action_lib",
+ ":superstructure_action_queue",
+ "//aos:init",
+ "//aos/events:shm-event-loop",
+ ],
)
cc_library(
- name = 'autonomous_action_lib',
- srcs = [
- 'autonomous_actor.cc',
- ],
- hdrs = [
- 'autonomous_actor.h',
- ],
- deps = [
- ':vision_align_action_lib',
- '//aos/util:phased_loop',
- '//aos/logging',
- '//aos/actions:action_lib',
- '//frc971/autonomous:base_autonomous_actor',
- '//frc971/control_loops/drivetrain:drivetrain_queue',
- '//y2016/queues:ball_detector',
- '//y2016/control_loops/superstructure:superstructure_queue',
- '//y2016/control_loops/shooter:shooter_queue',
- '//y2016/control_loops/drivetrain:drivetrain_base',
- '//y2016/queues:profile_params',
- '//y2016/vision:vision_queue',
- ],
+ name = "autonomous_action_lib",
+ srcs = [
+ "autonomous_actor.cc",
+ ],
+ hdrs = [
+ "autonomous_actor.h",
+ ],
+ deps = [
+ ":vision_align_action_lib",
+ "//aos/actions:action_lib",
+ "//aos/logging",
+ "//aos/util:phased_loop",
+ "//frc971/autonomous:base_autonomous_actor",
+ "//frc971/control_loops/drivetrain:drivetrain_queue",
+ "//y2016/control_loops/drivetrain:drivetrain_base",
+ "//y2016/control_loops/shooter:shooter_queue",
+ "//y2016/control_loops/superstructure:superstructure_queue",
+ "//y2016/queues:ball_detector",
+ "//y2016/queues:profile_params",
+ "//y2016/vision:vision_queue",
+ ],
)
cc_binary(
- name = 'autonomous_action',
- srcs = [
- 'autonomous_actor_main.cc',
- ],
- deps = [
- ':autonomous_action_lib',
- '//aos:init',
- ],
+ name = "autonomous_action",
+ srcs = [
+ "autonomous_actor_main.cc",
+ ],
+ deps = [
+ ":autonomous_action_lib",
+ "//aos:init",
+ ],
)
queue_library(
- name = 'vision_align_action_queue',
- srcs = [
- 'vision_align_action.q',
- ],
- deps = [
- '//aos/actions:action_queue',
- ],
+ name = "vision_align_action_queue",
+ srcs = [
+ "vision_align_action.q",
+ ],
+ deps = [
+ "//aos/actions:action_queue",
+ ],
)
cc_library(
- name = 'vision_align_action_lib',
- srcs = [
- 'vision_align_actor.cc',
- ],
- hdrs = [
- 'vision_align_actor.h',
- ],
- deps = [
- ':vision_align_action_queue',
- '//aos/time:time',
- '//aos:math',
- '//aos/util:phased_loop',
- '//aos/logging',
- '//aos/actions:action_lib',
- '//aos/logging:queue_logging',
- '//aos/util:trapezoid_profile',
- '//frc971/control_loops/drivetrain:drivetrain_queue',
- '//third_party/eigen',
- '//y2016:constants',
- '//y2016/control_loops/drivetrain:drivetrain_base',
- '//y2016/vision:vision_queue',
- ],
+ name = "vision_align_action_lib",
+ srcs = [
+ "vision_align_actor.cc",
+ ],
+ hdrs = [
+ "vision_align_actor.h",
+ ],
+ deps = [
+ ":vision_align_action_queue",
+ "//aos:math",
+ "//aos/actions:action_lib",
+ "//aos/logging",
+ "//aos/logging:queue_logging",
+ "//aos/time",
+ "//aos/util:phased_loop",
+ "//aos/util:trapezoid_profile",
+ "//frc971/control_loops/drivetrain:drivetrain_queue",
+ "//third_party/eigen",
+ "//y2016:constants",
+ "//y2016/control_loops/drivetrain:drivetrain_base",
+ "//y2016/vision:vision_queue",
+ ],
)
cc_binary(
- name = 'vision_align_action',
- srcs = [
- 'vision_align_actor_main.cc',
- ],
- deps = [
- ':vision_align_action_lib',
- ':vision_align_action_queue',
- '//aos:init',
- ],
+ name = "vision_align_action",
+ srcs = [
+ "vision_align_actor_main.cc",
+ ],
+ deps = [
+ ":vision_align_action_lib",
+ ":vision_align_action_queue",
+ "//aos:init",
+ ],
)
diff --git a/y2016/actors/autonomous_actor.cc b/y2016/actors/autonomous_actor.cc
index ea90944..5f95072 100644
--- a/y2016/actors/autonomous_actor.cc
+++ b/y2016/actors/autonomous_actor.cc
@@ -50,9 +50,10 @@
} // namespace
AutonomousActor::AutonomousActor(
+ ::aos::EventLoop *event_loop,
::frc971::autonomous::AutonomousActionQueueGroup *s)
: frc971::autonomous::BaseAutonomousActor(
- s, control_loops::drivetrain::GetDrivetrainConfig()) {}
+ event_loop, s, control_loops::drivetrain::GetDrivetrainConfig()) {}
constexpr double kDoNotTurnCare = 2.0;
diff --git a/y2016/actors/autonomous_actor.h b/y2016/actors/autonomous_actor.h
index 0a8eae2..4a220ed 100644
--- a/y2016/actors/autonomous_actor.h
+++ b/y2016/actors/autonomous_actor.h
@@ -6,6 +6,7 @@
#include "aos/actions/actions.h"
#include "aos/actions/actor.h"
+#include "aos/events/event-loop.h"
#include "frc971/autonomous/base_autonomous_actor.h"
#include "frc971/control_loops/drivetrain/drivetrain.q.h"
#include "frc971/control_loops/drivetrain/drivetrain_config.h"
@@ -17,7 +18,8 @@
class AutonomousActor : public ::frc971::autonomous::BaseAutonomousActor {
public:
- explicit AutonomousActor(::frc971::autonomous::AutonomousActionQueueGroup *s);
+ explicit AutonomousActor(::aos::EventLoop *event_loop,
+ ::frc971::autonomous::AutonomousActionQueueGroup *s);
bool RunAction(
const ::frc971::autonomous::AutonomousActionParams ¶ms) override;
diff --git a/y2016/actors/autonomous_actor_main.cc b/y2016/actors/autonomous_actor_main.cc
index bc64366..16fc5c4 100644
--- a/y2016/actors/autonomous_actor_main.cc
+++ b/y2016/actors/autonomous_actor_main.cc
@@ -1,13 +1,15 @@
#include <stdio.h>
+#include "aos/events/shm-event-loop.h"
#include "aos/init.h"
#include "y2016/actors/autonomous_actor.h"
int main(int /*argc*/, char * /*argv*/ []) {
::aos::Init(-1);
+ ::aos::ShmEventLoop event_loop;
::y2016::actors::AutonomousActor autonomous(
- &::frc971::autonomous::autonomous_action);
+ &event_loop, &::frc971::autonomous::autonomous_action);
autonomous.Run();
::aos::Cleanup();
diff --git a/y2017/actors/BUILD b/y2017/actors/BUILD
index 9e2f7d3..8c1b1cd 100644
--- a/y2017/actors/BUILD
+++ b/y2017/actors/BUILD
@@ -1,42 +1,44 @@
-package(default_visibility = ['//visibility:public'])
+package(default_visibility = ["//visibility:public"])
-load('//aos/build:queues.bzl', 'queue_library')
+load("//aos/build:queues.bzl", "queue_library")
filegroup(
- name = 'binaries',
- srcs = [
- ':autonomous_action',
- ],
+ name = "binaries",
+ srcs = [
+ ":autonomous_action",
+ ],
)
cc_library(
- name = 'autonomous_action_lib',
- srcs = [
- 'autonomous_actor.cc',
- ],
- hdrs = [
- 'autonomous_actor.h',
- ],
- deps = [
- '//aos/util:phased_loop',
- '//aos/logging',
- '//aos/actions:action_lib',
- '//frc971/autonomous:base_autonomous_actor',
- '//frc971/control_loops/drivetrain:drivetrain_queue',
- '//frc971/control_loops/drivetrain:drivetrain_config',
- '//y2017/control_loops/drivetrain:drivetrain_base',
- '//y2017/control_loops/superstructure:superstructure_queue',
- ],
+ name = "autonomous_action_lib",
+ srcs = [
+ "autonomous_actor.cc",
+ ],
+ hdrs = [
+ "autonomous_actor.h",
+ ],
+ deps = [
+ "//aos/actions:action_lib",
+ "//aos/events:event-loop",
+ "//aos/logging",
+ "//aos/util:phased_loop",
+ "//frc971/autonomous:base_autonomous_actor",
+ "//frc971/control_loops/drivetrain:drivetrain_config",
+ "//frc971/control_loops/drivetrain:drivetrain_queue",
+ "//y2017/control_loops/drivetrain:drivetrain_base",
+ "//y2017/control_loops/superstructure:superstructure_queue",
+ ],
)
cc_binary(
- name = 'autonomous_action',
- srcs = [
- 'autonomous_actor_main.cc',
- ],
- deps = [
- ':autonomous_action_lib',
- '//aos:init',
- '//frc971/autonomous:auto_queue',
- ],
+ name = "autonomous_action",
+ srcs = [
+ "autonomous_actor_main.cc",
+ ],
+ deps = [
+ ":autonomous_action_lib",
+ "//aos:init",
+ "//aos/events:shm-event-loop",
+ "//frc971/autonomous:auto_queue",
+ ],
)
diff --git a/y2017/actors/autonomous_actor.cc b/y2017/actors/autonomous_actor.cc
index c123612..6070a71 100644
--- a/y2017/actors/autonomous_actor.cc
+++ b/y2017/actors/autonomous_actor.cc
@@ -41,9 +41,10 @@
} // namespace
AutonomousActor::AutonomousActor(
+ ::aos::EventLoop *event_loop,
::frc971::autonomous::AutonomousActionQueueGroup *s)
: frc971::autonomous::BaseAutonomousActor(
- s, control_loops::drivetrain::GetDrivetrainConfig()) {}
+ event_loop, s, control_loops::drivetrain::GetDrivetrainConfig()) {}
bool AutonomousActor::RunAction(
const ::frc971::autonomous::AutonomousActionParams ¶ms) {
diff --git a/y2017/actors/autonomous_actor.h b/y2017/actors/autonomous_actor.h
index a27c27e..2ab9fca 100644
--- a/y2017/actors/autonomous_actor.h
+++ b/y2017/actors/autonomous_actor.h
@@ -19,7 +19,8 @@
class AutonomousActor : public ::frc971::autonomous::BaseAutonomousActor {
public:
- explicit AutonomousActor(::frc971::autonomous::AutonomousActionQueueGroup *s);
+ explicit AutonomousActor(::aos::EventLoop *event_loop,
+ ::frc971::autonomous::AutonomousActionQueueGroup *s);
bool RunAction(
const ::frc971::autonomous::AutonomousActionParams ¶ms) override;
diff --git a/y2017/actors/autonomous_actor_main.cc b/y2017/actors/autonomous_actor_main.cc
index 9a58d56..f9dfbbb 100644
--- a/y2017/actors/autonomous_actor_main.cc
+++ b/y2017/actors/autonomous_actor_main.cc
@@ -1,5 +1,6 @@
#include <stdio.h>
+#include "aos/events/shm-event-loop.h"
#include "aos/init.h"
#include "frc971/autonomous/auto.q.h"
#include "y2017/actors/autonomous_actor.h"
@@ -7,8 +8,9 @@
int main(int /*argc*/, char * /*argv*/ []) {
::aos::Init(-1);
+ ::aos::ShmEventLoop event_loop;
::y2017::actors::AutonomousActor autonomous(
- &::frc971::autonomous::autonomous_action);
+ &event_loop, &::frc971::autonomous::autonomous_action);
autonomous.Run();
::aos::Cleanup();
diff --git a/y2018/actors/BUILD b/y2018/actors/BUILD
index 712b94a..7d97f66 100644
--- a/y2018/actors/BUILD
+++ b/y2018/actors/BUILD
@@ -8,6 +8,7 @@
],
deps = [
"//aos/actions:action_lib",
+ "//aos/events:event-loop",
"//aos/logging",
"//aos/util:phased_loop",
"//frc971/autonomous:base_autonomous_actor",
@@ -28,6 +29,7 @@
deps = [
":autonomous_action_lib",
"//aos:init",
+ "//aos/events:shm-event-loop",
"//frc971/autonomous:auto_queue",
],
)
diff --git a/y2018/actors/autonomous_actor.cc b/y2018/actors/autonomous_actor.cc
index 783a166..ed91158 100644
--- a/y2018/actors/autonomous_actor.cc
+++ b/y2018/actors/autonomous_actor.cc
@@ -50,9 +50,10 @@
} // namespace
AutonomousActor::AutonomousActor(
+ ::aos::EventLoop *event_loop,
::frc971::autonomous::AutonomousActionQueueGroup *s)
: frc971::autonomous::BaseAutonomousActor(
- s, control_loops::drivetrain::GetDrivetrainConfig()) {}
+ event_loop, s, control_loops::drivetrain::GetDrivetrainConfig()) {}
bool AutonomousActor::RunAction(
const ::frc971::autonomous::AutonomousActionParams ¶ms) {
diff --git a/y2018/actors/autonomous_actor.h b/y2018/actors/autonomous_actor.h
index 0cff3f3..207ff42 100644
--- a/y2018/actors/autonomous_actor.h
+++ b/y2018/actors/autonomous_actor.h
@@ -6,6 +6,7 @@
#include "aos/actions/actions.h"
#include "aos/actions/actor.h"
+#include "aos/events/event-loop.h"
#include "frc971/autonomous/base_autonomous_actor.h"
#include "frc971/control_loops/drivetrain/drivetrain.q.h"
#include "frc971/control_loops/drivetrain/drivetrain_config.h"
@@ -21,7 +22,8 @@
class AutonomousActor : public ::frc971::autonomous::BaseAutonomousActor {
public:
- explicit AutonomousActor(::frc971::autonomous::AutonomousActionQueueGroup *s);
+ explicit AutonomousActor(::aos::EventLoop *event_loop,
+ ::frc971::autonomous::AutonomousActionQueueGroup *s);
bool RunAction(
const ::frc971::autonomous::AutonomousActionParams ¶ms) override;
diff --git a/y2018/actors/autonomous_actor_main.cc b/y2018/actors/autonomous_actor_main.cc
index a345fe6..fa9ba10 100644
--- a/y2018/actors/autonomous_actor_main.cc
+++ b/y2018/actors/autonomous_actor_main.cc
@@ -1,5 +1,6 @@
#include <stdio.h>
+#include "aos/events/shm-event-loop.h"
#include "aos/init.h"
#include "frc971/autonomous/auto.q.h"
#include "y2018/actors/autonomous_actor.h"
@@ -7,8 +8,9 @@
int main(int /*argc*/, char * /*argv*/ []) {
::aos::Init(-1);
+ ::aos::ShmEventLoop event_loop;
::y2018::actors::AutonomousActor autonomous(
- &::frc971::autonomous::autonomous_action);
+ &event_loop, &::frc971::autonomous::autonomous_action);
autonomous.Run();
::aos::Cleanup();
diff --git a/y2019/actors/BUILD b/y2019/actors/BUILD
index ee70772..a622dbf 100644
--- a/y2019/actors/BUILD
+++ b/y2019/actors/BUILD
@@ -25,6 +25,7 @@
"autonomous_actor.h",
],
deps = [
+ "//aos/events:event-loop",
"//aos/logging",
"//aos/util:phased_loop",
"//frc971/autonomous:base_autonomous_actor",
@@ -45,6 +46,7 @@
deps = [
":autonomous_action_lib",
"//aos:init",
+ "//aos/events:shm-event-loop",
"//frc971/autonomous:auto_queue",
],
)
diff --git a/y2019/actors/autonomous_actor.cc b/y2019/actors/autonomous_actor.cc
index a565764..6ad8bff 100644
--- a/y2019/actors/autonomous_actor.cc
+++ b/y2019/actors/autonomous_actor.cc
@@ -16,7 +16,6 @@
namespace y2019 {
namespace actors {
using ::frc971::control_loops::drivetrain_queue;
-using ::frc971::control_loops::drivetrain::localizer_control;
using ::aos::monotonic_clock;
namespace chrono = ::std::chrono;
@@ -30,9 +29,14 @@
} // namespace
AutonomousActor::AutonomousActor(
+ ::aos::EventLoop *event_loop,
::frc971::autonomous::AutonomousActionQueueGroup *s)
: frc971::autonomous::BaseAutonomousActor(
- s, control_loops::drivetrain::GetDrivetrainConfig()) {}
+ event_loop, s, control_loops::drivetrain::GetDrivetrainConfig()),
+ localizer_control_sender_(
+ event_loop->MakeSender<
+ ::frc971::control_loops::drivetrain::LocalizerControl>(
+ ".frc971.control_loops.drivetrain.localizer_control")) {}
bool AutonomousActor::WaitForDriveXGreater(double x) {
LOG(INFO, "Waiting until x > %f\n", x);
@@ -88,7 +92,7 @@
SendSuperstructureGoal();
{
- auto localizer_resetter = localizer_control.MakeMessage();
+ auto localizer_resetter = localizer_control_sender_.MakeMessage();
// Start on the left l2.
localizer_resetter->x = 1.0;
localizer_resetter->y = 1.35 * turn_scalar;
diff --git a/y2019/actors/autonomous_actor.h b/y2019/actors/autonomous_actor.h
index e25085a..941129f 100644
--- a/y2019/actors/autonomous_actor.h
+++ b/y2019/actors/autonomous_actor.h
@@ -10,6 +10,7 @@
#include "frc971/control_loops/control_loops.q.h"
#include "frc971/control_loops/drivetrain/drivetrain.q.h"
#include "frc971/control_loops/drivetrain/drivetrain_config.h"
+#include "frc971/control_loops/drivetrain/localizer.q.h"
#include "y2019/control_loops/superstructure/superstructure.q.h"
namespace y2019 {
@@ -25,7 +26,8 @@
class AutonomousActor : public ::frc971::autonomous::BaseAutonomousActor {
public:
- explicit AutonomousActor(::frc971::autonomous::AutonomousActionQueueGroup *s);
+ explicit AutonomousActor(::aos::EventLoop *event_loop,
+ ::frc971::autonomous::AutonomousActionQueueGroup *s);
bool RunAction(
const ::frc971::autonomous::AutonomousActionParams ¶ms) override;
@@ -180,6 +182,9 @@
// Waits until y is within y of zero.
bool WaitForDriveYCloseToZero(double y);
+
+ ::aos::Sender<::frc971::control_loops::drivetrain::LocalizerControl>
+ localizer_control_sender_;
};
} // namespace actors
diff --git a/y2019/actors/autonomous_actor_main.cc b/y2019/actors/autonomous_actor_main.cc
index 0a77eb9..6fa55f7 100644
--- a/y2019/actors/autonomous_actor_main.cc
+++ b/y2019/actors/autonomous_actor_main.cc
@@ -1,5 +1,6 @@
#include <stdio.h>
+#include "aos/events/shm-event-loop.h"
#include "aos/init.h"
#include "frc971/autonomous/auto.q.h"
#include "y2019/actors/autonomous_actor.h"
@@ -7,8 +8,9 @@
int main(int /*argc*/, char * /*argv*/ []) {
::aos::Init(-1);
+ ::aos::ShmEventLoop event_loop;
::y2019::actors::AutonomousActor autonomous(
- &::frc971::autonomous::autonomous_action);
+ &event_loop, &::frc971::autonomous::autonomous_action);
autonomous.Run();
::aos::Cleanup();
diff --git a/y2019/joystick_reader.cc b/y2019/joystick_reader.cc
index 58d1c36..2ae46f9 100644
--- a/y2019/joystick_reader.cc
+++ b/y2019/joystick_reader.cc
@@ -28,7 +28,6 @@
#include "y2019/vision.pb.h"
using ::y2019::control_loops::superstructure::superstructure_queue;
-using ::frc971::control_loops::drivetrain::localizer_control;
using ::aos::input::driver_station::ButtonLocation;
using ::aos::input::driver_station::ControlBit;
using ::aos::input::driver_station::JoystickAxis;
@@ -144,7 +143,11 @@
target_selector_hint_sender_(
event_loop->MakeSender<
::y2019::control_loops::drivetrain::TargetSelectorHint>(
- ".y2019.control_loops.drivetrain.target_selector_hint")) {
+ ".y2019.control_loops.drivetrain.target_selector_hint")),
+ localizer_control_sender_(
+ event_loop->MakeSender<
+ ::frc971::control_loops::drivetrain::LocalizerControl>(
+ ".frc971.control_loops.drivetrain.localizer_control")) {
const uint16_t team = ::aos::network::GetTeamNumber();
superstructure_queue.goal.FetchLatest();
if (superstructure_queue.goal.get()) {
@@ -205,7 +208,7 @@
}
if (data.PosEdge(kResetLocalizerLeft)) {
- auto localizer_resetter = localizer_control.MakeMessage();
+ auto localizer_resetter = localizer_control_sender_.MakeMessage();
// Start at the left feeder station.
localizer_resetter->x = 0.6;
localizer_resetter->y = 3.4;
@@ -217,7 +220,7 @@
}
if (data.PosEdge(kResetLocalizerRight)) {
- auto localizer_resetter = localizer_control.MakeMessage();
+ auto localizer_resetter = localizer_control_sender_.MakeMessage();
// Start at the left feeder station.
localizer_resetter->x = 0.6;
localizer_resetter->y = -3.4;
@@ -229,7 +232,7 @@
}
if (data.PosEdge(kResetLocalizerLeftForwards)) {
- auto localizer_resetter = localizer_control.MakeMessage();
+ auto localizer_resetter = localizer_control_sender_.MakeMessage();
// Start at the left feeder station.
localizer_resetter->x = 0.4;
localizer_resetter->y = 3.4;
@@ -241,7 +244,7 @@
}
if (data.PosEdge(kResetLocalizerLeftBackwards)) {
- auto localizer_resetter = localizer_control.MakeMessage();
+ auto localizer_resetter = localizer_control_sender_.MakeMessage();
// Start at the left feeder station.
localizer_resetter->x = 0.4;
localizer_resetter->y = 3.4;
@@ -253,7 +256,7 @@
}
if (data.PosEdge(kResetLocalizerRightForwards)) {
- auto localizer_resetter = localizer_control.MakeMessage();
+ auto localizer_resetter = localizer_control_sender_.MakeMessage();
// Start at the right feeder station.
localizer_resetter->x = 0.4;
localizer_resetter->y = -3.4;
@@ -265,7 +268,7 @@
}
if (data.PosEdge(kResetLocalizerRightBackwards)) {
- auto localizer_resetter = localizer_control.MakeMessage();
+ auto localizer_resetter = localizer_control_sender_.MakeMessage();
// Start at the right feeder station.
localizer_resetter->x = 0.4;
localizer_resetter->y = -3.4;
@@ -501,6 +504,9 @@
::aos::Sender<::y2019::control_loops::drivetrain::TargetSelectorHint>
target_selector_hint_sender_;
+ ::aos::Sender<::frc971::control_loops::drivetrain::LocalizerControl>
+ localizer_control_sender_;
+
// Bool to track if we've been above the deploy position. Once this bool is
// set, don't let the stilts retract until we see the platform.
bool was_above_ = false;