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.