Skip to content

Commit

Permalink
Add ability to save decoded CSV with absolute timestamp
Browse files Browse the repository at this point in the history
  • Loading branch information
collin80 committed Jul 12, 2023
1 parent b006ac7 commit 6eadfe9
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 5 deletions.
3 changes: 3 additions & 0 deletions mainsettingsdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) :
}
}

ui->cbCSVAbsTime->setChecked(settings.value("Main/CSVAbsTime", false).toBool());
ui->comboSendingBus->setCurrentIndex(settings.value("Playback/SendingBus", 4).toInt());
ui->cbUseFiltered->setChecked(settings.value("Main/UseFiltered", false).toBool());
ui->cbUseOpenGL->setChecked(settings.value("Main/UseOpenGL", false).toBool());
Expand Down Expand Up @@ -120,6 +121,7 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) :
connect(ui->rbMicros, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
connect(ui->rbSysClock, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
connect(ui->rbMillis, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
connect(ui->cbCSVAbsTime, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
connect(ui->comboSendingBus, SIGNAL(currentIndexChanged(int)), this, SLOT(updateSettings()));
connect(ui->cbUseFiltered, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
connect(ui->lineClockFormat, SIGNAL(editingFinished()), this, SLOT(updateSettings()));
Expand Down Expand Up @@ -190,6 +192,7 @@ void MainSettingsDialog::updateSettings()
settings.setValue("Main/TimeSeconds", ui->rbSeconds->isChecked());
settings.setValue("Main/TimeMillis", ui->rbMillis->isChecked());
settings.setValue("Main/TimeClock", ui->rbSysClock->isChecked());
settings.setValue("Main/CSVAbsTime", ui->cbCSVAbsTime->isChecked());
settings.setValue("Playback/SendingBus", ui->comboSendingBus->currentIndex());
settings.setValue("Main/UseFiltered", ui->cbUseFiltered->isChecked());
settings.setValue("Main/UseOpenGL", ui->cbUseOpenGL->isChecked());
Expand Down
31 changes: 26 additions & 5 deletions mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,8 @@ void MainWindow::readUpdateableSettings()
int bpl = settings.value("Main/BytesPerLine", 8).toInt();
model->setBytesPerLine(bpl);

CSVAbsTime = settings.value("Main/CSVAbsTime", false).toBool();

if (settings.value("Main/FilterLabeling", false).toBool())
ui->listFilters->setMaximumWidth(250);
else
Expand Down Expand Up @@ -1102,9 +1104,17 @@ Data Bytes: 88 10 00 13 BB 00 06 00
int dataStartCol = 0;

QString builderString;
//time
builderString += tr("Time") + ",";
dataStartCol++;
if (CSVAbsTime)
{
builderString += tr("Year") + "," + tr("Month") + "," + tr("Day") + "," + tr("Hour") + "," + tr("Minute") + "," + tr("Second") + "," + tr("Ms") + ",";
dataStartCol += 7;
}
else
{
//time
builderString += tr("Time") + ",";
dataStartCol++;
}
//id
builderString += tr("ID") + ",";
dataStartCol++;
Expand Down Expand Up @@ -1184,8 +1194,19 @@ Data Bytes: 88 10 00 13 BB 00 06 00
dataLen = frame->payload().count();

QString builderString;
builderString += QString::number((frame->timeStamp().microSeconds() / 1000000.0), 'f', 6) + ",";
dataColumnsAdded++;
if (CSVAbsTime)
{
QDateTime dt = QDateTime::fromMSecsSinceEpoch(frame->timeStamp().microSeconds() / 1000);
builderString += QString::number(dt.date().year()) + "," + QString::number(dt.date().month()) + ",";
builderString += QString::number(dt.date().day()) + "," + QString::number(dt.time().hour()) + ",";
builderString += QString::number(dt.time().minute()) + "," + QString::number(dt.time().second()) + ",";
builderString += QString::number(dt.time().msec()) + ",";
dataColumnsAdded += 7;
}
else {
builderString += QString::number((frame->timeStamp().microSeconds() / 1000000.0), 'f', 6) + ",";
dataColumnsAdded++;
}
//id
builderString += Utility::formatCANID(frame->frameId(), frame->hasExtendedFrameFormat()) + ",";
dataColumnsAdded++;
Expand Down
1 change: 1 addition & 0 deletions mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ public slots:
bool useHex;
bool allowCapture;
bool ignoreDBCColors;
bool CSVAbsTime;
bool bDirty; //have frames been added or subtracted since the last save/load?
bool useFiltered; //should sub-windows use the unfiltered or filtered frames list?

Expand Down
7 changes: 7 additions & 0 deletions ui/mainsettingsdialog.ui
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,13 @@
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="cbCSVAbsTime">
<property name="text">
<string>Use absolute time in decoded CSV output</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
Expand Down

0 comments on commit 6eadfe9

Please sign in to comment.