You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.3 KiB
C

3 months ago
#ifndef COMMON_H
#define COMMON_H
#include <QObject>
#include "utils/Singleton.h"
#include <QString>
#include <QMap>
#include "utils/interface.h"
3 months ago
#include "nlohmann/json.hpp"
#include "EasySpdLog.h"
#define TEST_MODE
3 months ago
class Common : public QObject, public Singleton<Common>
{
Q_OBJECT
friend class Singleton<Common>;
public:
// 加载Config文件
3 months ago
bool loadConfig(const QString& filePath);
// 保存到Config文件
bool saveConfig(const QMap<int, ProductConfig> &productsCfg, const QMap<int, ModeConfig> &workmodeCfg);
// 更新产品配置文件
bool updateProductsConfig(const QMap<int, ProductConfig> &productsCfg);
// 获取IP地址
QString getIPAddr() const;
// 获取端口号
3 months ago
int getSrcPort() const;
int getDstPort() const;
const QString getCurrWorkModeStr() const;
// 获取产品配置
3 months ago
QMap<int, ProductConfig> getProductConfigs();
// 设置产品配置
3 months ago
void setProductConfig(const QMap<int, ProductConfig>& productsCfg);
// 获取工作模式
3 months ago
QMap<int, ModeConfig> getWorkModeConfigs();
// 设置工作模式
3 months ago
void setWorkModeConfigs(const QMap<int, ModeConfig>& workmodeCfg);
// 获取已选择的工作模式
3 months ago
const QMap<QString, Mode>& getSelectedProducts() const;
// 获取当前工作模式
3 months ago
int getCurrentWorkMode() const;
// 设置当前工作模式
3 months ago
void setCurrentWorkMode(const int workMode);
bool getRepairFlag() const;
void setRepairFlag(const bool isRepair);
static QString getWorkModeStr(int mode);
3 months ago
signals:
private:
Common();
bool saveConfig();
void FilterSelectedProducts();
private:
QString m_configFilePath{}; // 配置文件路径
3 months ago
nlohmann::json m_configJson{};
QString m_currentWorkPath{}; // 当前工作路径
std::atomic<int> m_currentMode{ -1 }; // 当前正在进行的工作模式
std::atomic<bool> m_isRepair{ false };
3 months ago
QString m_ipAddr{};
int m_dstPort{};
int m_srcPort{};
QMap<int, ModeConfig> m_modeConfigs{}; // 模式配置
QMap<int, ProductConfig> m_productConfigs{}; // 产品配置
QMap<QString, Mode> m_selectedProduct{}; // 选择的产品
std::atomic<bool> m_isLockSNLineEdit{false};
3 months ago
};
#endif // COMMON_H