Files
VX5_KRO_GearPump/runtimectrl.h
T
2026-07-08 16:56:05 +08:00

84 lines
1.9 KiB
C++

#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; // 运行计时器,记录运行时间和更新总时间
int m_alertIntervalMinutes = 60; // 提示间隔(分钟)
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