This commit is contained in:
2021-08-25 00:45:13 +02:00
parent 2b2cbe655d
commit bc701ae833
15 changed files with 2305 additions and 872 deletions

57
YmodemFileReceive.h Normal file
View File

@@ -0,0 +1,57 @@
#ifndef YMODEMFILERECEIVE_H
#define YMODEMFILERECEIVE_H
#include "TimeoutSerial.h"
#include "Ymodem.h"
#include <boost/signals2.hpp>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class YmodemFileReceive : public Ymodem
{
public:
explicit YmodemFileReceive();
~YmodemFileReceive();
void setFilePath(const string &path);
void setSerialPort(TimeoutSerial *port);
TimeoutSerial *getSerialPort();
bool startReceive();
void stopReceive();
int getReceiveProgress();
Status getReceiveStatus();
boost::signals2::signal<void (int)> receiveProgress;
boost::signals2::signal<void (YmodemFileReceive::Status status)> receiveStatus;
/*
private slots:
void readTimeOut();
void writeTimeOut();
*/
private:
Code callback(Status status, uint8_t *buff, uint32_t *len);
uint32_t read(uint8_t *buff, uint32_t len);
uint32_t write(uint8_t *buff, uint32_t len);
ofstream file;
QTimer *readTimer;
QTimer *writeTimer;
TimeoutSerial *serialPort;
int progress;
Status status;
string filePath;
string fileName;
uint64_t fileSize;
uint64_t fileCount;
};
#endif // YMODEMFILERECEIVE_H