Apollo 10.0
自动驾驶开放平台
apollo::data::TriggerBase类 参考abstract

Base class of triggers that defines interfaces 更多...

#include <trigger_base.h>

类 apollo::data::TriggerBase 继承关系图:
apollo::data::TriggerBase 的协作图:

Public 成员函数

 TriggerBase ()=default
 
virtual bool Init (const SmartRecordTrigger &trigger_conf)
 
virtual void Pull (const cyber::record::RecordMessage &msg)=0
 
virtual bool ShouldRestore (const cyber::record::RecordMessage &msg) const =0
 
const std::string & GetTriggerName () const
 
uint64_t SecondsToNanoSeconds (const double seconds) const
 
virtual ~TriggerBase ()=default
 

Protected 成员函数

void TriggerIt (const uint64_t msg_time) const
 
uint64_t GetValidValueInRange (const double desired_value, const double min_limit, const double max_limit) const
 

Protected 属性

std::string trigger_name_
 
std::unique_ptr< Triggertrigger_obj_ = nullptr
 

详细描述

Base class of triggers that defines interfaces

在文件 trigger_base.h33 行定义.

构造及析构函数说明

◆ TriggerBase()

apollo::data::TriggerBase::TriggerBase ( )
default

◆ ~TriggerBase()

virtual apollo::data::TriggerBase::~TriggerBase ( )
virtualdefault

成员函数说明

◆ GetTriggerName()

const std::string & apollo::data::TriggerBase::GetTriggerName ( ) const
inline

在文件 trigger_base.h47 行定义.

47{ return trigger_name_; }

◆ GetValidValueInRange()

uint64_t apollo::data::TriggerBase::GetValidValueInRange ( const double  desired_value,
const double  min_limit,
const double  max_limit 
) const
protected

在文件 trigger_base.cc48 行定义.

50 {
51 return SecondsToNanoSeconds(desired_value < min_limit
52 ? min_limit
53 : desired_value > max_limit ? max_limit
54 : desired_value);
55}
uint64_t SecondsToNanoSeconds(const double seconds) const

◆ Init()

bool apollo::data::TriggerBase::Init ( const SmartRecordTrigger trigger_conf)
virtual

在文件 trigger_base.cc25 行定义.

25 {
26 LockTrigger(trigger_conf);
27 if (trigger_obj_ == nullptr) {
28 AERROR << "failed to lock trigger " << GetTriggerName();
29 return false;
30 }
31 return true;
32}
const std::string & GetTriggerName() const
std::unique_ptr< Trigger > trigger_obj_
#define AERROR
Definition log.h:44

◆ Pull()

◆ SecondsToNanoSeconds()

uint64_t apollo::data::TriggerBase::SecondsToNanoSeconds ( const double  seconds) const

在文件 trigger_base.cc34 行定义.

34 {
35 static constexpr uint64_t kSecondsToNanoSecondsFactor = 1000000000UL;
36 return static_cast<uint64_t>(kSecondsToNanoSecondsFactor * seconds);
37}

◆ ShouldRestore()

◆ TriggerIt()

void apollo::data::TriggerBase::TriggerIt ( const uint64_t  msg_time) const
protected

在文件 trigger_base.cc57 行定义.

57 {
58 static constexpr float kMaxBackwardTime = 80.0;
59 static constexpr float kMaxForwardTime = 80.0;
60 static constexpr uint64_t kZero = 0.0;
61 const uint64_t backward_time = GetValidValueInRange(
62 trigger_obj_->backward_time(), kZero, kMaxBackwardTime);
63 const uint64_t forward_time = GetValidValueInRange(
64 trigger_obj_->forward_time(), kZero, kMaxForwardTime);
65 IntervalPool::Instance()->AddInterval(msg_time - backward_time,
66 msg_time + forward_time);
67 IntervalPool::Instance()->LogIntervalEvent(
68 trigger_obj_->trigger_name(), trigger_obj_->description(), msg_time,
69 backward_time, forward_time);
70}
uint64_t GetValidValueInRange(const double desired_value, const double min_limit, const double max_limit) const

类成员变量说明

◆ trigger_name_

std::string apollo::data::TriggerBase::trigger_name_
protected

在文件 trigger_base.h59 行定义.

◆ trigger_obj_

std::unique_ptr<Trigger> apollo::data::TriggerBase::trigger_obj_ = nullptr
protected

在文件 trigger_base.h60 行定义.


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