47 status_.set_detect_immediately(
false);
49 static auto hmi_status_reader =
50 CreateReader<apollo::dreamview::HMIStatus>(FLAGS_hmi_status_topic);
51 hmi_status_reader->Observe();
52 const auto hmi_status = hmi_status_reader->GetLatestObserved();
53 if (hmi_status ==
nullptr) {
54 AERROR <<
"No HMIStatus was received.";
56 }
else if (hmi_status->expected_modules() > 0) {
57 status_.set_detect_immediately(
true);
60 if (current_mode_ != hmi_status->current_mode()) {
62 current_mode_ = hmi_status->current_mode();
64 hmi_config_.
modes().at(current_mode_));
65 status_.clear_hmi_modules();
66 for (
const auto& iter : mode_config_.
modules()) {
67 status_.mutable_hmi_modules()->insert({iter.first, {}});
69 status_.clear_components();
71 status_.mutable_components()->insert({iter.first, {}});
73 status_.clear_other_components();
75 status_.mutable_other_components()->insert({iter.first, {}});
77 status_.clear_global_components();
79 status_.mutable_global_components()->insert({iter.first, {}});
83 for (
auto& iter : *status_.mutable_components()) {
84 iter.second.clear_summary();
87 for (
auto& iter : *status_.mutable_global_components()) {
88 iter.second.clear_summary();
92 in_autonomous_driving_ = CheckAutonomousDriving(current_time);