Fixes for loading tesla json files (if you somehow get some)
This commit is contained in:
+4
-25
@@ -1505,28 +1505,12 @@ DBCFile* DBCHandler::loadDBCFile(int idx)
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
DBCFile* DBCHandler::loadJSONFile(int idx)
|
DBCFile* DBCHandler::loadJSONFile(QString filename)
|
||||||
{
|
{
|
||||||
if (idx > -1 && idx < loadedFiles.count()) removeDBCFile(idx);
|
|
||||||
|
|
||||||
QString filename;
|
|
||||||
QFileDialog dialog;
|
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
DBCFile *thisFile;
|
DBCFile *thisFile;
|
||||||
DBC_MESSAGE *pMsg;
|
DBC_MESSAGE *pMsg;
|
||||||
|
|
||||||
QStringList filters;
|
|
||||||
filters.append(QString(tr("JSON File (*.json *.JSON)")));
|
|
||||||
|
|
||||||
dialog.setDirectory(settings.value("DBC/LoadSaveDirectory", dialog.directory().path()).toString());
|
|
||||||
dialog.setFileMode(QFileDialog::ExistingFile);
|
|
||||||
dialog.setNameFilters(filters);
|
|
||||||
dialog.setViewMode(QFileDialog::Detail);
|
|
||||||
|
|
||||||
if (dialog.exec() == QDialog::Accepted)
|
|
||||||
{
|
|
||||||
filename = dialog.selectedFiles()[0];
|
|
||||||
//right now there is only one file type that can be loaded here so just do it.
|
|
||||||
createBlankFile();
|
createBlankFile();
|
||||||
thisFile = &loadedFiles.last();
|
thisFile = &loadedFiles.last();
|
||||||
QFile *inFile = new QFile(filename);
|
QFile *inFile = new QFile(filename);
|
||||||
@@ -1543,7 +1527,7 @@ DBCFile* DBCHandler::loadJSONFile(int idx)
|
|||||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(wholeFileData);
|
QJsonDocument jsonDoc = QJsonDocument::fromJson(wholeFileData);
|
||||||
if (jsonDoc.isNull())
|
if (jsonDoc.isNull())
|
||||||
{
|
{
|
||||||
qDebug() << "Couldn't load the json file, shit the bed, don't know why I did it.";
|
qDebug() << "Couldn't load and parse the JSON file for some reason.";
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
qDebug() << "Loaded JSON";
|
qDebug() << "Loaded JSON";
|
||||||
@@ -1594,8 +1578,8 @@ DBCFile* DBCHandler::loadJSONFile(int idx)
|
|||||||
sig.name = QString(sigIter.key().toUtf8());
|
sig.name = QString(sigIter.key().toUtf8());
|
||||||
sig.factor = sigObj.find("scale").value().toDouble();
|
sig.factor = sigObj.find("scale").value().toDouble();
|
||||||
sig.bias = sigObj.find("offset").value().toDouble();
|
sig.bias = sigObj.find("offset").value().toDouble();
|
||||||
sig.max = sigObj.find("max").value().toInt();
|
sig.max = sigObj.find("max").value().toDouble();
|
||||||
sig.min = sigObj.find("min").value().toInt();
|
sig.min = sigObj.find("min").value().toDouble();
|
||||||
sig.startBit = sigObj.find("start_position").value().toInt();
|
sig.startBit = sigObj.find("start_position").value().toInt();
|
||||||
sig.unitName = sigObj.find("units").value().toString();
|
sig.unitName = sigObj.find("units").value().toString();
|
||||||
sig.signalSize = sigObj.find("width").value().toInt();
|
sig.signalSize = sigObj.find("width").value().toInt();
|
||||||
@@ -1669,12 +1653,7 @@ DBCFile* DBCHandler::loadJSONFile(int idx)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
settings.setValue("DBC/LoadSaveDirectory", dialog.directory().path());
|
|
||||||
return thisFile;
|
return thisFile;
|
||||||
}
|
|
||||||
|
|
||||||
return nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DBCHandler::removeDBCFile(int idx)
|
void DBCHandler::removeDBCFile(int idx)
|
||||||
|
|||||||
+1
-1
@@ -113,7 +113,7 @@ public:
|
|||||||
DBCFile* getFileByIdx(int idx);
|
DBCFile* getFileByIdx(int idx);
|
||||||
DBCFile* getFileByName(QString name);
|
DBCFile* getFileByName(QString name);
|
||||||
int createBlankFile();
|
int createBlankFile();
|
||||||
DBCFile* loadJSONFile(int);
|
DBCFile* loadJSONFile(QString);
|
||||||
static DBCHandler *getReference();
|
static DBCHandler *getReference();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
+34
-20
@@ -1,6 +1,7 @@
|
|||||||
#include "dbcloadsavewindow.h"
|
#include "dbcloadsavewindow.h"
|
||||||
#include "ui_dbcloadsavewindow.h"
|
#include "ui_dbcloadsavewindow.h"
|
||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
|
#include <QFileDialog>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <qevent.h>
|
#include <qevent.h>
|
||||||
#include "helpwindow.h"
|
#include "helpwindow.h"
|
||||||
@@ -67,7 +68,6 @@ DBCLoadSaveWindow::DBCLoadSaveWindow(const QVector<CANFrame> *frames, QWidget *p
|
|||||||
connect(ui->btnNewDBC, &QAbstractButton::clicked, this, &DBCLoadSaveWindow::newFile);
|
connect(ui->btnNewDBC, &QAbstractButton::clicked, this, &DBCLoadSaveWindow::newFile);
|
||||||
connect(ui->tableFiles, &QTableWidget::cellChanged, this, &DBCLoadSaveWindow::cellChanged);
|
connect(ui->tableFiles, &QTableWidget::cellChanged, this, &DBCLoadSaveWindow::cellChanged);
|
||||||
connect(ui->tableFiles, &QTableWidget::cellDoubleClicked, this, &DBCLoadSaveWindow::cellDoubleClicked);
|
connect(ui->tableFiles, &QTableWidget::cellDoubleClicked, this, &DBCLoadSaveWindow::cellDoubleClicked);
|
||||||
connect(ui->btnLoadJSON, &QAbstractButton::clicked, this, &DBCLoadSaveWindow::loadJSON);
|
|
||||||
|
|
||||||
editorWindow = new DBCMainEditor(frames, this);
|
editorWindow = new DBCMainEditor(frames, this);
|
||||||
currentlyEditingFile = nullptr;
|
currentlyEditingFile = nullptr;
|
||||||
@@ -153,7 +153,38 @@ void DBCLoadSaveWindow::newFile()
|
|||||||
|
|
||||||
void DBCLoadSaveWindow::loadFile()
|
void DBCLoadSaveWindow::loadFile()
|
||||||
{
|
{
|
||||||
DBCFile *file = dbcHandler->loadDBCFile(-1);
|
DBCFile *file = nullptr;
|
||||||
|
QString filename;
|
||||||
|
QFileDialog dialog;
|
||||||
|
QSettings settings;
|
||||||
|
|
||||||
|
QStringList filters;
|
||||||
|
filters.append(QString(tr("DBC File (*.dbc)")));
|
||||||
|
filters.append(QString(tr("Tesla JSON File (*.json)")));
|
||||||
|
|
||||||
|
dialog.setDirectory(settings.value("DBC/LoadSaveDirectory", dialog.directory().path()).toString());
|
||||||
|
dialog.setFileMode(QFileDialog::ExistingFile);
|
||||||
|
dialog.setNameFilters(filters);
|
||||||
|
dialog.setViewMode(QFileDialog::Detail);
|
||||||
|
|
||||||
|
if (dialog.exec() == QDialog::Accepted)
|
||||||
|
{
|
||||||
|
filename = dialog.selectedFiles()[0];
|
||||||
|
//right now there is only one file type that can be loaded here so just do it.
|
||||||
|
settings.setValue("DBC/LoadSaveDirectory", dialog.directory().path());
|
||||||
|
|
||||||
|
if (dialog.selectedNameFilter() == filters[0])
|
||||||
|
{
|
||||||
|
if (!filename.contains('.')) filename += ".dbc";
|
||||||
|
file = dbcHandler->loadDBCFile(filename);
|
||||||
|
}
|
||||||
|
if (dialog.selectedNameFilter() == filters[1])
|
||||||
|
{
|
||||||
|
if (!filename.contains('.')) filename += ".json";
|
||||||
|
file = dbcHandler->loadJSONFile(filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(file) {
|
if(file) {
|
||||||
inhibitCellProcessing=true;
|
inhibitCellProcessing=true;
|
||||||
int idx = ui->tableFiles->rowCount();
|
int idx = ui->tableFiles->rowCount();
|
||||||
@@ -187,24 +218,7 @@ void DBCLoadSaveWindow::loadFile()
|
|||||||
|
|
||||||
void DBCLoadSaveWindow::loadJSON()
|
void DBCLoadSaveWindow::loadJSON()
|
||||||
{
|
{
|
||||||
DBCFile *file = dbcHandler->loadJSONFile(-1);
|
|
||||||
if(file) {
|
|
||||||
int idx = ui->tableFiles->rowCount();
|
|
||||||
ui->tableFiles->insertRow(ui->tableFiles->rowCount());
|
|
||||||
ui->tableFiles->setItem(idx, 0, new QTableWidgetItem(file->getFullFilename()));
|
|
||||||
ui->tableFiles->setItem(idx, 1, new QTableWidgetItem("-1"));
|
|
||||||
DBC_ATTRIBUTE *attr = file->findAttributeByName("isj1939dbc");
|
|
||||||
QTableWidgetItem *item = new QTableWidgetItem("");
|
|
||||||
ui->tableFiles->setItem(idx, 2, item);
|
|
||||||
if (attr && attr->defaultValue > 0)
|
|
||||||
{
|
|
||||||
item->setCheckState(Qt::Checked);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
item->setCheckState(Qt::Unchecked);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DBCLoadSaveWindow::saveFile()
|
void DBCLoadSaveWindow::saveFile()
|
||||||
|
|||||||
@@ -24,13 +24,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="btnLoadJSON">
|
|
||||||
<property name="text">
|
|
||||||
<string>Load Tesla JSON (shhhh....)</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<item>
|
<item>
|
||||||
|
|||||||
Reference in New Issue
Block a user