Updated version, added two new windows (not done), fixed more issues
with how connecting works - it now also stores the last connection so you can resume using it the next time the program is run.
This commit is contained in:
+9
-3
@@ -43,7 +43,9 @@ SOURCES += main.cpp\
|
|||||||
canfilter.cpp \
|
canfilter.cpp \
|
||||||
rangestatewindow.cpp \
|
rangestatewindow.cpp \
|
||||||
dbc_classes.cpp \
|
dbc_classes.cpp \
|
||||||
dbcloadsavewindow.cpp
|
dbcloadsavewindow.cpp \
|
||||||
|
fuzzingwindow.cpp \
|
||||||
|
udsscanwindow.cpp
|
||||||
|
|
||||||
HEADERS += mainwindow.h \
|
HEADERS += mainwindow.h \
|
||||||
can_structs.h \
|
can_structs.h \
|
||||||
@@ -74,7 +76,9 @@ HEADERS += mainwindow.h \
|
|||||||
scriptcontainer.h \
|
scriptcontainer.h \
|
||||||
canfilter.h \
|
canfilter.h \
|
||||||
rangestatewindow.h \
|
rangestatewindow.h \
|
||||||
dbcloadsavewindow.h
|
dbcloadsavewindow.h \
|
||||||
|
fuzzingwindow.h \
|
||||||
|
udsscanwindow.h
|
||||||
|
|
||||||
FORMS += mainwindow.ui \
|
FORMS += mainwindow.ui \
|
||||||
graphingwindow.ui \
|
graphingwindow.ui \
|
||||||
@@ -93,7 +97,9 @@ FORMS += mainwindow.ui \
|
|||||||
connectionwindow.ui \
|
connectionwindow.ui \
|
||||||
scriptingwindow.ui \
|
scriptingwindow.ui \
|
||||||
rangestatewindow.ui \
|
rangestatewindow.ui \
|
||||||
dbcloadsavewindow.ui
|
dbcloadsavewindow.ui \
|
||||||
|
fuzzingwindow.ui \
|
||||||
|
udsscanwindow.ui
|
||||||
|
|
||||||
DISTFILES +=
|
DISTFILES +=
|
||||||
|
|
||||||
|
|||||||
+45
-5
@@ -8,8 +8,20 @@ ConnectionWindow::ConnectionWindow(QWidget *parent) :
|
|||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
//getSerialPorts();
|
settings = new QSettings();
|
||||||
getSocketcanPorts();
|
|
||||||
|
int temp = settings->value("Main/DefaultConnectionType", 0).toInt();
|
||||||
|
|
||||||
|
if (temp == 0) currentConnType = ConnectionType::GVRET_SERIAL;
|
||||||
|
if (temp == 1) currentConnType = ConnectionType::KVASER;
|
||||||
|
if (temp == 2) currentConnType = ConnectionType::SOCKETCAN;
|
||||||
|
|
||||||
|
currentPortName = settings->value("Main/DefaultConnectionPort", "").toString();
|
||||||
|
|
||||||
|
currentSpeed1 = -1;
|
||||||
|
currentSpeed2 = -1;
|
||||||
|
|
||||||
|
ui->ckSingleWire->setChecked(settings->value("Main/SingleWireMode", false).toBool());
|
||||||
|
|
||||||
ui->cbSpeed0->addItem(tr("<Default>"));
|
ui->cbSpeed0->addItem(tr("<Default>"));
|
||||||
ui->cbSpeed0->addItem(tr("Disabled"));
|
ui->cbSpeed0->addItem(tr("Disabled"));
|
||||||
@@ -40,6 +52,7 @@ ConnectionWindow::ConnectionWindow(QWidget *parent) :
|
|||||||
|
|
||||||
ConnectionWindow::~ConnectionWindow()
|
ConnectionWindow::~ConnectionWindow()
|
||||||
{
|
{
|
||||||
|
delete settings;
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,10 +68,36 @@ void ConnectionWindow::showEvent(QShowEvent* event)
|
|||||||
void ConnectionWindow::handleOKButton()
|
void ConnectionWindow::handleOKButton()
|
||||||
{
|
{
|
||||||
QString conn;
|
QString conn;
|
||||||
|
int connType = 0;
|
||||||
|
|
||||||
if (ui->rbGVRET->isChecked()) conn = "GVRET";
|
if (ui->rbGVRET->isChecked())
|
||||||
if (ui->rbKvaser->isChecked()) conn = "KVASER";
|
{
|
||||||
if (ui->rbSocketCAN->isChecked()) conn = "SOCKETCAN";
|
conn = "GVRET";
|
||||||
|
connType = 0;
|
||||||
|
currentConnType = ConnectionType::GVRET_SERIAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ui->rbKvaser->isChecked())
|
||||||
|
{
|
||||||
|
conn = "KVASER";
|
||||||
|
connType = 1;
|
||||||
|
currentConnType = ConnectionType::KVASER;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ui->rbSocketCAN->isChecked())
|
||||||
|
{
|
||||||
|
conn = "SOCKETCAN";
|
||||||
|
connType = 2;
|
||||||
|
currentConnType = ConnectionType::SOCKETCAN;
|
||||||
|
}
|
||||||
|
|
||||||
|
currentPortName = getPortName();
|
||||||
|
currentSpeed1 = getSpeed0();
|
||||||
|
currentSpeed2 = getSpeed1();
|
||||||
|
|
||||||
|
settings->setValue("Main/DefaultConnectionPort", currentPortName);
|
||||||
|
settings->setValue("Main/DefaultConnectionType", connType);
|
||||||
|
settings->setValue("Main/SingleWireMode", ui->ckSingleWire->isChecked());
|
||||||
|
|
||||||
emit updateConnectionSettings(conn, getPortName(), getSpeed0(), getSpeed1());
|
emit updateConnectionSettings(conn, getPortName(), getSpeed0(), getSpeed1());
|
||||||
|
|
||||||
@@ -73,6 +112,7 @@ void ConnectionWindow::getSerialPorts()
|
|||||||
for (int i = 0; i < ports.count(); i++)
|
for (int i = 0; i < ports.count(); i++)
|
||||||
{
|
{
|
||||||
ui->cbPort->addItem(ports[i].portName());
|
ui->cbPort->addItem(ports[i].portName());
|
||||||
|
if (currentPortName == ports[i].portName()) ui->cbPort->setCurrentIndex(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
#include <QSerialPortInfo>
|
#include <QSerialPortInfo>
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QSettings>
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class ConnectionWindow;
|
class ConnectionWindow;
|
||||||
@@ -46,6 +47,11 @@ private slots:
|
|||||||
private:
|
private:
|
||||||
Ui::ConnectionWindow *ui;
|
Ui::ConnectionWindow *ui;
|
||||||
QList<QSerialPortInfo> ports;
|
QList<QSerialPortInfo> ports;
|
||||||
|
QSettings *settings;
|
||||||
|
|
||||||
|
ConnectionType::ConnectionType currentConnType;
|
||||||
|
QString currentPortName;
|
||||||
|
int currentSpeed1, currentSpeed2;
|
||||||
|
|
||||||
void getSerialPorts();
|
void getSerialPorts();
|
||||||
void getKvaserPorts();
|
void getKvaserPorts();
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#include "fuzzingwindow.h"
|
||||||
|
#include "ui_fuzzingwindow.h"
|
||||||
|
|
||||||
|
FuzzingWindow::FuzzingWindow(const QVector<CANFrame> *frames, SerialWorker *worker, QWidget *parent) :
|
||||||
|
QDialog(parent),
|
||||||
|
ui(new Ui::FuzzingWindow)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
modelFrames = frames;
|
||||||
|
serialWorker = worker;
|
||||||
|
}
|
||||||
|
|
||||||
|
FuzzingWindow::~FuzzingWindow()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
#ifndef FUZZINGWINDOW_H
|
||||||
|
#define FUZZINGWINDOW_H
|
||||||
|
|
||||||
|
#include <QDialog>
|
||||||
|
#include "can_structs.h"
|
||||||
|
#include "serialworker.h"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class FuzzingWindow;
|
||||||
|
}
|
||||||
|
|
||||||
|
class FuzzingWindow : public QDialog
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit FuzzingWindow(const QVector<CANFrame> *frames, SerialWorker *worker, QWidget *parent = 0);
|
||||||
|
~FuzzingWindow();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::FuzzingWindow *ui;
|
||||||
|
const QVector<CANFrame> *modelFrames;
|
||||||
|
QTimer *fuzzTimer;
|
||||||
|
SerialWorker *serialWorker;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // FUZZINGWINDOW_H
|
||||||
@@ -0,0 +1,210 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>FuzzingWindow</class>
|
||||||
|
<widget class="QDialog" name="FuzzingWindow">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>760</width>
|
||||||
|
<height>671</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Fuzzing Window</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout" stretch="1,1,3,6">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Interframe Timing</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="spinBox"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Burst Rate:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="spinBox_2"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>ID Scanning</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="radioButton_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Seqential</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="radioButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Random</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_2">
|
||||||
|
<property name="title">
|
||||||
|
<string>ID Selection</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="radioButton_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>Range of IDs</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="radioButton_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>Filter List</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_4">
|
||||||
|
<property name="title">
|
||||||
|
<string>Bit Scanning</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_8">
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="radioButton_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>Sequential</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="radioButton_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>Random</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_3">
|
||||||
|
<property name="title">
|
||||||
|
<string>IDs</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>Start ID:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="lineEdit"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>End ID:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="lineEdit_2"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||||
|
<item>
|
||||||
|
<widget class="QListWidget" name="listWidget"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>All</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>None</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="CANDataGrid" name="bitfield" native="true">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>200</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>CANDataGrid</class>
|
||||||
|
<extends>QWidget</extends>
|
||||||
|
<header>candatagrid.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
+58
-2
@@ -18,7 +18,6 @@ Single / Multi state - The goal is to find bits that change based on toggles or
|
|||||||
fuzzy scope - Try to find potential places where a given value might be stored - offer guesses and the program tries to find candidates for you
|
fuzzy scope - Try to find potential places where a given value might be stored - offer guesses and the program tries to find candidates for you
|
||||||
or, try to find things that appear to be multi-byte integers
|
or, try to find things that appear to be multi-byte integers
|
||||||
|
|
||||||
Finish coding up support for associating a DBC file with a specific bus
|
|
||||||
Allow scripts to read/write signals from DBC files
|
Allow scripts to read/write signals from DBC files
|
||||||
allow scripts to load DBC files in support of the script - maybe the graphing system too.
|
allow scripts to load DBC files in support of the script - maybe the graphing system too.
|
||||||
*/
|
*/
|
||||||
@@ -97,6 +96,8 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
scriptingWindow = NULL;
|
scriptingWindow = NULL;
|
||||||
rangeWindow = NULL;
|
rangeWindow = NULL;
|
||||||
dbcFileWindow = NULL;
|
dbcFileWindow = NULL;
|
||||||
|
fuzzingWindow = NULL;
|
||||||
|
udsScanWindow = NULL;
|
||||||
dbcHandler = new DBCHandler;
|
dbcHandler = new DBCHandler;
|
||||||
bDirty = false;
|
bDirty = false;
|
||||||
inhibitFilterUpdate = false;
|
inhibitFilterUpdate = false;
|
||||||
@@ -136,6 +137,8 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
connect(ui->btnFilterNone, &QAbstractButton::clicked, this, &MainWindow::filterClearAll);
|
connect(ui->btnFilterNone, &QAbstractButton::clicked, this, &MainWindow::filterClearAll);
|
||||||
connect(ui->actionFirmware_Uploader, &QAction::triggered, this, &MainWindow::showFirmwareUploaderWindow);
|
connect(ui->actionFirmware_Uploader, &QAction::triggered, this, &MainWindow::showFirmwareUploaderWindow);
|
||||||
connect(ui->actionDBC_File_Manager, &QAction::triggered, this, &MainWindow::showDBCFileWindow);
|
connect(ui->actionDBC_File_Manager, &QAction::triggered, this, &MainWindow::showDBCFileWindow);
|
||||||
|
connect(ui->actionFuzzing, &QAction::triggered, this, &MainWindow::showFuzzingWindow);
|
||||||
|
connect(ui->actionUDS_Scanner, &QAction::triggered, this, &MainWindow::showUDSScanWindow);
|
||||||
|
|
||||||
lbStatusConnected.setText(tr("Not connected"));
|
lbStatusConnected.setText(tr("Not connected"));
|
||||||
updateFileStatus();
|
updateFileStatus();
|
||||||
@@ -161,6 +164,10 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
normalRowHeight = ui->canFramesView->rowHeight(0);
|
normalRowHeight = ui->canFramesView->rowHeight(0);
|
||||||
qDebug() << "normal row height = " << normalRowHeight;
|
qDebug() << "normal row height = " << normalRowHeight;
|
||||||
model->clearFrames();
|
model->clearFrames();
|
||||||
|
|
||||||
|
//Automatically create the connection window so it can be updated even if we never opened it.
|
||||||
|
connectionWindow = new ConnectionWindow();
|
||||||
|
connect(connectionWindow, SIGNAL(updateConnectionSettings(QString,QString,int,int)), this, SLOT(updateConnectionSettings(QString,QString,int,int)));
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
@@ -247,6 +254,18 @@ MainWindow::~MainWindow()
|
|||||||
delete dbcFileWindow;
|
delete dbcFileWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fuzzingWindow)
|
||||||
|
{
|
||||||
|
fuzzingWindow->close();
|
||||||
|
delete fuzzingWindow;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (udsScanWindow)
|
||||||
|
{
|
||||||
|
udsScanWindow->close();
|
||||||
|
delete udsScanWindow;
|
||||||
|
}
|
||||||
|
|
||||||
delete ui;
|
delete ui;
|
||||||
delete dbcHandler;
|
delete dbcHandler;
|
||||||
model->clearFrames();
|
model->clearFrames();
|
||||||
@@ -268,6 +287,8 @@ void MainWindow::exitApp()
|
|||||||
if (scriptingWindow) scriptingWindow->close();
|
if (scriptingWindow) scriptingWindow->close();
|
||||||
if (rangeWindow) rangeWindow->close();
|
if (rangeWindow) rangeWindow->close();
|
||||||
if (dbcFileWindow) dbcFileWindow->close();
|
if (dbcFileWindow) dbcFileWindow->close();
|
||||||
|
if (fuzzingWindow) fuzzingWindow->close();
|
||||||
|
if (udsScanWindow) udsScanWindow->close();
|
||||||
this->close();
|
this->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,6 +317,20 @@ void MainWindow::readSettings()
|
|||||||
{
|
{
|
||||||
ui->cbAutoScroll->setChecked(true);
|
ui->cbAutoScroll->setChecked(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int cType = settings.value("Main/DefaultConnectionType", 0).toInt();
|
||||||
|
if (cType == 0) connType = "GVRET";
|
||||||
|
if (cType == 1) connType = "KVASER";
|
||||||
|
if (cType == 2) connType = "SOCKETCAN";
|
||||||
|
portName = settings.value("Main/DefaultConnectionPort", "").toString();
|
||||||
|
canSpeed0 = -1;
|
||||||
|
canSpeed1 = -1;
|
||||||
|
|
||||||
|
qDebug() << connType;
|
||||||
|
qDebug() << portName;
|
||||||
|
|
||||||
|
//"Main/SingleWireMode"
|
||||||
|
|
||||||
readUpdateableSettings();
|
readUpdateableSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -721,7 +756,7 @@ void MainWindow::connectionSucceeded(int baud0, int baud1)
|
|||||||
ui->cbSpeed2->setCurrentIndex(ui->cbSpeed2->count() - 1);
|
ui->cbSpeed2->setCurrentIndex(ui->cbSpeed2->count() - 1);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
connectionWindow->setSpeeds(baud0, baud1);
|
if (connectionWindow) connectionWindow->setSpeeds(baud0, baud1);
|
||||||
//ui->btnConnect->setEnabled(false);
|
//ui->btnConnect->setEnabled(false);
|
||||||
ui->actionConnect->setText(tr("Disconnect"));
|
ui->actionConnect->setText(tr("Disconnect"));
|
||||||
isConnected = true;
|
isConnected = true;
|
||||||
@@ -777,8 +812,11 @@ void MainWindow::gotDeviceInfo(int build, int swCAN)
|
|||||||
msgBox.exec();
|
msgBox.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (connectionWindow)
|
||||||
|
{
|
||||||
if (swCAN == 1) connectionWindow->setCAN1SWMode(true);
|
if (swCAN == 1) connectionWindow->setCAN1SWMode(true);
|
||||||
else connectionWindow->setCAN1SWMode(false);
|
else connectionWindow->setCAN1SWMode(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::setTargettedID(int id)
|
void MainWindow::setTargettedID(int id)
|
||||||
@@ -881,6 +919,24 @@ void MainWindow::showSingleMultiWindow()
|
|||||||
discreteStateWindow->show();
|
discreteStateWindow->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::showFuzzingWindow()
|
||||||
|
{
|
||||||
|
if (!fuzzingWindow)
|
||||||
|
{
|
||||||
|
fuzzingWindow = new FuzzingWindow(model->getListReference(), worker);
|
||||||
|
}
|
||||||
|
fuzzingWindow->show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::showUDSScanWindow()
|
||||||
|
{
|
||||||
|
if (!udsScanWindow)
|
||||||
|
{
|
||||||
|
udsScanWindow = new UDSScanWindow;
|
||||||
|
}
|
||||||
|
udsScanWindow->show();
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::showScriptingWindow()
|
void MainWindow::showScriptingWindow()
|
||||||
{
|
{
|
||||||
if (!scriptingWindow)
|
if (!scriptingWindow)
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
#include "scriptingwindow.h"
|
#include "scriptingwindow.h"
|
||||||
#include "rangestatewindow.h"
|
#include "rangestatewindow.h"
|
||||||
#include "dbcloadsavewindow.h"
|
#include "dbcloadsavewindow.h"
|
||||||
|
#include "fuzzingwindow.h"
|
||||||
|
#include "udsscanwindow.h"
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class MainWindow;
|
class MainWindow;
|
||||||
@@ -61,6 +63,8 @@ private slots:
|
|||||||
void showConnectionSettingsWindow();
|
void showConnectionSettingsWindow();
|
||||||
void showScriptingWindow();
|
void showScriptingWindow();
|
||||||
void showDBCFileWindow();
|
void showDBCFileWindow();
|
||||||
|
void showFuzzingWindow();
|
||||||
|
void showUDSScanWindow();
|
||||||
void exitApp();
|
void exitApp();
|
||||||
void handleSaveDecoded();
|
void handleSaveDecoded();
|
||||||
void changeBaudRates();
|
void changeBaudRates();
|
||||||
@@ -129,6 +133,8 @@ private:
|
|||||||
ScriptingWindow *scriptingWindow;
|
ScriptingWindow *scriptingWindow;
|
||||||
RangeStateWindow *rangeWindow;
|
RangeStateWindow *rangeWindow;
|
||||||
DBCLoadSaveWindow *dbcFileWindow;
|
DBCLoadSaveWindow *dbcFileWindow;
|
||||||
|
FuzzingWindow *fuzzingWindow;
|
||||||
|
UDSScanWindow *udsScanWindow;
|
||||||
|
|
||||||
//various private storage
|
//various private storage
|
||||||
QLabel lbStatusConnected;
|
QLabel lbStatusConnected;
|
||||||
|
|||||||
+13
-1
@@ -218,6 +218,8 @@
|
|||||||
<addaction name="action_Playback"/>
|
<addaction name="action_Playback"/>
|
||||||
<addaction name="action_Custom"/>
|
<addaction name="action_Custom"/>
|
||||||
<addaction name="actionScripting_INterface"/>
|
<addaction name="actionScripting_INterface"/>
|
||||||
|
<addaction name="actionFuzzing"/>
|
||||||
|
<addaction name="actionUDS_Scanner"/>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenu" name="menuFile">
|
<widget class="QMenu" name="menuFile">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
@@ -347,7 +349,7 @@
|
|||||||
</action>
|
</action>
|
||||||
<action name="actionSetup">
|
<action name="actionSetup">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Setup</string>
|
<string>Configure Port</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionConnect">
|
<action name="actionConnect">
|
||||||
@@ -375,6 +377,16 @@
|
|||||||
<string>DBC File Manager</string>
|
<string>DBC File Manager</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionFuzzing">
|
||||||
|
<property name="text">
|
||||||
|
<string>Fuzzing</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionUDS_Scanner">
|
||||||
|
<property name="text">
|
||||||
|
<string>UDS Scanner</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<layoutdefault spacing="6" margin="11"/>
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
#include "udsscanwindow.h"
|
||||||
|
#include "ui_udsscanwindow.h"
|
||||||
|
|
||||||
|
UDSScanWindow::UDSScanWindow(QWidget *parent) :
|
||||||
|
QDialog(parent),
|
||||||
|
ui(new Ui::UDSScanWindow)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
UDSScanWindow::~UDSScanWindow()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
#ifndef UDSSCANWINDOW_H
|
||||||
|
#define UDSSCANWINDOW_H
|
||||||
|
|
||||||
|
#include <QDialog>
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class UDSScanWindow;
|
||||||
|
}
|
||||||
|
|
||||||
|
class UDSScanWindow : public QDialog
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit UDSScanWindow(QWidget *parent = 0);
|
||||||
|
~UDSScanWindow();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::UDSScanWindow *ui;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // UDSSCANWINDOW_H
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<ui version="4.0">
|
||||||
|
<class>UDSScanWindow</class>
|
||||||
|
<widget name="UDSScanWindow" class="QDialog">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>400</width>
|
||||||
|
<height>300</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Dialog</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
Reference in New Issue
Block a user