2026年5月23日暂存

This commit is contained in:
2026-05-23 14:16:57 +08:00
parent c8a5a121c9
commit 1cb9d5ac42
59 changed files with 15774 additions and 8662 deletions
+86
View File
@@ -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