2026年5月23日暂存
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
#ifndef RUNTIMECTRL_H
|
||||
#define RUNTIMECTRL_H
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QObject>
|
||||
#include <QTimer>
|
||||
#include <QSettings>
|
||||
#include "SysPara.h"
|
||||
|
||||
/**
|
||||
当前类用于统计软件运行时间、到期提醒间隔
|
||||
设备保养提醒
|
||||
*/
|
||||
class RunTimeCtrl : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
static RunTimeCtrl* instance() {
|
||||
static RunTimeCtrl ins;
|
||||
return &ins;
|
||||
}
|
||||
|
||||
~RunTimeCtrl();
|
||||
|
||||
// 启动计时
|
||||
void start();
|
||||
|
||||
// 停止计时
|
||||
void stop();
|
||||
|
||||
// 设置提示间隔(单位:分钟,默认5分钟)
|
||||
void setAlertInterval(qint64 minutes);
|
||||
|
||||
// 获取本次运行时间(秒)
|
||||
qint64 getElapsedSeconds() const;
|
||||
|
||||
// 获取已运行时间(秒)
|
||||
qint64 getTotalSeconds() const;
|
||||
|
||||
// 初始化加载参数
|
||||
void loadConfig(RFIDPara_t* para);
|
||||
|
||||
// 更新参数
|
||||
void updatePara(RFIDPara_t* para);
|
||||
|
||||
// 授权时
|
||||
void authorizationAccepted(RFIDPara_t* para);
|
||||
signals:
|
||||
void sig_alertTimeout();
|
||||
|
||||
void sig_updateTimeoutDay(int days);
|
||||
|
||||
void sig_saveRunTime();
|
||||
|
||||
private slots:
|
||||
void slt_checkRunTime();
|
||||
void slt_recodeTime();
|
||||
|
||||
private:
|
||||
RunTimeCtrl();
|
||||
|
||||
QTimer *m_checkTimer = nullptr; // 检查计时器
|
||||
QTimer *m_alertTimer = nullptr; // 提示计时器
|
||||
QTimer *m_runTimer = nullptr; // 运行计时器,记录运行时间和更新总时间
|
||||
QDateTime m_startTime; // 开始时间
|
||||
QDateTime m_stopTime; // 停止时间
|
||||
unsigned int m_stopTimeHours = 0; // 停止时间(小时)
|
||||
int m_alertIntervalMinutes = 180; // 提示间隔(分钟)
|
||||
bool m_isAlter = false; // 启动提示计时器标志
|
||||
quint64 m_elapsedSeconds = 0; // 本次运行的时间
|
||||
quint64 m_totalSeconds = 0; // 总运行时间 30s更新一次
|
||||
|
||||
// todo 后续一个相关功能建立一个结构体和独立定时器
|
||||
|
||||
RFIDPara_t m_para;
|
||||
int timeoutDay = 0;
|
||||
|
||||
void init();
|
||||
|
||||
bool checkRunTime();
|
||||
|
||||
bool checkTimeoutDay();
|
||||
};
|
||||
|
||||
#endif // RUNTIMECTRL_H
|
||||
Reference in New Issue
Block a user