Apollo 10.0
自动驾驶开放平台
apollo::drivers::gnss::ForsenseTextParser类 参考
类 apollo::drivers::gnss::ForsenseTextParser 继承关系图:
apollo::drivers::gnss::ForsenseTextParser 的协作图:

Public 成员函数

 ForsenseTextParser (const config::Config &config)
 
bool PrepareMessage () override
 
- Public 成员函数 继承自 apollo::drivers::gnss::ForsenseBaseParser
 ForsenseBaseParser ()
 
 ForsenseBaseParser (const config::Config &config)
 
virtual void GetMessages (MessageInfoVec *messages)
 
- Public 成员函数 继承自 apollo::drivers::gnss::Parser
virtual ~Parser ()
 
void Update (const uint8_t *data, size_t length)
 
void Update (const std::string &data)
 
virtual MessageType GetMessage (MessagePtr *message_ptr)
 
virtual bool GetInsStat (MessagePtr *message_ptr)
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 apollo::drivers::gnss::Parser
static ParserCreateNovatel (const config::Config &config)
 
static ParserCreateHuaCeText (const config::Config &config)
 
static ParserCreateAsensing (const config::Config &config)
 
static ParserCreateBroadGnssText (const config::Config &config)
 
static ParserCreateEnbroad (const config::Config &config)
 
static ParserCreateForsenseText (const config::Config &config)
 
static ParserCreateParser (const config::Config &config)
 
static ParserCreateRtcmV3 (bool is_base_station=false)
 
- Protected 成员函数 继承自 apollo::drivers::gnss::ForsenseBaseParser
void PrepareMessageStatus (const uint8_t &system_state, const uint8_t &satellite_status)
 
- Protected 成员函数 继承自 apollo::drivers::gnss::Parser
 Parser ()
 
- Protected 属性 继承自 apollo::drivers::gnss::ForsenseBaseParser
ForsenseMessage decode_message_
 
- Protected 属性 继承自 apollo::drivers::gnss::Parser
const uint8_t * data_ = nullptr
 
const uint8_t * data_end_ = nullptr
 

详细描述

在文件 forsense_text_parser.cc41 行定义.

构造及析构函数说明

◆ ForsenseTextParser()

apollo::drivers::gnss::ForsenseTextParser::ForsenseTextParser ( const config::Config config)
inlineexplicit

成员函数说明

◆ PrepareMessage()

bool apollo::drivers::gnss::ForsenseTextParser::PrepareMessage ( )
overridevirtual

实现了 apollo::drivers::gnss::ForsenseBaseParser.

在文件 forsense_text_parser.cc58 行定义.

58 {
59 ADEBUG << "Forsense ASCII is: " << data_;
60
61 // message may be truncated, just save the last message
62 const uint8_t *data_start = data_end_;
63 for (; data_start != data_; --data_start) {
64 if (*data_start == '$') {
65 break;
66 }
67 }
68 if (data_start != data_) {
69 AWARN << "Forsense message has been truncated: " << data_;
70 }
71
72 if (*data_start != '$') {
73 input_str_.append(reinterpret_cast<const char *>(data_start),
74 std::distance(data_start, data_end_));
75 } else {
76 input_str_.assign(reinterpret_cast<const char *>(data_start),
77 std::distance(data_start, data_end_));
78 }
79
80 if (*(data_end_ - 1) != 0x0A) {
81 AWARN << "Forsense ASCII message is not complete: " << data_start;
82 return false;
83 }
84
85 std::vector<std::string> fields;
86 std::stringstream ss(input_str_);
87 for (std::string field; std::getline(ss, field, ',');) {
88 fields.push_back(field);
89 }
90 if (fields.empty()) {
91 return false;
92 }
93 if (fields[0] == protocol_.GPYJ) {
94 if (fields.size() < protocol_.GPYJ_SIZE) {
95 AERROR << "GPYJ message format error: " << data_start;
96 return false;
97 }
98 PrepareMessageGPYJ(fields);
99 return true;
100 }
101 return false;
102}
const uint8_t * data_
Definition parser.h:138
const uint8_t * data_end_
Definition parser.h:139
#define ADEBUG
Definition log.h:41
#define AERROR
Definition log.h:44
#define AWARN
Definition log.h:43

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