|
|
@ -194,8 +194,8 @@ void DBCFile::parseExtraInfo(const QString &content) { |
|
|
|
static QRegularExpression bo_regexp(R"(^BO_ (\w+) (\w+) *: (\w+) (\w+))"); |
|
|
|
static QRegularExpression bo_regexp(R"(^BO_ (\w+) (\w+) *: (\w+) (\w+))"); |
|
|
|
static QRegularExpression sg_regexp(R"(^SG_ (\w+) : (\d+)\|(\d+)@(\d+)([\+|\-]) \(([0-9.+\-eE]+),([0-9.+\-eE]+)\) \[([0-9.+\-eE]+)\|([0-9.+\-eE]+)\] \"(.*)\" (.*))"); |
|
|
|
static QRegularExpression sg_regexp(R"(^SG_ (\w+) : (\d+)\|(\d+)@(\d+)([\+|\-]) \(([0-9.+\-eE]+),([0-9.+\-eE]+)\) \[([0-9.+\-eE]+)\|([0-9.+\-eE]+)\] \"(.*)\" (.*))"); |
|
|
|
static QRegularExpression sgm_regexp(R"(^SG_ (\w+) (\w+) *: (\d+)\|(\d+)@(\d+)([\+|\-]) \(([0-9.+\-eE]+),([0-9.+\-eE]+)\) \[([0-9.+\-eE]+)\|([0-9.+\-eE]+)\] \"(.*)\" (.*))"); |
|
|
|
static QRegularExpression sgm_regexp(R"(^SG_ (\w+) (\w+) *: (\d+)\|(\d+)@(\d+)([\+|\-]) \(([0-9.+\-eE]+),([0-9.+\-eE]+)\) \[([0-9.+\-eE]+)\|([0-9.+\-eE]+)\] \"(.*)\" (.*))"); |
|
|
|
static QRegularExpression msg_comment_regexp(R"(^CM_ BO_ *(\w+) *\"(.*)\";)"); |
|
|
|
static QRegularExpression msg_comment_regexp(R"(^CM_ BO_ *(\w+) *\"([^"]*)\";)"); |
|
|
|
static QRegularExpression sg_comment_regexp(R"(^CM_ SG_ *(\w+) *(\w+) *\"(.*)\";)"); |
|
|
|
static QRegularExpression sg_comment_regexp(R"(^CM_ SG_ *(\w+) *(\w+) *\"([^"]*)\";)"); |
|
|
|
static QRegularExpression val_regexp(R"(VAL_ (\w+) (\w+) (\s*[-+]?[0-9]+\s+\".+?\"[^;]*))"); |
|
|
|
static QRegularExpression val_regexp(R"(VAL_ (\w+) (\w+) (\s*[-+]?[0-9]+\s+\".+?\"[^;]*))"); |
|
|
|
|
|
|
|
|
|
|
|
int line_num = 0; |
|
|
|
int line_num = 0; |
|
|
@ -212,7 +212,7 @@ void DBCFile::parseExtraInfo(const QString &content) { |
|
|
|
uint32_t address = 0; |
|
|
|
uint32_t address = 0; |
|
|
|
while (!stream.atEnd()) { |
|
|
|
while (!stream.atEnd()) { |
|
|
|
++line_num; |
|
|
|
++line_num; |
|
|
|
line = stream.readLine().trimmed(); |
|
|
|
line = stream.readLine(); |
|
|
|
if (line.startsWith("BO_ ")) { |
|
|
|
if (line.startsWith("BO_ ")) { |
|
|
|
auto match = bo_regexp.match(line); |
|
|
|
auto match = bo_regexp.match(line); |
|
|
|
dbc_assert(match.hasMatch()); |
|
|
|
dbc_assert(match.hasMatch()); |
|
|
@ -244,12 +244,20 @@ void DBCFile::parseExtraInfo(const QString &content) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} else if (line.startsWith("CM_ BO_")) { |
|
|
|
} else if (line.startsWith("CM_ BO_")) { |
|
|
|
|
|
|
|
if (!line.endsWith("\";")) { |
|
|
|
|
|
|
|
int pos = stream.pos() - line.length() - 1; |
|
|
|
|
|
|
|
line = content.mid(pos, content.indexOf("\";", pos)); |
|
|
|
|
|
|
|
} |
|
|
|
auto match = msg_comment_regexp.match(line); |
|
|
|
auto match = msg_comment_regexp.match(line); |
|
|
|
dbc_assert(match.hasMatch()); |
|
|
|
dbc_assert(match.hasMatch()); |
|
|
|
if (auto m = (cabana::Msg *)msg(match.captured(1).toUInt())) { |
|
|
|
if (auto m = (cabana::Msg *)msg(match.captured(1).toUInt())) { |
|
|
|
m->comment = match.captured(2).trimmed(); |
|
|
|
m->comment = match.captured(2).trimmed(); |
|
|
|
} |
|
|
|
} |
|
|
|
} else if (line.startsWith("CM_ SG_ ")) { |
|
|
|
} else if (line.startsWith("CM_ SG_ ")) { |
|
|
|
|
|
|
|
if (!line.endsWith("\";")) { |
|
|
|
|
|
|
|
int pos = stream.pos() - line.length() - 1; |
|
|
|
|
|
|
|
line = content.mid(pos, content.indexOf("\";", pos)); |
|
|
|
|
|
|
|
} |
|
|
|
auto match = sg_comment_regexp.match(line); |
|
|
|
auto match = sg_comment_regexp.match(line); |
|
|
|
dbc_assert(match.hasMatch()); |
|
|
|
dbc_assert(match.hasMatch()); |
|
|
|
if (auto s = get_sig(match.captured(1).toUInt(), match.captured(2))) { |
|
|
|
if (auto s = get_sig(match.captured(1).toUInt(), match.captured(2))) { |
|
|
|