Some tweaks to make the RE tools work better on live data (not complete yet), refactored some code.
This commit is contained in:
+7
-4
@@ -22,10 +22,6 @@ FlowViewWindow::FlowViewWindow(QVector<CANFrame> *frames, QWidget *parent) :
|
|||||||
memset(refBytes, 0, 8);
|
memset(refBytes, 0, 8);
|
||||||
memset(currBytes, 0, 8);
|
memset(currBytes, 0, 8);
|
||||||
|
|
||||||
refreshIDList();
|
|
||||||
|
|
||||||
updateFrameLabel();
|
|
||||||
|
|
||||||
//ui->graphView->setInteractions();
|
//ui->graphView->setInteractions();
|
||||||
|
|
||||||
ui->graphView->xAxis->setRange(0, 8);
|
ui->graphView->xAxis->setRange(0, 8);
|
||||||
@@ -59,6 +55,13 @@ FlowViewWindow::FlowViewWindow(QVector<CANFrame> *frames, QWidget *parent) :
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FlowViewWindow::showEvent(QShowEvent* event)
|
||||||
|
{
|
||||||
|
QDialog::showEvent(event);
|
||||||
|
refreshIDList();
|
||||||
|
updateFrameLabel();
|
||||||
|
}
|
||||||
|
|
||||||
FlowViewWindow::~FlowViewWindow()
|
FlowViewWindow::~FlowViewWindow()
|
||||||
{
|
{
|
||||||
delete ui;
|
delete ui;
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ class FlowViewWindow : public QDialog
|
|||||||
public:
|
public:
|
||||||
explicit FlowViewWindow(QVector<CANFrame> *frames, QWidget *parent = 0);
|
explicit FlowViewWindow(QVector<CANFrame> *frames, QWidget *parent = 0);
|
||||||
~FlowViewWindow();
|
~FlowViewWindow();
|
||||||
|
void showEvent(QShowEvent*);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void btnBackOneClick();
|
void btnBackOneClick();
|
||||||
|
|||||||
@@ -8,6 +8,11 @@ FrameInfoWindow::FrameInfoWindow(QVector<CANFrame> *frames, QWidget *parent) :
|
|||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
modelFrames = frames;
|
modelFrames = frames;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FrameInfoWindow::showEvent(QShowEvent* event)
|
||||||
|
{
|
||||||
|
QDialog::showEvent(event);
|
||||||
refreshIDList();
|
refreshIDList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ class FrameInfoWindow : public QDialog
|
|||||||
public:
|
public:
|
||||||
explicit FrameInfoWindow(QVector<CANFrame> *frames, QWidget *parent = 0);
|
explicit FrameInfoWindow(QVector<CANFrame> *frames, QWidget *parent = 0);
|
||||||
~FrameInfoWindow();
|
~FrameInfoWindow();
|
||||||
|
void showEvent(QShowEvent*);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void updateDetailsWindow(QListWidgetItem *);
|
void updateDetailsWindow(QListWidgetItem *);
|
||||||
|
|||||||
@@ -60,6 +60,10 @@ GraphingWindow::~GraphingWindow()
|
|||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GraphingWindow::showEvent(QShowEvent* event)
|
||||||
|
{
|
||||||
|
QDialog::showEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
void GraphingWindow::titleDoubleClick(QMouseEvent* event, QCPPlotTitle* title)
|
void GraphingWindow::titleDoubleClick(QMouseEvent* event, QCPPlotTitle* title)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ class GraphingWindow : public QDialog
|
|||||||
public:
|
public:
|
||||||
explicit GraphingWindow(QVector<CANFrame> *, QWidget *parent = 0);
|
explicit GraphingWindow(QVector<CANFrame> *, QWidget *parent = 0);
|
||||||
~GraphingWindow();
|
~GraphingWindow();
|
||||||
|
void showEvent(QShowEvent*);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void titleDoubleClick(QMouseEvent *event, QCPPlotTitle *title);
|
void titleDoubleClick(QMouseEvent *event, QCPPlotTitle *title);
|
||||||
|
|||||||
+4
-9
@@ -22,13 +22,8 @@ fuzzy scope - Try to find potential places where a given value might be stored -
|
|||||||
|
|
||||||
|
|
||||||
Things currently broken or in need of attention:
|
Things currently broken or in need of attention:
|
||||||
1. It should be possible to stop the capture at any time.
|
1. The details window should tell you the min/max/avg time between frames of this ID
|
||||||
2. The details window should tell you the min/max/avg time between frames of this ID
|
2. The windows that deal with canbus data should update based on incoming frames. It should not be required to load files to use these windows
|
||||||
3. Frame reception gets weird somewhere between 100k and 150k frames. Increase prealloc and re-test
|
|
||||||
4. Expanding the main window (while having a large capture going?) could lock up the program
|
|
||||||
5. Clicking one of the three main checkboxes (auto scroll, interpret, overwrite) locks up reception
|
|
||||||
6. The windows that deal with canbus data should update based on incoming frames. It should not be required to load files to use these windows
|
|
||||||
7. Overall, test more often with large captures coming in. Use Kvaser to simulate incoming data in large quantities.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -79,7 +74,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
worker->moveToThread(&serialWorkerThread);
|
worker->moveToThread(&serialWorkerThread);
|
||||||
connect(&serialWorkerThread, &QThread::finished, worker, &QObject::deleteLater);
|
connect(&serialWorkerThread, &QThread::finished, worker, &QObject::deleteLater);
|
||||||
connect(this, &MainWindow::sendSerialPort, worker, &SerialWorker::setSerialPort, Qt::QueuedConnection);
|
connect(this, &MainWindow::sendSerialPort, worker, &SerialWorker::setSerialPort, Qt::QueuedConnection);
|
||||||
connect(worker, &SerialWorker::receivedFrames, this, &MainWindow::gotFrames, Qt::QueuedConnection);
|
connect(worker, &SerialWorker::frameUpdateTick, this, &MainWindow::gotFrames, Qt::QueuedConnection);
|
||||||
connect(this, &MainWindow::updateBaudRates, worker, &SerialWorker::updateBaudRates, Qt::QueuedConnection);
|
connect(this, &MainWindow::updateBaudRates, worker, &SerialWorker::updateBaudRates, Qt::QueuedConnection);
|
||||||
connect(this, &MainWindow::sendCANFrame, worker, &SerialWorker::sendFrame, Qt::QueuedConnection);
|
connect(this, &MainWindow::sendCANFrame, worker, &SerialWorker::sendFrame, Qt::QueuedConnection);
|
||||||
connect(worker, &SerialWorker::connectionSuccess, this, &MainWindow::connectionSucceeded, Qt::QueuedConnection);
|
connect(worker, &SerialWorker::connectionSuccess, this, &MainWindow::connectionSucceeded, Qt::QueuedConnection);
|
||||||
@@ -153,7 +148,7 @@ void MainWindow::updateBaudLabel(int baud0, int baud1)
|
|||||||
|
|
||||||
//most of the work is handled elsewhere. Need only to update the # of frames
|
//most of the work is handled elsewhere. Need only to update the # of frames
|
||||||
//and maybe auto scroll
|
//and maybe auto scroll
|
||||||
void MainWindow::gotFrames(int FPS)
|
void MainWindow::gotFrames(int FPS, int framesSinceLastUpdate)
|
||||||
{
|
{
|
||||||
ui->lbNumFrames->setText(QString::number(model->rowCount()));
|
ui->lbNumFrames->setText(QString::number(model->rowCount()));
|
||||||
if (ui->cbAutoScroll->isChecked()) ui->canFramesView->scrollToBottom();
|
if (ui->cbAutoScroll->isChecked()) ui->canFramesView->scrollToBottom();
|
||||||
|
|||||||
+1
-1
@@ -46,7 +46,7 @@ private slots:
|
|||||||
void connectionSucceeded(int, int);
|
void connectionSucceeded(int, int);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void gotFrames(int);
|
void gotFrames(int, int);
|
||||||
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|||||||
+3
-6
@@ -350,12 +350,9 @@ void SerialWorker::handleTick()
|
|||||||
//qDebug() << "Tick!";
|
//qDebug() << "Tick!";
|
||||||
framesPerSec += gotFrames * 1000 / elapsedTime->elapsed() - (framesPerSec / 4);
|
framesPerSec += gotFrames * 1000 / elapsedTime->elapsed() - (framesPerSec / 4);
|
||||||
elapsedTime->restart();
|
elapsedTime->restart();
|
||||||
//if (gotFrames > 0)
|
emit frameUpdateTick(framesPerSec / 4, gotFrames); //sends stats to interested parties
|
||||||
//{
|
canModel->sendBulkRefresh(gotFrames);
|
||||||
emit receivedFrames(framesPerSec / 4); //misnamed now. Just notifies of FPS and that frames might exist
|
gotFrames = 0;
|
||||||
canModel->sendBulkRefresh(gotFrames);
|
|
||||||
gotFrames = 0;
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//totally shuts down the whole thing
|
//totally shuts down the whole thing
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@ public:
|
|||||||
|
|
||||||
signals: //we emit signals
|
signals: //we emit signals
|
||||||
void error(const QString &);
|
void error(const QString &);
|
||||||
void receivedFrames(int); //since the last tick we got at least one more frame
|
void frameUpdateTick(int, int); //update interested parties about the # of frames that have come in
|
||||||
void connectionSuccess(int, int);
|
void connectionSuccess(int, int);
|
||||||
void connectionFailure();
|
void connectionFailure();
|
||||||
void deviceInfo(int, int);
|
void deviceInfo(int, int);
|
||||||
|
|||||||
Reference in New Issue
Block a user