y2019 robot code starts!

We are now deploying the config, and all the missing locations are now
available.  Some channels got renamed to be more user friendly.

Change-Id: Idc771998b24a769994ec80f3aee292b0d1ac6240
diff --git a/y2019/BUILD b/y2019/BUILD
index 5c9a3a6..d9cd4fd 100644
--- a/y2019/BUILD
+++ b/y2019/BUILD
@@ -4,6 +4,9 @@
 load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
 
 robot_downloader(
+    data = [
+        ":config.json",
+    ],
     dirs = [
         "//y2019/vision/server:www_files",
     ],
@@ -27,7 +30,6 @@
     ],
     visibility = ["//visibility:public"],
     deps = [
-        "@com_google_absl//absl/base",
         "//aos/logging",
         "//aos/mutex",
         "//aos/network:team_number",
@@ -41,6 +43,7 @@
         "//y2019/control_loops/superstructure/stilts:stilts_plants",
         "//y2019/control_loops/superstructure/wrist:wrist_plants",
         "//y2019/vision:constants",
+        "@com_google_absl//absl/base",
     ],
 )
 
@@ -51,8 +54,9 @@
     ],
     restricted_to = ["//tools:roborio"],
     deps = [
+        ":camera_log_fbs",
         ":constants",
-        ":status_light",
+        ":status_light_fbs",
         "//aos:init",
         "//aos:make_unique",
         "//aos:math",
@@ -65,7 +69,7 @@
         "//aos/util:log_interval",
         "//aos/util:phased_loop",
         "//aos/util:wrapping_counter",
-        "//frc971/autonomous:auto_fbs",
+        "//frc971/autonomous:auto_mode_fbs",
         "//frc971/control_loops:control_loops_fbs",
         "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
         "//frc971/wpilib:ADIS16448",
@@ -120,7 +124,7 @@
         ":joystick_reader.cc",
     ],
     deps = [
-        ":status_light",
+        ":camera_log_fbs",
         ":vision_proto",
         "//aos:init",
         "//aos/actions:action_lib",
@@ -147,7 +151,16 @@
 )
 
 flatbuffer_cc_library(
-    name = "status_light",
+    name = "camera_log_fbs",
+    srcs = [
+        "camera_log.fbs",
+    ],
+    gen_reflections = 1,
+    visibility = ["//visibility:public"],
+)
+
+flatbuffer_cc_library(
+    name = "status_light_fbs",
     srcs = [
         "status_light.fbs",
     ],
@@ -159,18 +172,21 @@
     name = "config",
     src = "y2019.json",
     flatbuffers = [
-        ":status_light",
+        ":status_light_fbs",
         "//y2019/control_loops/drivetrain:camera_fbs",
         "//y2019/control_loops/drivetrain:target_selector_fbs",
         "//y2019/control_loops/superstructure:superstructure_goal_fbs",
         "//y2019/control_loops/superstructure:superstructure_output_fbs",
         "//y2019/control_loops/superstructure:superstructure_position_fbs",
         "//y2019/control_loops/superstructure:superstructure_status_fbs",
+        ":camera_log_fbs",
     ],
     visibility = ["//visibility:public"],
     deps = [
         "//aos/robot_state:config",
+        "//frc971/autonomous:config",
         "//frc971/control_loops/drivetrain:config",
+        "//frc971/wpilib:config",
     ],
 )
 
diff --git a/y2019/camera_log.fbs b/y2019/camera_log.fbs
new file mode 100644
index 0000000..0ef7c04
--- /dev/null
+++ b/y2019/camera_log.fbs
@@ -0,0 +1,7 @@
+namespace y2019;
+
+table CameraLog {
+  log:bool;
+}
+
+root_type CameraLog;
diff --git a/y2019/control_loops/drivetrain/event_loop_localizer.cc b/y2019/control_loops/drivetrain/event_loop_localizer.cc
index a372df4..c436232 100644
--- a/y2019/control_loops/drivetrain/event_loop_localizer.cc
+++ b/y2019/control_loops/drivetrain/event_loop_localizer.cc
@@ -45,7 +45,7 @@
     localizer_.ResetInitialState(monotonic_now, localizer_.X_hat(),
                                  localizer_.P());
   });
