This further abstracts the interface. Things are reasonably stable now for frame reception. Initial work has been done to support frame transmission as well. This is currently less stable but mostly working.
54 lines
1.1 KiB
C++
54 lines
1.1 KiB
C++
#ifndef FIRMWAREUPLOADERWINDOW_H
|
|
#define FIRMWAREUPLOADERWINDOW_H
|
|
|
|
#include <QDialog>
|
|
#include <QTimer>
|
|
#include "can_structs.h"
|
|
#include "utility.h"
|
|
#include "serialworker.h"
|
|
|
|
namespace Ui {
|
|
class FirmwareUploaderWindow;
|
|
}
|
|
|
|
class FirmwareUploaderWindow : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit FirmwareUploaderWindow(const QVector<CANFrame> *frames, QWidget *parent = 0);
|
|
~FirmwareUploaderWindow();
|
|
|
|
signals:
|
|
void sendCANFrame(const CANFrame *);
|
|
|
|
public slots:
|
|
void gotTargettedFrame(int frameLoc);
|
|
|
|
private slots:
|
|
void handleLoadFile();
|
|
void handleStartStopTransfer();
|
|
void updatedFrames(int);
|
|
void timerElapsed();
|
|
|
|
private:
|
|
void updateProgress();
|
|
void loadBinaryFile(QString);
|
|
void sendFirmwareChunk();
|
|
void sendFirmwareEnding();
|
|
|
|
Ui::FirmwareUploaderWindow *ui;
|
|
bool transferInProgress;
|
|
bool startedProcess;
|
|
int firmwareSize;
|
|
int currentSendingPosition;
|
|
int baseAddress;
|
|
int bus;
|
|
uint32_t token;
|
|
QByteArray firmwareData;
|
|
const QVector<CANFrame> *modelFrames;
|
|
QTimer *timer;
|
|
};
|
|
|
|
#endif // FIRMWAREUPLOADERWINDOW_H
|