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

Public 成员函数

 HuaCeTextParser (const config::Config &config)
 
bool PrepareMessage () override
 
- Public 成员函数 继承自 apollo::drivers::gnss::HuaCeBaseParser
 HuaCeBaseParser ()
 
 HuaCeBaseParser (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::HuaCeBaseParser
void PrepareMessageStatus (const uint8_t &system_state, const uint8_t &satellite_status)
 
- Protected 成员函数 继承自 apollo::drivers::gnss::Parser
 Parser ()
 
- Protected 属性 继承自 apollo::drivers::gnss::HuaCeBaseParser
HuaCeMessage decode_message_
 
- Protected 属性 继承自 apollo::drivers::gnss::Parser
const uint8_t * data_ = nullptr
 
const uint8_t * data_end_ = nullptr
 

详细描述

在文件 huace_text_parser.cc45 行定义.

构造及析构函数说明

◆ HuaCeTextParser()

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

成员函数说明

◆ PrepareMessage()

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

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

在文件 huace_text_parser.cc63 行定义.

63 {
64 ADEBUG << "HUACE ASCII is: " << data_;
65
66 // message may be truncated, just save the last message
67 const uint8_t *data_start = data_end_;
68 for (; data_start != data_; --data_start) {
69 if (*data_start == '$') {
70 break;
71 }
72 }
73 if (data_start != data_) {
74 AWARN << "HUACE message has been truncated: " << data_;
75 }
76
77 if (*data_start != '$') {
78 input_str_.append(reinterpret_cast<const char *>(data_start),
79 std::distance(data_start, data_end_));
80 } else {
81 input_str_.assign(reinterpret_cast<const char *>(data_start),
82 std::distance(data_start, data_end_));
83 }
84
85 if (*(data_end_ - 1) != 0x0A) {
86 AWARN << "HUACE ASCII message is not complete: " << data_start;
87 return false;
88 }
89
90 std::vector<std::string> fields;
91 std::stringstream ss(input_str_.substr(0, input_str_.rfind('*')));
92 for (std::string field; std::getline(ss, field, ',');) {
93 fields.push_back(field);
94 }
95 if (fields.empty()) {
96 return false;
97 }
98 auto valid_fields = [&]() -> bool {
99 for (size_t i = 1; i < fields.size(); ++i) {
100 if (fields[i].empty()) {
101 fields[i] = "0";
102 } else if (i == 33 && fields[i] == "X") {
103 continue;
104 } else if (fields[i].find_first_not_of("0123456789.- ") !=
105 std::string::npos) {
106 AERROR << "HUACE ASCII message field error: " << fields[i]
107 << ", input str: " << input_str_;
108 return false;
109 }
110 }
111 return true;
112 };
113 if (fields[0] == protocol_.GPCHC) {
114 if (fields.size() < protocol_.GPCHC_SIZE) {
115 AERROR << "GPCHC message format error: " << data_start;
116 return false;
117 }
118 if (!valid_fields()) {
119 return false;
120 }
121 PrepareMessageGPCHC(fields);
122 return true;
123 } else if (fields[0] == protocol_.GPCHCX) {
124 if (fields.size() < protocol_.GPCHCX_SIZE) {
125 AERROR << "GPCHCX message format error:" << data_start;
126 return false;
127 }
128 if (!valid_fields()) {
129 return false;
130 }
131 PrepareMessageGPCHCX(fields);
132 return true;
133 }
134 return false;
135}
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

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