-  frame_fetcher_ = event_loop_->MakeFetcher<CameraFrame>("/drivetrain");
+  frame_fetcher_ = event_loop_->MakeFetcher<CameraFrame>("/camera");
 }
 
 void EventLoopLocalizer::Reset(::aos::monotonic_clock::time_point now,
diff --git a/y2019/control_loops/drivetrain/localized_drivetrain_test.cc b/y2019/control_loops/drivetrain/localized_drivetrain_test.cc
index b8674bc..3a6bec7 100644
--- a/y2019/control_loops/drivetrain/localized_drivetrain_test.cc
+++ b/y2019/control_loops/drivetrain/localized_drivetrain_test.cc
@@ -57,7 +57,7 @@
         drivetrain_event_loop_(MakeEventLoop("drivetrain")),
         dt_config_(GetTest2019DrivetrainConfig()),
         camera_sender_(
-            test_event_loop_->MakeSender<CameraFrame>("/drivetrain")),
+            test_event_loop_->MakeSender<CameraFrame>("/camera")),
         localizer_(drivetrain_event_loop_.get(), dt_config_),
         drivetrain_(dt_config_, drivetrain_event_loop_.get(), &localizer_),
         drivetrain_plant_event_loop_(MakeEventLoop("plant")),
diff --git a/y2019/control_loops/superstructure/BUILD b/y2019/control_loops/superstructure/BUILD
index 7cbb202..ed0c916 100644
--- a/y2019/control_loops/superstructure/BUILD
+++ b/y2019/control_loops/superstructure/BUILD
@@ -65,7 +65,7 @@
         "//aos/events:event_loop",
         "//frc971/control_loops/drivetrain:drivetrain_status_fbs",
         "//y2019:constants",
-        "//y2019:status_light",
+        "//y2019:status_light_fbs",
     ],
 )
 
@@ -91,7 +91,7 @@
         "//frc971/control_loops:position_sensor_sim",
         "//frc971/control_loops:team_number_test_environment",
         "//frc971/control_loops/drivetrain:drivetrain_status_fbs",
-        "//y2019:status_light",
+        "//y2019:status_light_fbs",
         "//y2019/control_loops/superstructure/intake:intake_plants",
     ],
 )
diff --git a/y2019/joystick_reader.cc b/y2019/joystick_reader.cc
index da43495..9fd0d31 100644
--- a/y2019/joystick_reader.cc
+++ b/y2019/joystick_reader.cc
@@ -18,12 +18,12 @@
 #include "frc971/autonomous/base_autonomous_actor.h"
 #include "frc971/control_loops/drivetrain/localizer_generated.h"
 
+#include "y2019/camera_log_generated.h"
 #include "y2019/control_loops/drivetrain/drivetrain_base.h"
 #include "y2019/control_loops/drivetrain/target_selector_generated.h"
 #include "y2019/control_loops/superstructure/superstructure_goal_generated.h"
 #include "y2019/control_loops/superstructure/superstructure_position_generated.h"
 #include "y2019/control_loops/superstructure/superstructure_status_generated.h"
-#include "y2019/status_light_generated.h"
 #include "y2019/vision.pb.h"
 
 using aos::events::ProtoTXUdpSocket;
diff --git a/y2019/status_light.fbs b/y2019/status_light.fbs
index 633b030..665b3f8 100644
--- a/y2019/status_light.fbs
+++ b/y2019/status_light.fbs
@@ -7,9 +7,4 @@
   blue:float;
 }
 
-table CameraLog {
-  log:bool;
-}
-
-root_type CameraLog;
 root_type StatusLight;
