diff --git a/include/download_thread.h b/include/download_thread.h new file mode 100644 index 0000000..941cd26 --- /dev/null +++ b/include/download_thread.h @@ -0,0 +1,37 @@ +#ifndef DOWNLOAD_THREAD_H_INCLUDED +#define DOWNLOAD_THREAD_H_INCLUDED + +#include +#include +#include + +class hwinf; +class DownloadThread : public QThread { + Q_OBJECT + +public: + enum class DownloadResult {OK, ERROR, TIMEOUT, NOP}; + + DownloadThread(hwinf *hw); + ~DownloadThread(); + +protected: + // download thread does not have a running event queue, and therefore + // no slots. signals work the usual way. + void run() override; + +private: + DownloadResult sendStatus(int ret) const; + DownloadResult sendNextAddress(int bNum) const; + DownloadResult sendNextDataBlock(QByteArray const &binary, int bNum) const; + bool startBootloader() const; + bool stopBootloader() const; + QByteArray loadBinaryDCFile(QString dcFileName) const; + bool resetDeviceController() const; + DownloadResult dcDownloadBinary(QByteArray const &b) const; + + hwinf *m_hw; + QString m_fileToDownload; +}; + +#endif // DOWNLOAD_THREAD_H_INCLUDED diff --git a/include/reporting_thread.h b/include/reporting_thread.h new file mode 100644 index 0000000..6e38364 --- /dev/null +++ b/include/reporting_thread.h @@ -0,0 +1,25 @@ +#ifndef REPORTING_THREAD_H_INCLUDED +#define REPORTING_THREAD_H_INCLUDED + +#include +#include + +class hwapi; +class ReportingThread : public QThread { + Q_OBJECT + +public: + ReportingThread(hwapi *hw); + ~ReportingThread(); + +protected: + // reporting thread does not have a running event queue, and therefore + // no slots. signals work the usual way. + void run() override; + +private: + hwapi *m_hw; + QString m_fileToDownload; +}; + +#endif // REPORTING_THREAD_H_INCLUDED