Files
capture/SaveThread.h
T
2024-06-20 10:57:08 +07:00

122 lines
2.1 KiB
C++

#ifndef SAVETHREAD_H
#define SAVETHREAD_H
#include <QObject>
#include "QRunnable"
#include "QDebug"
#include "QThread"
#include "QElapsedTimer"
#include "QThreadPool"
#include "QHostAddress"
#include "ParsePack.h"
#include "QDateTime"
#include "QFile"
#include "QDataStream"
class SaveThread : public QObject
{
Q_OBJECT
public:
explicit SaveThread(QObject *parent = nullptr);
~SaveThread();
//void run() override;
QString logname = "00001";
quint32 mode = 0;//0 记录模式 1 回放模式
bool recordstate = false;
uint64_t save_count = 0;
void setMode(quint32 value)
{
mode = value;
}
void setRecordState(bool state)
{
recordstate = state;
if(recordstate)//开始记录
{
if(file)
{
file->close();
delete file;
file = nullptr;
}
file = new QFile("./log/" + logname + ".bin");
if(!file->open(QIODevice::Append))
{
//open failure
file->close();
delete file;
file = nullptr;
}
record_count = 0;
}
else//停止记录
{
if(file)
{
file->close();
delete file;
file = nullptr;
}
}
}
void setLogName(QString name)
{
logname = name;
if(logname == name)
{
return;
}
if(file)
{
file->close();
delete file;
file = nullptr;
}
file = new QFile("./log/" + logname + ".bin");
if(!file->open(QIODevice::Append))
{
//open failure
file->close();
delete file;
file = nullptr;
}
}
public slots:
void setSave(const QHostAddress &ip, const uint16_t &port, QByteArray data);
signals:
private:
Packer_t packer;
Parser_t parser;
quint64 record_count = 0;
uint64_t logname_count = 0;
QFile *file;
};
#endif // SAVETHREAD_H