diff --git a/y2019/vision/server/server.cc b/y2019/vision/server/server.cc
index 91dc61a..99a3727 100644
--- a/y2019/vision/server/server.cc
+++ b/y2019/vision/server/server.cc
@@ -158,12 +158,11 @@
   ::aos::RingBuffer<DrivetrainPosition, 200> drivetrain_log;
 
   event_loop.MakeWatcher(
-      "/drivetrain",
-      [websocket_handler, server, &latest_frames, &last_target_time,
-       &drivetrain_status_fetcher, &superstructure_status_fetcher,
-       &last_send_time, &drivetrain_log,
-       &debug_data](const ::y2019::control_loops::drivetrain::CameraFrame
-                        &camera_frames) {
+      "/camera", [websocket_handler, server, &latest_frames, &last_target_time,
+                  &drivetrain_status_fetcher, &superstructure_status_fetcher,
+                  &last_send_time, &drivetrain_log, &debug_data](
+                     const ::y2019::control_loops::drivetrain::CameraFrame
+                         &camera_frames) {
         while (drivetrain_status_fetcher.FetchNext()) {
           DrivetrainPosition drivetrain_position{
               drivetrain_status_fetcher.context().monotonic_sent_time,
diff --git a/y2019/wpilib_interface.cc b/y2019/wpilib_interface.cc
index 227d3ca..8517c57 100644
--- a/y2019/wpilib_interface.cc
+++ b/y2019/wpilib_interface.cc
@@ -32,7 +32,7 @@
 #include "aos/util/phased_loop.h"
 #include "aos/util/wrapping_counter.h"
 #include "ctre/phoenix/motorcontrol/can/TalonSRX.h"
-#include "frc971/autonomous/auto_generated.h"
+#include "frc971/autonomous/auto_mode_generated.h"
 #include "frc971/control_loops/drivetrain/drivetrain_position_generated.h"
 #include "frc971/wpilib/ADIS16448.h"
 #include "frc971/wpilib/buffered_pcm.h"
@@ -46,6 +46,7 @@
 #include "frc971/wpilib/pdp_fetcher.h"
 #include "frc971/wpilib/sensor_reader.h"
 #include "frc971/wpilib/wpilib_robot_base.h"
+#include "y2019/camera_log_generated.h"
 #include "y2019/constants.h"
 #include "y2019/control_loops/drivetrain/camera_generated.h"
 #include "y2019/control_loops/superstructure/superstructure_output_generated.h"
@@ -134,7 +135,7 @@
       : ::frc971::wpilib::SensorReader(event_loop),
         auto_mode_sender_(
             event_loop->MakeSender<::frc971::autonomous::AutonomousMode>(
-                "/aos")),
+                "/autonomous")),
         superstructure_position_sender_(
             event_loop->MakeSender<superstructure::Position>(
                 "/superstructure")),
@@ -354,9 +355,9 @@
       : camera_frame_sender_(
             event_loop
                 ->MakeSender<::y2019::control_loops::drivetrain::CameraFrame>(
-                    ".y2019.control_loops.drivetrain.camera_frames")),
+                    "/camera")),
         camera_log_fetcher_(
-            event_loop->MakeFetcher<::y2019::CameraLog>(".y2019.camera_log")) {}
+            event_loop->MakeFetcher<::y2019::CameraLog>("/camera")) {}
 
   CameraReader(const CameraReader &) = delete;
   CameraReader &operator=(const CameraReader &) = delete;
diff --git a/y2019/y2019.json b/y2019/y2019.json
index c32db3f..cbff0a5 100644
--- a/y2019/y2019.json
+++ b/y2019/y2019.json
@@ -32,9 +32,13 @@
       "frequency": 200
     },
     {
-      "name": "/drivetrain",
+      "name": "/camera",
       "type": "y2019.control_loops.drivetrain.CameraFrame",
       "frequency": 200
+    },
+    {
+      "name": "/camera",
+      "type": "y2019.CameraLog"
     }
   ],
   "applications": [
@@ -44,6 +48,8 @@
   ],
   "imports": [
     "../aos/robot_state/robot_state_config.json",
-    "../frc971/control_loops/drivetrain/drivetrain_config.json"
+    "../frc971/control_loops/drivetrain/drivetrain_config.json",
+    "../frc971/autonomous/autonomous_config.json",
+    "../frc971/wpilib/wpilib_config.json"
   ]
 }