8 out << YAML::Key <<
"report";
10 out << YAML::Key <<
"version";
11 out << YAML::Value <<
"0.9";
12 out << YAML::Key <<
"creation_time";
19 timeinfo = localtime(&rawtime);
21 strftime(buffer, 80,
"%F %T", timeinfo);
22 out << YAML::Value << buffer;
23 out << YAML::Key <<
"seed";
24 out << YAML::Value << report.
seed;
25 out << YAML::Key <<
"track_file";
27 out << YAML::Key <<
"perception_config_file";
29 out << YAML::Key <<
"sensors_config_file";
31 out << YAML::Key <<
"vehicle_config_file";
34 out << YAML::Key <<
"status";
35 out << YAML::BeginMap;
36 out << YAML::Key <<
"discipline";
38 out << YAML::Key <<
"success";
39 out << YAML::Value << report.
success;
40 out << YAML::Key <<
"reason";
42 out << YAML::Key <<
"final_time";
44 out << YAML::Key <<
"final_time_raw";
46 out << YAML::Key <<
"total_sim_time";
50 out << YAML::Key <<
"settings";
51 out << YAML::BeginMap;
52 out << YAML::Key <<
"timeout-first-lap";
54 out << YAML::Key <<
"timeout-total";
56 out << YAML::Key <<
"oc_detect";
58 out << YAML::Key <<
"doo_detect";
60 out << YAML::Key <<
"uss_detect";
62 out << YAML::Key <<
"dnf_detect";
64 out << YAML::Key <<
"finish_validate";
68 out << YAML::Key <<
"laps";
69 out << YAML::BeginSeq;
70 for (
int i = 0; i < report.
lap_times.size(); ++i)
72 out << YAML::BeginMap;
73 out << YAML::Key <<
"lap";
74 out << YAML::BeginMap;
75 out << YAML::Key <<
"time";
76 out << YAML::Value << report.
lap_times[i].time;
77 out << YAML::Key <<
"sectors";
78 out << YAML::Flow << YAML::BeginSeq;
79 for (
int j = 0; j < report.
lap_times[i].sector_times.size(); ++j)
81 out << report.
lap_times[i].sector_times[j];
89 out << YAML::Key <<
"penalties";
90 out << YAML::BeginSeq;
91 for (
int i = 0; i < report.
penalties.size(); ++i)
93 out << YAML::BeginMap;
94 out << YAML::Key <<
"penalty";
95 out << YAML::BeginMap;
96 out << YAML::Key <<
"lap";
97 out << YAML::Value << report.
penalties[i].lap;
98 out << YAML::Key <<
"time";
99 out << YAML::Value << report.
penalties[i].penalty_time;
100 out << YAML::Key <<
"occurence_time";
101 out << YAML::Value << report.
penalties[i].occurence_time;
102 out << YAML::Key <<
"reason";
103 out << YAML::Value << report.
penalties[i].reason;
104 out << YAML::Key <<
"car_position";
105 out << YAML::Flow << YAML::BeginSeq;
115 strftime(buffer, 80,
"%F-%H-%M-%S", timeinfo);
116 std::string path = dir +
"/report-" + std::string(buffer) +
".yaml";
117 RCLCPP_INFO_STREAM(rclcpp::get_logger(
"pacsim_logger"),
"Writing report to " << path);
118 std::ofstream fout(path);