Move aos/controls to frc971/control_loops
Also put what was aos/controls/control_loops.fbs in y2012/control_loops
because that's the only user.
Change-Id: I8f402b0708103077e135a41e55ef5e4f23681d87
Signed-off-by: James Kuszmaul <jabukuszmaul@gmail.com>
diff --git a/y2012/BUILD b/y2012/BUILD
index ea88af8..450abfa 100644
--- a/y2012/BUILD
+++ b/y2012/BUILD
@@ -9,7 +9,6 @@
deps = [
"//aos:init",
"//aos/actions:action_lib",
- "//frc971/input:joystick_input",
"//aos/logging",
"//aos/time",
"//aos/util:log_interval",
@@ -17,6 +16,7 @@
"//frc971/control_loops:control_loops_fbs",
"//frc971/control_loops/drivetrain:drivetrain_goal_fbs",
"//frc971/control_loops/drivetrain:spline_goal_fbs",
+ "//frc971/input:joystick_input",
"//y2012/control_loops/accessories:accessories_fbs",
],
)
@@ -40,11 +40,9 @@
deps = [
"//aos:init",
"//aos:make_unique",
- "//aos/controls:control_loop",
- "//aos/controls:control_loop_fbs",
+ "//frc971/control_loops:control_loop",
"//aos/events:shm_event_loop",
"//aos/logging",
- "//frc971/input:robot_state_fbs",
"//aos/stl_mutex",
"//aos/time",
"//aos/util:log_interval",
@@ -53,6 +51,7 @@
"//frc971/control_loops:control_loops_fbs",
"//frc971/control_loops/drivetrain:drivetrain_output_fbs",
"//frc971/control_loops/drivetrain:drivetrain_position_fbs",
+ "//frc971/input:robot_state_fbs",
"//frc971/wpilib:buffered_pcm",
"//frc971/wpilib:dma",
"//frc971/wpilib:dma_edge_counting",
@@ -66,6 +65,7 @@
"//frc971/wpilib:wpilib_interface",
"//frc971/wpilib:wpilib_robot_base",
"//third_party:wpilib",
+ "//y2012/control_loops:control_loop_fbs",
"//y2012/control_loops/accessories:accessories_fbs",
],
)
diff --git a/y2012/control_loops/BUILD b/y2012/control_loops/BUILD
index 1cf6e97..ef4e03f 100644
--- a/y2012/control_loops/BUILD
+++ b/y2012/control_loops/BUILD
@@ -1,3 +1,5 @@
+load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
+
py_library(
name = "python_init",
srcs = ["__init__.py"],
@@ -5,3 +7,12 @@
visibility = ["//visibility:public"],
deps = ["//y2012:python_init"],
)
+
+flatbuffer_cc_library(
+ name = "control_loop_fbs",
+ srcs = [
+ "control_loops.fbs",
+ ],
+ target_compatible_with = ["@platforms//os:linux"],
+ visibility = ["//y2012:__subpackages__"],
+)
diff --git a/y2012/control_loops/accessories/BUILD b/y2012/control_loops/accessories/BUILD
index 02a15f1..ee61511 100644
--- a/y2012/control_loops/accessories/BUILD
+++ b/y2012/control_loops/accessories/BUILD
@@ -11,8 +11,8 @@
deps = [
":accessories_fbs",
"//aos:init",
- "//aos/controls:control_loop",
- "//aos/controls:control_loop_fbs",
+ "//frc971/control_loops:control_loop",
+ "//y2012/control_loops:control_loop_fbs",
],
)
diff --git a/y2012/control_loops/accessories/accessories.cc b/y2012/control_loops/accessories/accessories.cc
index 5627c7b..c71146e 100644
--- a/y2012/control_loops/accessories/accessories.cc
+++ b/y2012/control_loops/accessories/accessories.cc
@@ -1,30 +1,29 @@
-#include "y2012/control_loops/accessories/accessories_generated.h"
-
#include "aos/events/shm_event_loop.h"
#include "aos/init.h"
-#include "aos/controls/control_loop.h"
-#include "aos/controls/control_loops_generated.h"
+#include "frc971/control_loops/control_loop.h"
+#include "y2012/control_loops/accessories/accessories_generated.h"
+#include "y2012/control_loops/control_loops_generated.h"
namespace y2012 {
namespace control_loops {
namespace accessories {
-class AccessoriesLoop : public ::aos::controls::ControlLoop<
+class AccessoriesLoop : public ::frc971::controls::ControlLoop<
Message, ::aos::control_loops::Position,
::aos::control_loops::Status, Message> {
public:
explicit AccessoriesLoop(
::aos::EventLoop *event_loop,
const ::std::string &name = ".y2012.control_loops.accessories_queue")
- : ::aos::controls::ControlLoop<Message, ::aos::control_loops::Position,
- ::aos::control_loops::Status, Message>(
+ : ::frc971::controls::ControlLoop<Message, ::aos::control_loops::Position,
+ ::aos::control_loops::Status, Message>(
event_loop, name) {}
- void RunIteration(
- const Message *goal,
- const ::aos::control_loops::Position * /*position*/,
- ::aos::Sender<Message>::Builder *output,
- ::aos::Sender<::aos::control_loops::Status>::Builder * /*status*/) override {
+ void RunIteration(const Message *goal,
+ const ::aos::control_loops::Position * /*position*/,
+ ::aos::Sender<Message>::Builder *output,
+ ::aos::Sender<::aos::control_loops::Status>::Builder
+ * /*status*/) override {
if (output) {
//*output = *goal;
Message::Builder output_builder = output->MakeBuilder<Message>();
@@ -33,8 +32,8 @@
goal->solenoids()->data(), 3);
output_builder.add_solenoids(solenoid_offset);
flatbuffers::Offset<flatbuffers::Vector<double>> stick_offset =
- output->fbb()->template CreateVector<double>(
- goal->sticks()->data(), 2);
+ output->fbb()->template CreateVector<double>(goal->sticks()->data(),
+ 2);
output_builder.add_sticks(stick_offset);
output_builder.Finish();
diff --git a/y2012/control_loops/control_loops.fbs b/y2012/control_loops/control_loops.fbs
new file mode 100644
index 0000000..be5b7db
--- /dev/null
+++ b/y2012/control_loops/control_loops.fbs
@@ -0,0 +1,24 @@
+namespace aos.control_loops;
+// This file defines basic messages for a Single Input Single Output (SISO)
+// control loop.
+
+table Goal {
+ goal:double (id: 0);
+}
+
+table Position {
+ position:double (id: 0);
+}
+
+table Output {
+ voltage:double (id: 0);
+}
+
+table Status {
+ done:bool (id: 0);
+}
+
+root_type Goal;
+root_type Position;
+root_type Output;
+root_type Status;
diff --git a/y2012/wpilib_interface.cc b/y2012/wpilib_interface.cc
index f611c93..959e198 100644
--- a/y2012/wpilib_interface.cc
+++ b/y2012/wpilib_interface.cc
@@ -19,7 +19,6 @@
#include "frc971/wpilib/wpilib_robot_base.h"
#undef ERROR
-#include "aos/controls/control_loops_generated.h"
#include "aos/events/shm_event_loop.h"
#include "aos/init.h"
#include "aos/logging/logging.h"
@@ -44,6 +43,7 @@
#include "frc971/wpilib/loop_output_handler.h"
#include "frc971/wpilib/sensor_reader.h"
#include "y2012/control_loops/accessories/accessories_generated.h"
+#include "y2012/control_loops/control_loops_generated.h"
namespace accessories = ::y2012::control_loops::accessories;
using namespace frc;