Apollo 10.0
自动驾驶开放平台
apollo::monitor::LocalizationMonitor类 参考

#include <localization_monitor.h>

类 apollo::monitor::LocalizationMonitor 继承关系图:
apollo::monitor::LocalizationMonitor 的协作图:

Public 成员函数

 LocalizationMonitor ()
 
void RunOnce (const double current_time) override
 
- Public 成员函数 继承自 apollo::monitor::RecurrentRunner
 RecurrentRunner (const std::string &name, const double interval)
 
virtual ~RecurrentRunner ()=default
 
void Tick (const double current_time)
 

额外继承的成员函数

- Protected 属性 继承自 apollo::monitor::RecurrentRunner
std::string name_
 
unsigned int round_count_ = 0
 

详细描述

在文件 localization_monitor.h23 行定义.

构造及析构函数说明

◆ LocalizationMonitor()

apollo::monitor::LocalizationMonitor::LocalizationMonitor ( )

在文件 localization_monitor.cc40 行定义.

41 : RecurrentRunner(FLAGS_localization_monitor_name,
42 FLAGS_localization_monitor_interval) {}
RecurrentRunner(const std::string &name, const double interval)

成员函数说明

◆ RunOnce()

void apollo::monitor::LocalizationMonitor::RunOnce ( const double  current_time)
overridevirtual

实现了 apollo::monitor::RecurrentRunner.

在文件 localization_monitor.cc44 行定义.

44 {
45 auto manager = MonitorManager::Instance();
46 auto* component = apollo::common::util::FindOrNull(
47 *manager->GetStatus()->mutable_components(),
48 FLAGS_localization_component_name);
49 if (component == nullptr) {
50 // localization is not monitored in current mode, skip.
51 return;
52 }
53
54 static auto reader =
55 manager->CreateReader<LocalizationStatus>(FLAGS_localization_msf_status);
56 reader->Observe();
57 const auto status = reader->GetLatestObserved();
58
59 ComponentStatus* component_status = component->mutable_other_status();
60 component_status->clear_status();
61 if (status == nullptr) {
62 SummaryMonitor::EscalateStatus(ComponentStatus::ERROR,
63 "No LocalizationStatus received",
64 component_status);
65 return;
66 }
67
68 // Translate LocalizationStatus to ComponentStatus. Note that ERROR and FATAL
69 // will trigger safety mode in current settings.
70 switch (status->fusion_status()) {
71 case MeasureState::OK:
72 SummaryMonitor::EscalateStatus(ComponentStatus::OK, "", component_status);
73 break;
74 case MeasureState::WARNNING:
76 ComponentStatus::WARN,
77 absl::StrCat("WARNNING: ", status->state_message()),
78 component_status);
79 break;
80 case MeasureState::ERROR:
82 ComponentStatus::WARN,
83 absl::StrCat("ERROR: ", status->state_message()), component_status);
84 break;
85 case MeasureState::CRITICAL_ERROR:
87 ComponentStatus::ERROR,
88 absl::StrCat("CRITICAL_ERROR: ", status->state_message()),
89 component_status);
90 break;
91 case MeasureState::FATAL_ERROR:
93 ComponentStatus::FATAL,
94 absl::StrCat("FATAL_ERROR: ", status->state_message()),
95 component_status);
96 break;
97 default:
98 AFATAL << "Unknown fusion_status: " << status->fusion_status();
99 break;
100 }
101}
static void EscalateStatus(const ComponentStatus::Status new_status, const std::string &message, ComponentStatus *current_status)
#define AFATAL
Definition log.h:45

该类的文档由以下文件生成: