Move CameraLog to event loop

Change-Id: I06c5e607f983b762ecb244d8c16cd24c78b596bb
diff --git a/y2019/wpilib_interface.cc b/y2019/wpilib_interface.cc
index 01c8afa..dec9b9c 100644
--- a/y2019/wpilib_interface.cc
+++ b/y2019/wpilib_interface.cc
@@ -312,7 +312,9 @@
       : camera_frame_sender_(
             event_loop
                 ->MakeSender<::y2019::control_loops::drivetrain::CameraFrame>(
-                    ".y2019.control_loops.drivetrain.camera_frames")) {}
+                    ".y2019.control_loops.drivetrain.camera_frames")),
+        camera_log_fetcher_(
+            event_loop->MakeFetcher<::y2019::CameraLog>(".y2019.camera_log")) {}
 
   CameraReader(const CameraReader &) = delete;
   CameraReader &operator=(const CameraReader &) = delete;
@@ -340,12 +342,12 @@
     using namespace frc971::jevois;
     RoborioToTeensy to_teensy{};
     to_teensy.realtime_now = aos::realtime_clock::now();
-    camera_log.FetchLatest();
+    camera_log_fetcher_.Fetch();
     if (activate_usb_ && !activate_usb_->Get()) {
       to_teensy.camera_command = CameraCommand::kUsb;
     } else if (activate_passthrough_ && !activate_passthrough_->Get()) {
       to_teensy.camera_command = CameraCommand::kCameraPassthrough;
-    } else if (camera_log.get() && camera_log->log) {
+    } else if (camera_log_fetcher_.get() && camera_log_fetcher_->log) {
       to_teensy.camera_command = CameraCommand::kLog;
     } else {
       to_teensy.camera_command = CameraCommand::kNormal;
@@ -428,6 +430,7 @@
  private:
   ::aos::Sender<::y2019::control_loops::drivetrain::CameraFrame>
       camera_frame_sender_;
+  ::aos::Fetcher<::y2019::CameraLog> camera_log_fetcher_;
 
   frc::SPI *spi_ = nullptr;
   ::std::unique_ptr<frc::SPI> dummy_spi_;