Add robot name to the log file header.

This adds all the knobs that Blue River Technology needs in order to use
the same log file format.

Change-Id: Ie52f576431423745ddc8963f1c59ee249df2a9a6
diff --git a/aos/events/logging/BUILD b/aos/events/logging/BUILD
index 553016c..96ef288 100644
--- a/aos/events/logging/BUILD
+++ b/aos/events/logging/BUILD
@@ -17,6 +17,7 @@
         ":logger_fbs",
         "//aos:flatbuffer_merge",
         "//aos/events:event_loop",
+        "//aos/network:team_number",
         "//aos/time",
         "@com_github_google_flatbuffers//:flatbuffers",
         "@com_google_absl//absl/container:inlined_vector",
diff --git a/aos/events/logging/logger.cc b/aos/events/logging/logger.cc
index d8e504f..e2da491 100644
--- a/aos/events/logging/logger.cc
+++ b/aos/events/logging/logger.cc
@@ -11,6 +11,7 @@
 #include "aos/events/event_loop.h"
 #include "aos/events/logging/logger_generated.h"
 #include "aos/flatbuffer_merge.h"
+#include "aos/network/team_number.h"
 #include "aos/time/time.h"
 #include "flatbuffers/flatbuffers.h"
 
@@ -114,8 +115,13 @@
       flatbuffers::Offset<aos::Configuration> configuration_offset =
           CopyFlatBuffer(event_loop_->configuration(), &fbb);
 
+      flatbuffers::Offset<flatbuffers::String> string_offset =
+          fbb.CreateString(network::GetHostname());
+
       aos::logger::LogFileHeader::Builder log_file_header_builder(fbb);
 
+      log_file_header_builder.add_name(string_offset);
+
       log_file_header_builder.add_configuration(configuration_offset);
       // The worst case theoretical out of order is the polling period times 2.
       // One message could get logged right after the boundary, but be for right
diff --git a/aos/events/logging/logger.fbs b/aos/events/logging/logger.fbs
index 36055a6..5d6aa0a 100644
--- a/aos/events/logging/logger.fbs
+++ b/aos/events/logging/logger.fbs
@@ -28,6 +28,9 @@
   // The configuration of the channels.
   configuration:aos.Configuration;
 
+  // Name of the device which this log file is for.
+  name:string;
+
   // TODO(austin): Node!
 }
 
diff --git a/aos/network/team_number.cc b/aos/network/team_number.cc
index 852ce93..a75cd4e 100644
--- a/aos/network/team_number.cc
+++ b/aos/network/team_number.cc
@@ -44,13 +44,6 @@
 
 uint16_t override_team;
 
-::std::string GetHostname() {
-  char buf[256];
-  buf[sizeof(buf) - 1] = '\0';
-  AOS_PCHECK(gethostname(buf, sizeof(buf) - 1));
-  return buf;
-}
-
 void DoGetTeamNumber(uint16_t *result) {
   if (override_team != 0) {
       *result = override_team;
@@ -75,6 +68,13 @@
 
 }  // namespace
 
+::std::string GetHostname() {
+  char buf[256];
+  buf[sizeof(buf) - 1] = '\0';
+  AOS_PCHECK(gethostname(buf, sizeof(buf) - 1));
+  return buf;
+}
+
 uint16_t GetTeamNumber() {
   static absl::once_flag once;
   static uint16_t result;
diff --git a/aos/network/team_number.h b/aos/network/team_number.h
index 6540283..cacc2b3 100644
--- a/aos/network/team_number.h
+++ b/aos/network/team_number.h
@@ -13,6 +13,9 @@
 // repeatedly.
 uint16_t GetTeamNumber();
 
+// Returns the current hostname.
+::std::string GetHostname();
+
 // Overrides the team number returned from GetTeamNumber(). Must be called
 // before GetTeamNumber() is ever called.
 // Overriding to team 0 won't work.