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/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;