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