66#include < regex>
77#include < vector>
88
9- namespace libdbc {
9+ namespace Libdbc {
1010
1111const auto floatPattern = " (-?\\ d+\\ .?(\\ d+)?)" ; // Can be negative
1212
@@ -45,12 +45,10 @@ constexpr unsigned MESSAGE_NAME_GROUP = 3;
4545constexpr unsigned MESSAGE_SIZE_GROUP = 4 ;
4646constexpr unsigned MESSAGE_NODE_GROUP = 5 ;
4747
48- enum VALToken { Identifier = 0 , CANId, SignalName, Value, Description };
49-
50- struct VALObject {
48+ struct Value {
5149 uint32_t can_id;
5250 std::string signal_name;
53- std::vector<Signal::SignalValueDescriptions> vd ;
51+ std::vector<Signal::ValueDescription> value_descriptions ;
5452};
5553
5654DbcParser::DbcParser ()
@@ -79,7 +77,7 @@ void DbcParser::parse_file(const std::string& file) {
7977 parse_dbc_nodes (stream);
8078
8179 while (!stream.eof ()) {
82- utils ::StreamHandler::get_next_non_blank_line (stream, line);
80+ Utils ::StreamHandler::get_next_non_blank_line (stream, line);
8381 lines.push_back (line);
8482 }
8583
@@ -94,14 +92,14 @@ std::vector<std::string> DbcParser::get_nodes() const {
9492 return nodes;
9593}
9694
97- std::vector<libdbc ::Message> DbcParser::get_messages () const {
95+ std::vector<Libdbc ::Message> DbcParser::get_messages () const {
9896 return messages;
9997}
10098
101- Message::ParseSignalsStatus DbcParser::parseMessage (const uint32_t message_id, const std::vector<uint8_t >& data, std::vector<double >& out_values) {
99+ Message::ParseSignalsStatus DbcParser::parse_message (const uint32_t message_id, const std::vector<uint8_t >& data, std::vector<double >& out_values) {
102100 for (const auto & message : messages) {
103101 if (message.id () == message_id) {
104- return message.parseSignals (data, out_values);
102+ return message.parse_signals (data, out_values);
105103 }
106104 }
107105 return Message::ParseSignalsStatus::ErrorUnknownID;
@@ -111,43 +109,43 @@ void DbcParser::parse_dbc_header(std::istream& file_stream) {
111109 std::string line;
112110 std::smatch match;
113111
114- utils ::StreamHandler::get_line (file_stream, line);
112+ Utils ::StreamHandler::get_line (file_stream, line);
115113
116114 if (!std::regex_search (line, match, version_re)) {
117- throw validity_error ();
115+ throw ValidityError ();
118116 }
119117
120118 version = match.str (2 );
121119
122- utils ::StreamHandler::get_next_non_blank_line (file_stream, line);
123- utils ::StreamHandler::skip_to_next_blank_line (file_stream, line);
124- utils ::StreamHandler::get_next_non_blank_line (file_stream, line);
120+ Utils ::StreamHandler::get_next_non_blank_line (file_stream, line);
121+ Utils ::StreamHandler::skip_to_next_blank_line (file_stream, line);
122+ Utils ::StreamHandler::get_next_non_blank_line (file_stream, line);
125123
126124 if (!std::regex_search (line, match, bit_timing_re)) {
127- throw validity_error ();
125+ throw ValidityError ();
128126 }
129127}
130128
131129void DbcParser::parse_dbc_nodes (std::istream& file_stream) {
132130 std::string line;
133131 std::smatch match;
134132
135- utils ::StreamHandler::get_next_non_blank_line (file_stream, line);
133+ Utils ::StreamHandler::get_next_non_blank_line (file_stream, line);
136134
137135 if (!std::regex_search (line, match, node_re)) {
138- throw validity_error ();
136+ throw ValidityError ();
139137 }
140138
141139 if (match.length () > 2 ) {
142140 std::string node = match.str (2 );
143- utils ::String::split (node, nodes);
141+ Utils ::String::split (node, nodes);
144142 }
145143}
146144
147145void DbcParser::parse_dbc_messages (const std::vector<std::string>& lines) {
148146 std::smatch match;
149147
150- std::vector<VALObject > signal_value;
148+ std::vector<Value > signal_value;
151149
152150 for (const auto & line : lines) {
153151 if (std::regex_search (line, match, message_re)) {
@@ -170,18 +168,18 @@ void DbcParser::parse_dbc_messages(const std::vector<std::string>& lines) {
170168 bool is_bigendian = (std::stoul (match.str (SIGNAL_ENDIAN_GROUP)) == 0 );
171169 bool is_signed = (match.str (SIGNAL_SIGNED_GROUP) == " -" );
172170
173- double factor = utils ::String::convert_to_double (match.str (SIGNAL_FACTOR_GROUP));
174- double offset = utils ::String::convert_to_double (match.str (SIGNAL_OFFSET_GROUP));
175- double min = utils ::String::convert_to_double (match.str (SIGNAL_MIN_GROUP));
176- double max = utils ::String::convert_to_double (match.str (SIGNAL_MAX_GROUP));
171+ double factor = Utils ::String::convert_to_double (match.str (SIGNAL_FACTOR_GROUP));
172+ double offset = Utils ::String::convert_to_double (match.str (SIGNAL_OFFSET_GROUP));
173+ double min = Utils ::String::convert_to_double (match.str (SIGNAL_MIN_GROUP));
174+ double max = Utils ::String::convert_to_double (match.str (SIGNAL_MAX_GROUP));
177175
178176 std::string unit = match.str (SIGNAL_UNIT_GROUP);
179177
180178 std::vector<std::string> receivers;
181- utils ::String::split (match.str (SIGNAL_RECIEVER_GROUP), receivers, ' ,' );
179+ Utils ::String::split (match.str (SIGNAL_RECIEVER_GROUP), receivers, ' ,' );
182180
183181 Signal sig (name, is_multiplexed, start_bit, size, is_bigendian, is_signed, factor, offset, min, max, unit, receivers);
184- messages.back ().appendSignal (sig);
182+ messages.back ().append_signal (sig);
185183 continue ;
186184 }
187185
@@ -196,27 +194,27 @@ void DbcParser::parse_dbc_messages(const std::vector<std::string>& lines) {
196194 std::sregex_iterator desc_iter (rest_of_descriptions.begin (), rest_of_descriptions.end (), description_re);
197195 std::sregex_iterator desc_end = std::sregex_iterator ();
198196
199- std::vector<Signal::SignalValueDescriptions > values{};
197+ std::vector<Signal::ValueDescription > values{};
200198 for (std::sregex_iterator i = desc_iter; i != desc_end; ++i) {
201199 std::smatch desc_match = *desc_iter;
202200 uint32_t number = static_cast <uint32_t >(std::stoul (desc_match.str (1 )));
203201 std::string text = desc_match.str (2 );
204202
205- values.push_back (Signal::SignalValueDescriptions {number, text});
203+ values.push_back (Signal::ValueDescription {number, text});
206204 ++desc_iter;
207205 }
208206
209- VALObject obj {message_id, signal_name, values};
207+ Value val {message_id, signal_name, values};
210208
211- signal_value.push_back (obj );
209+ signal_value.push_back (val );
212210 continue ;
213211 }
214212 }
215213
216214 for (const auto & signal : signal_value) {
217215 for (auto & msg : messages) {
218216 if (msg.id () == signal.can_id ) {
219- msg.addValueDescription (signal.signal_name , signal.vd );
217+ msg.add_value_description (signal.signal_name , signal.value_descriptions );
220218 break ;
221219 }
222220 }
0 commit comments