forked from GerhardHoffmann/DCLibraries
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			982 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			982 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef DOWNLOAD_THREAD_H_INCLUDED
 | 
						|
#define DOWNLOAD_THREAD_H_INCLUDED
 | 
						|
 | 
						|
#include <QThread>
 | 
						|
#include <QString>
 | 
						|
#include <QByteArray>
 | 
						|
 | 
						|
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
 |