Update swerve_publisher to use Goal message

Rather than attempting to send raw outputs, send the goal instead. This
also updates the swerve_publisher to handle Ctrl-C's more cleanly.

Change-Id: Ibdfe94d48295c184083c90b8672986433737bfa7
Signed-off-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
diff --git a/y2024_swerve/swerve_publisher_lib_test.cc b/y2024_swerve/swerve_publisher_lib_test.cc
index 096dc9e..44125cd 100644
--- a/y2024_swerve/swerve_publisher_lib_test.cc
+++ b/y2024_swerve/swerve_publisher_lib_test.cc
@@ -15,19 +15,19 @@
         event_loop_(
             event_loop_factory_.MakeEventLoop("swerve_publisher", roborio_)),
         exit_handle_(event_loop_factory_.MakeExitHandle()),
-        drivetrain_swerve_output_fetcher_(
-            event_loop_->MakeFetcher<frc971::control_loops::swerve::Output>(
+        drivetrain_swerve_goal_fetcher_(
+            event_loop_->MakeFetcher<frc971::control_loops::swerve::Goal>(
                 "/drivetrain")),
         swerve_publisher_(event_loop_.get(), exit_handle_.get(),
-                          "y2024_swerve/swerve_drivetrain_output.json", 100) {}
+                          "y2024_swerve/swerve_drivetrain_goal.json", 100) {}
 
   void SendOutput() { event_loop_factory_.Run(); }
 
   void CheckOutput() {
-    drivetrain_swerve_output_fetcher_.Fetch();
+    drivetrain_swerve_goal_fetcher_.Fetch();
 
-    ASSERT_TRUE(drivetrain_swerve_output_fetcher_.get() != nullptr)
-        << ": No drivetrain output";
+    ASSERT_TRUE(drivetrain_swerve_goal_fetcher_.get() != nullptr)
+        << ": No drivetrain goal.";
   }
 
  private:
@@ -38,8 +38,8 @@
   std::unique_ptr<aos::EventLoop> event_loop_;
   std::unique_ptr<aos::ExitHandle> exit_handle_;
 
-  aos::Fetcher<frc971::control_loops::swerve::Output>
-      drivetrain_swerve_output_fetcher_;
+  aos::Fetcher<frc971::control_loops::swerve::Goal>
+      drivetrain_swerve_goal_fetcher_;
 
   y2024_swerve::SwervePublisher swerve_publisher_;
 };