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

#include <parser_common.h>

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

Public 成员函数

 ASCIIParser ()
 
void Add (const uint8_t *data_start, const uint8_t *data_end, const uint8_t channel=0)
 
const std::string & GetMessage ()
 

详细描述

在文件 parser_common.h 第 72 行定义.

构造及析构函数说明

◆ ASCIIParser()

apollo::drivers::gnss::ASCIIParser::ASCIIParser ( )
inline

在文件 parser_common.h 第 74 行定义.

74{}

成员函数说明

◆ Add()

void apollo::drivers::gnss::ASCIIParser::Add ( const uint8_t *  data_start,
const uint8_t *  data_end,
const uint8_t  channel = 0 
)
inline

在文件 parser_common.h 第 76 行定义.

77 {
78 message_.clear();
79 std::string &message = channel_messages_[channel];
80 // merge message
81 message.append(reinterpret_cast<const char *>(data_start),
82 std::distance(data_start, data_end));
83 std::string::iterator it_s = message.begin();
84 for (auto it = message.begin(); it != message.end(); ++it) {
85 if (*it == '$' || *it == '#') {
86 it_s = it;
87 continue;
88 }
89 if (*it == 0x0A) {
90 if (*it_s == '$' || *it_s == '#') {
91 message_.assign(it_s, it);
92 } else {
93 AERROR << "invalid ascii message: " << message;
94 }
95 it_s = it + 1;
96 }
97 }
98 if (it_s != message.end()) {
99 message.assign(it_s, message.end());
100 } else {
101 message.clear();
102 }
103 }
#define AERROR
Definition log.h:44

◆ GetMessage()

const std::string & apollo::drivers::gnss::ASCIIParser::GetMessage ( )
inline

在文件 parser_common.h 第 105 行定义.

105{ return message_; }

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