cabana: use double for minimum value & maximum value (#28252)

pull/28253/head
Dean Lee 2 years ago committed by GitHub
parent dee611a9bc
commit 36dd49e542
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      tools/cabana/dbc/dbc.h
  2. 8
      tools/cabana/dbc/dbcfile.cc
  3. 10
      tools/cabana/signalview.cc

@ -51,7 +51,8 @@ namespace cabana {
bool is_signed;
double factor, offset;
bool is_little_endian;
QString min, max, unit;
double min, max;
QString unit;
QString comment;
ValueDescription val_desc;
int precision = 0;

@ -217,8 +217,8 @@ void DBCFile::parseExtraInfo(const QString &content) {
}
if (match.hasMatch()) {
if (auto s = get_sig(address, match.captured(1))) {
s->min = match.captured(8 + offset);
s->max = match.captured(9 + offset);
s->min = match.captured(8 + offset).toDouble();
s->max = match.captured(9 + offset).toDouble();
s->unit = match.captured(10 + offset);
}
}
@ -258,8 +258,8 @@ QString DBCFile::generateDBC() {
.arg(sig->is_signed ? '-' : '+')
.arg(doubleToString(sig->factor))
.arg(doubleToString(sig->offset))
.arg(sig->min)
.arg(sig->max)
.arg(doubleToString(sig->min))
.arg(doubleToString(sig->max))
.arg(sig->unit);
if (!sig->comment.isEmpty()) {
signal_comment += QString("CM_ SG_ %1 %2 \"%3\";\n").arg(address).arg(sig->name).arg(sig->comment);

@ -128,8 +128,8 @@ QVariant SignalModel::data(const QModelIndex &index, int role) const {
case Item::Factor: return doubleToString(item->sig->factor);
case Item::Unit: return item->sig->unit;
case Item::Comment: return item->sig->comment;
case Item::Min: return item->sig->min;
case Item::Max: return item->sig->max;
case Item::Min: return doubleToString(item->sig->min);
case Item::Max: return doubleToString(item->sig->max);
case Item::Desc: {
QStringList val_desc;
for (auto &[val, desc] : item->sig->val_desc) {
@ -166,8 +166,8 @@ bool SignalModel::setData(const QModelIndex &index, const QVariant &value, int r
case Item::Factor: s.factor = value.toDouble(); break;
case Item::Unit: s.unit = value.toString(); break;
case Item::Comment: s.comment = value.toString(); break;
case Item::Min: s.min = value.toString(); break;
case Item::Max: s.max = value.toString(); break;
case Item::Min: s.min = value.toDouble(); break;
case Item::Max: s.max = value.toDouble(); break;
case Item::Desc: s.val_desc = value.value<ValueDescription>(); break;
default: return false;
}
@ -230,7 +230,7 @@ void SignalModel::addSignal(int start_bit, int size, bool little_endian) {
msg = dbc()->msg(msg_id);
}
cabana::Signal sig = {.name = dbc()->newSignalName(msg_id), .is_little_endian = little_endian, .factor = 1, .min = "0", .max = QString::number(std::pow(2, size) - 1)};
cabana::Signal sig = {.name = dbc()->newSignalName(msg_id), .is_little_endian = little_endian, .factor = 1, .min = 0, .max = std::pow(2, size) - 1};
updateSigSizeParamsFromRange(sig, start_bit, size);
UndoStack::push(new AddSigCommand(msg_id, sig));
}

Loading…
Cancel
Save