2 #include <boost/spirit/include/qi.hpp> 3 #include <boost/algorithm/string.hpp> 10 QDomElement stamp_elem = doc.createElement(
"use_header_stamp");
12 parent_elem.appendChild(stamp_elem);
14 QDomElement discard_elem = doc.createElement(
"discard_large_arrays");
16 parent_elem.appendChild(discard_elem);
18 QDomElement max_elem = doc.createElement(
"max_array_size");
20 parent_elem.appendChild(max_elem);
22 QDomElement bool_elem = doc.createElement(
"boolean_strings_to_number");
24 parent_elem.appendChild(bool_elem);
26 QDomElement suffix_elem = doc.createElement(
"remove_suffix_from_strings");
28 parent_elem.appendChild(suffix_elem);
33 QDomElement stamp_elem = parent_element.firstChildElement(
"use_header_stamp");
36 QDomElement discard_elem = parent_element.firstChildElement(
"discard_large_arrays");
39 QDomElement max_elem = parent_element.firstChildElement(
"max_array_size");
42 QDomElement bool_elem = parent_element.firstChildElement(
"boolean_strings_to_number");
45 QDomElement suffix_elem = parent_element.firstChildElement(
"remove_suffix_from_strings");
51 settings.setValue(prefix +
"/default_topics",
topics);
53 settings.setValue(prefix +
"/max_array_size", (
int)
max_array_size);
61 topics = settings.value(prefix +
"/default_topics",
false).toStringList();
62 use_header_stamp = settings.value(prefix +
"/use_header_stamp",
false).toBool();
63 max_array_size = settings.value(prefix +
"/max_array_size", 100).toInt();
98 parser->parseMessage(serialized_msg, timestamp);
132 bool parsed = boost::spirit::qi::parse(str.data(), str.data() + str.size(),
133 boost::spirit::qi::double_, value);
135 if(!parsed && remover_suffix)
138 while(pos < str.size())
141 if( !std::isdigit(c) && c!=
'-' && c!=
'+' && c!=
'.')
147 if( pos < str.size() )
149 parsed = boost::spirit::qi::parse(str.data(), str.data() + pos,
150 boost::spirit::qi::double_, value);
154 if(!parsed && parse_boolean && str.size() >=4 && str.size() <=5)
156 std::string temp = str;
157 boost::algorithm::to_lower(temp);
163 else if( temp ==
"false" )
void xmlLoadState(const QDomElement &parent_element)
PlotData & getOrCreateNumeric(const std::string &name, PlotGroup::Ptr group={})
void xmlSaveState(QDomDocument &doc, QDomElement &plugin_elem) const
bool discard_large_arrays
bool boolean_strings_to_number
PJ::StringSeries & getStringSeries(const std::string &key)
PlotDataMapRef & _plot_data
PJ::PlotData & getSeries(const std::string &key)
const RosParserConfig & getConfig()
std::map< std::string, std::shared_ptr< RosMessageParser > > _parsers
void setConfig(const RosParserConfig &config)
StringSeries & getOrCreateStringSeries(const std::string &name, PlotGroup::Ptr group={})
bool remove_suffix_from_strings
bool ParseDouble(const std::string &str, double &value, bool remover_suffix, bool parse_boolean)
CompositeParser(PlotDataMapRef &plot_data)
bool parseMessage(const std::string &topic_name, MessageRef serialized_msg, double ×tamp)
void saveToSettings(QSettings &setting, QString prefix) const
RosMessageParser(const std::string &topic_name, PJ::PlotDataMapRef &plot_data)
const RosParserConfig & getConfig() const
void loadFromSettings(const QSettings &settings, QString prefix)
void setConfig(const RosParserConfig &config)