cabana: use the same double precision as the dbc file (#28234)

pull/28235/head
Dean Lee 2 years ago committed by GitHub
parent e6c9e764c0
commit ac2c87246a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      tools/cabana/dbc/dbc.h
  2. 5
      tools/cabana/dbc/dbcfile.cc
  3. 4
      tools/cabana/signalview.cc

@ -1,5 +1,6 @@
#pragma once #pragma once
#include <limits>
#include <QList> #include <QList>
#include <QMetaType> #include <QMetaType>
#include <QString> #include <QString>
@ -85,3 +86,5 @@ int bigEndianBitIndex(int index);
void updateSigSizeParamsFromRange(cabana::Signal &s, int start_bit, int size); void updateSigSizeParamsFromRange(cabana::Signal &s, int start_bit, int size);
std::pair<int, int> getSignalRange(const cabana::Signal *s); std::pair<int, int> getSignalRange(const cabana::Signal *s);
inline std::vector<std::string> allDBCNames() { return get_dbc_names(); } inline std::vector<std::string> allDBCNames() { return get_dbc_names(); }
inline QString doubleToString(double value) { return QString::number(value, 'g', std::numeric_limits<double>::digits10); }

@ -4,7 +4,6 @@
#include <QFileInfo> #include <QFileInfo>
#include <QRegularExpression> #include <QRegularExpression>
#include <QTextStream> #include <QTextStream>
#include <limits>
#include <numeric> #include <numeric>
#include <sstream> #include <sstream>
@ -257,8 +256,8 @@ QString DBCFile::generateDBC() {
.arg(sig->size) .arg(sig->size)
.arg(sig->is_little_endian ? '1' : '0') .arg(sig->is_little_endian ? '1' : '0')
.arg(sig->is_signed ? '-' : '+') .arg(sig->is_signed ? '-' : '+')
.arg(sig->factor, 0, 'g', std::numeric_limits<double>::digits10) .arg(doubleToString(sig->factor))
.arg(sig->offset, 0, 'g', std::numeric_limits<double>::digits10) .arg(doubleToString(sig->offset))
.arg(sig->min) .arg(sig->min)
.arg(sig->max) .arg(sig->max)
.arg(sig->unit); .arg(sig->unit);

@ -124,8 +124,8 @@ QVariant SignalModel::data(const QModelIndex &index, int role) const {
case Item::Sig: return item->sig_val; case Item::Sig: return item->sig_val;
case Item::Name: return item->sig->name; case Item::Name: return item->sig->name;
case Item::Size: return item->sig->size; case Item::Size: return item->sig->size;
case Item::Offset: return QString::number(item->sig->offset, 'f', 6); case Item::Offset: return doubleToString(item->sig->offset);
case Item::Factor: return QString::number(item->sig->factor, 'f', 6); case Item::Factor: return doubleToString(item->sig->factor);
case Item::Unit: return item->sig->unit; case Item::Unit: return item->sig->unit;
case Item::Comment: return item->sig->comment; case Item::Comment: return item->sig->comment;
case Item::Min: return item->sig->min; case Item::Min: return item->sig->min;

Loading…
Cancel
Save