Apollo 10.0
自动驾驶开放平台
apollo::drivers::gnss::DataParser类 参考

#include <data_parser.h>

apollo::drivers::gnss::DataParser 的协作图:

Public 成员函数

 DataParser (const config::Config &config, const std::shared_ptr< apollo::cyber::Node > &node)
 
 ~DataParser ()
 
bool Init ()
 
void ParseRawData (const std::string &msg)
 

详细描述

在文件 data_parser.h44 行定义.

构造及析构函数说明

◆ DataParser()

apollo::drivers::gnss::DataParser::DataParser ( const config::Config config,
const std::shared_ptr< apollo::cyber::Node > &  node 
)

在文件 data_parser.cc58 行定义.

60 : config_(config), tf_broadcaster_(node), node_(node) {
61 std::string utm_target_param;
62
63 wgs84pj_source_ = pj_init_plus(WGS84_TEXT);
64 utm_target_ = pj_init_plus(config_.proj4_text().c_str());
65 gnss_status_.set_solution_status(0);
66 gnss_status_.set_num_sats(0);
67 gnss_status_.set_position_type(0);
68 gnss_status_.set_solution_completed(false);
69 ins_status_.set_type(InsStatus::INVALID);
70}

◆ ~DataParser()

apollo::drivers::gnss::DataParser::~DataParser ( )
inline

在文件 data_parser.h48 行定义.

48{}

成员函数说明

◆ Init()

bool apollo::drivers::gnss::DataParser::Init ( )

在文件 data_parser.cc72 行定义.

72 {
73 ins_status_.mutable_header()->set_timestamp_sec(
74 cyber::Time::Now().ToSecond());
75 gnss_status_.mutable_header()->set_timestamp_sec(
76 cyber::Time::Now().ToSecond());
77
78 gnssstatus_writer_ = node_->CreateWriter<GnssStatus>(FLAGS_gnss_status_topic);
79 insstatus_writer_ = node_->CreateWriter<InsStatus>(FLAGS_ins_status_topic);
80 gnssbestpose_writer_ =
81 node_->CreateWriter<GnssBestPose>(FLAGS_gnss_best_pose_topic);
82 corrimu_writer_ = node_->CreateWriter<CorrectedImu>(FLAGS_imu_topic);
83 insstat_writer_ = node_->CreateWriter<InsStat>(FLAGS_ins_stat_topic);
84 gnssephemeris_writer_ =
85 node_->CreateWriter<GnssEphemeris>(FLAGS_gnss_rtk_eph_topic);
86 epochobservation_writer_ =
87 node_->CreateWriter<EpochObservation>(FLAGS_gnss_rtk_obs_topic);
88 heading_writer_ = node_->CreateWriter<Heading>(FLAGS_heading_topic);
89 rawimu_writer_ = node_->CreateWriter<Imu>(FLAGS_raw_imu_topic);
90 gps_writer_ = node_->CreateWriter<Gps>(FLAGS_gps_topic);
91
92 common::util::FillHeader("gnss", &ins_status_);
93 insstatus_writer_->Write(ins_status_);
94 common::util::FillHeader("gnss", &gnss_status_);
95 gnssstatus_writer_->Write(gnss_status_);
96
97 AINFO << "Creating data parser of format: " << config_.data().format();
98 data_parser_.reset(Parser::CreateParser(config_));
99 if (!data_parser_) {
100 AFATAL << "Failed to create data parser.";
101 return false;
102 }
103
104 init_flag_ = true;
105 return true;
106}
static Time Now()
get the current time.
Definition time.cc:57
static Parser * CreateParser(const config::Config &config)
Definition parser.h:88
#define AFATAL
Definition log.h:45
#define AINFO
Definition log.h:42

◆ ParseRawData()

void apollo::drivers::gnss::DataParser::ParseRawData ( const std::string &  msg)

在文件 data_parser.cc108 行定义.

108 {
109 if (!init_flag_) {
110 AERROR << "Data parser not init.";
111 return;
112 }
113
114 data_parser_->Update(msg);
115 MessageInfoVec messages;
116 data_parser_->GetMessages(&messages);
117 for (auto &message : messages) {
118 DispatchMessage(message);
119 }
120}
#define AERROR
Definition log.h:44
std::vector< MessageInfo > MessageInfoVec
Definition parser.h:57

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