#ifndef YMODEMFILERECEIVE_H #define YMODEMFILERECEIVE_H #include "TimeoutSerial.h" #include "Ymodem.h" #include #include #include #include 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 receiveProgress; boost::signals2::signal 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