added logging to ControlLoop's use of sensor_generation
diff --git a/aos/common/control_loop/ControlLoop-tmpl.h b/aos/common/control_loop/ControlLoop-tmpl.h
index 4e1999c..032d5fc 100644
--- a/aos/common/control_loop/ControlLoop-tmpl.h
+++ b/aos/common/control_loop/ControlLoop-tmpl.h
@@ -42,12 +42,18 @@
 
   ::bbb::sensor_generation.FetchLatest();
   if (::bbb::sensor_generation.get() == nullptr) {
+    LOG_INTERVAL(no_sensor_generation_);
     ZeroOutputs();
     return;
   }
   if (!has_sensor_reset_counters_ ||
       ::bbb::sensor_generation->reader_pid != reader_pid_ ||
       ::bbb::sensor_generation->cape_resets != cape_resets_) {
+    char buffer[128];
+    size_t characters = ::bbb::sensor_generation->Print(buffer, sizeof(buffer));
+    LOG(INFO, "new sensor_generation message %.*s\n",
+        static_cast<int>(characters), buffer);
+
     reader_pid_ = ::bbb::sensor_generation->reader_pid;
     cape_resets_ = ::bbb::sensor_generation->cape_resets;
     has_sensor_reset_counters_ = true;
diff --git a/aos/common/control_loop/ControlLoop.h b/aos/common/control_loop/ControlLoop.h
index c9e3381..9dde589 100644
--- a/aos/common/control_loop/ControlLoop.h
+++ b/aos/common/control_loop/ControlLoop.h
@@ -164,6 +164,9 @@
   SimpleLogInterval driver_station_old_ =
       SimpleLogInterval(kStaleLogInterval, ERROR,
                         "driver station packet is too old");
+  SimpleLogInterval no_sensor_generation_ =
+      SimpleLogInterval(kStaleLogInterval, ERROR,
+                        "no sensor_generation message");
 };
 
 }  // namespace control_loops