63 for (; data_start !=
data_; --data_start) {
64 if (*data_start ==
'$') {
68 if (data_start !=
data_) {
69 AWARN <<
"Forsense message has been truncated: " <<
data_;
72 if (*data_start !=
'$') {
73 input_str_.append(
reinterpret_cast<const char *
>(data_start),
76 input_str_.assign(
reinterpret_cast<const char *
>(data_start),
81 AWARN <<
"Forsense ASCII message is not complete: " << data_start;
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);
93 if (fields[0] == protocol_.
GPYJ) {
94 if (fields.size() < protocol_.
GPYJ_SIZE) {
95 AERROR <<
"GPYJ message format error: " << data_start;
98 PrepareMessageGPYJ(fields);
bool PrepareMessage() override
ForsenseTextParser(const config::Config &config)