Эх сурвалжийг харах

V2.5
1、新增了配置倒计时时间的配置,读取配置文件

Apple 1 өдөр өмнө
parent
commit
9ee9d0e499

+ 49 - 31
TransmitterSwitch/transmitterswitch.cpp

@@ -7,6 +7,7 @@
 #include <memory>
 #include <QLayout>
 #include <QScrollBar>
+#include <QSettings>
 
 #include "LHQLogAPI.h"
 #include "pBtnUserData2.h"
@@ -236,6 +237,9 @@ void TransmitterSwitch::getExecPlanFromEQM()
         return;
     }
 
+    /* 刷新倒计时间隔 */
+    updateCountDown();
+
     // delete m_fromWebAPI;
     // m_fromWebAPI = nullptr;
 
@@ -1157,20 +1161,7 @@ void TransmitterSwitch::do_saveTemplateToDB(ChannelInfo info)
 
 
 
-/* 保存计划到EQM数据库 */
-void TransmitterSwitch::do_pBtn_savePlan()
-{
-    /* 跳出弹窗提示 */
-    Warning w(this);
-    w.setQSS(EPUIStyle.getQSSPath());
-    w.setText("将计划保存到数据库?");
-    w.exec();
-    if(!w.isOk())
-    {
-        return;
-    }
-    saveExecPlanToEQM();
-}
+
 
 /* 删除一个模版 */
 void TransmitterSwitch::do_deleteTemplate(OneTemplateInfo info)
@@ -1198,21 +1189,36 @@ void TransmitterSwitch::do_pBtnManageTemplate()
     }
 }
 
+/* 保存计划到EQM数据库 */
+// void TransmitterSwitch::do_pBtn_savePlan()
+// {
+//     /* 跳出弹窗提示 */
+//     Warning w(this);
+//     w.setQSS(EPUIStyle.getQSSPath());
+//     w.setText("将计划保存到数据库?");
+//     w.exec();
+//     if(!w.isOk())
+//     {
+//         return;
+//     }
+//     saveExecPlanToEQM();
+// }
+
 
 /* 从EQM数据库获取计划 */
-void TransmitterSwitch::do_pBtn_getPlan()
-{
-    /* 跳出弹窗提示 */
-    Warning w(this);
-    w.setQSS(EPUIStyle.getQSSPath());
-    w.setText("从数据库获取计划,将清空当前所有的计划,请注意保存当前计划!");
-    w.exec();
-    if(!w.isOk())
-    {
-        return;
-    }
-    getExecPlanFromEQM();
-}
+// void TransmitterSwitch::do_pBtn_getPlan()
+// {
+//     /* 跳出弹窗提示 */
+//     Warning w(this);
+//     w.setQSS(EPUIStyle.getQSSPath());
+//     w.setText("从数据库获取计划,将清空当前所有的计划,请注意保存当前计划!");
+//     w.exec();
+//     if(!w.isOk())
+//     {
+//         return;
+//     }
+//     getExecPlanFromEQM();
+// }
 
 /* 切换亮色/暗色外观 */
 void TransmitterSwitch::do_setUIStyle()
@@ -2061,12 +2067,12 @@ bool TransmitterSwitch::isFrequencyInCountdown(int channelID)
     return isNear;
 }
 
-/* 判断两个时间点是否在分钟之内 */
+/* 判断两个时间点是否在N分钟之内 */
 bool TransmitterSwitch::isInCountdownTime(const QDateTime& nowTime, const enum_WeekDay weekDay, const QDateTime& time)
 {
-    // 10分钟后
-    int tenMinutes = 10 * 60;
-    QDateTime afterTenMins = nowTime.addSecs(tenMinutes);
+    // N分钟后
+    SPDLOG_INFO("当前时间间隔: {}", m_countdownInterval);
+    QDateTime afterTenMins = nowTime.addSecs(m_countdownInterval);
     enum_WeekDay nowWeekDay = static_cast<enum_WeekDay>(nowTime.date().dayOfWeek());
     enum_WeekDay afterWeekDay = static_cast<enum_WeekDay>(afterTenMins.date().dayOfWeek());
     /* 先判断是否是特殊日 */
@@ -2118,6 +2124,18 @@ bool TransmitterSwitch::isInCountdownTime(const QDateTime& nowTime, const enum_W
     return false; /* 不在10分钟之内 */
 }
 
+/* 更新倒计时 */
+void TransmitterSwitch::updateCountDown()
+{
+    QString strConfigPath = QApplication::applicationDirPath() + m_configName;
+    QSettings setting(strConfigPath, QSettings::IniFormat);
+    setting.beginGroup("System");
+    int countDown = setting.value("PlanTimeSpace", 10).toInt();
+    setting.endGroup();
+    /* 读取出来的是分钟,转换成秒 */
+    m_countdownInterval = countDown * 60;
+}
+
 
 
 /* 事件过滤器 */

+ 9 - 3
TransmitterSwitch/transmitterswitch.h

@@ -100,9 +100,9 @@ private slots:
     void do_pBtnManageTemplate();
 
     /* 保存计划到EQM数据库 */
-    void do_pBtn_savePlan();
+    // void do_pBtn_savePlan();
     /* 从EQM数据库获取计划 */
-    void do_pBtn_getPlan();
+    // void do_pBtn_getPlan();
 
     /* 切换亮色/暗色外观 */
     void do_setUIStyle();
@@ -151,9 +151,12 @@ private:
 
     /* 判断当前频率是否在倒计时 */
     bool isFrequencyInCountdown(int channelID);
-    /* 判断两个时间点是否在分钟之内 */
+    /* 判断两个时间点是否在N分钟之内 */
     bool isInCountdownTime(const QDateTime& nowTime, const enum_WeekDay weekDay, const QDateTime& time);
 
+    /* 更新倒计时 */
+    void updateCountDown();
+
 protected:
     /* 事件过滤器 */
     bool eventFilter(QObject *watched, QEvent *event) override;
@@ -169,6 +172,8 @@ private:
     QLabel* m_tipText = nullptr;            /* 提示文本 */
     QString m_styleSheet;                   /* 样式表 */
 
+    const QString m_configName = "/Config.ini"; /* 配置文件名称 */
+
     QList<QPushButton*> m_listFrequencyBtn; /* 频率按钮列表 */
 
     FromWebAPI* m_fromWebAPI = nullptr;     /* WebAPI操作类 */
@@ -186,6 +191,7 @@ private:
     /* ------------------------------- MQTT相关数据 ------------------------------- */
     FromMQTT m_fromMQTT;                  /* MQTT */
     
+    int m_countdownInterval = 600;        /* 倒计时间隔,单位秒,默认10分钟 */
     
 };