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++
74 lines
2.3 KiB
C++
#ifndef COMMON_H
|
|
#define COMMON_H
|
|
|
|
#include <QObject>
|
|
#include "utils/Singleton.h"
|
|
#include <QString>
|
|
#include <QMap>
|
|
#include "utils/interface.h"
|
|
#include "nlohmann/json.hpp"
|
|
#include "EasySpdLog.h"
|
|
|
|
#define TEST_MODE
|
|
|
|
class Common : public QObject, public Singleton<Common>
|
|
{
|
|
Q_OBJECT
|
|
friend class Singleton<Common>;
|
|
public:
|
|
// 加载Config文件
|
|
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;
|
|
// 获取端口号
|
|
int getSrcPort() const;
|
|
int getDstPort() const;
|
|
const QString getCurrWorkModeStr() const;
|
|
// 获取产品配置
|
|
QMap<int, ProductConfig> getProductConfigs();
|
|
// 设置产品配置
|
|
void setProductConfig(const QMap<int, ProductConfig>& productsCfg);
|
|
// 获取工作模式
|
|
QMap<int, ModeConfig> getWorkModeConfigs();
|
|
// 设置工作模式
|
|
void setWorkModeConfigs(const QMap<int, ModeConfig>& workmodeCfg);
|
|
// 获取已选择的工作模式
|
|
const QMap<QString, Mode>& getSelectedProducts() const;
|
|
// 获取当前工作模式
|
|
int getCurrentWorkMode() const;
|
|
// 设置当前工作模式
|
|
void setCurrentWorkMode(const int workMode);
|
|
|
|
bool getRepairFlag() const;
|
|
|
|
void setRepairFlag(const bool isRepair);
|
|
|
|
static QString getWorkModeStr(int mode);
|
|
signals:
|
|
|
|
private:
|
|
Common();
|
|
bool saveConfig();
|
|
void FilterSelectedProducts();
|
|
|
|
private:
|
|
QString m_configFilePath{}; // 配置文件路径
|
|
nlohmann::json m_configJson{};
|
|
QString m_currentWorkPath{}; // 当前工作路径
|
|
std::atomic<int> m_currentMode{ -1 }; // 当前正在进行的工作模式
|
|
std::atomic<bool> m_isRepair{ false };
|
|
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};
|
|
};
|
|
|
|
#endif // COMMON_H
|