#ifndef __SYSTEMCONFIG_H__ #define __SYSTEMCONFIG_H__ #include "GlobalVariable.h" #include "SystemConfigStruct.h" #include enum class eSystemConfigType { eSCT_BaseConfig = 0, // 基础配置 eSCT_CompareAI, // AI对比 eSCT_NoiseBase, // 噪音检测基础 eSCT_NoiseParam, // 噪音检测参数 eSCT_Database, // 数据库设置 eSCT_DetectPeriod // 检测时段 }; #define Config_Base "ACAS_Base" // 基础配置 #define Config_CompareAI "ACAS_CompareAI" // AI对比配置 #define Config_NoiseBase "ACAS_NoiseBase" // 噪音检测基础配置 #define Config_NoiseParam "ACAS_NoiseParam" // 噪音检测参数 #define Config_Database "ACAS_Database" // 数据库设置 #define Config_DetectPeriod "ACAS_DetectPeriod" // 检测时段配置 /** * @brief ACA系统的设置信息 * */ #define SysConfig SystemConfigInfo::instance() class SystemConfigInfo { SystemConfigInfo() = default; SystemConfigInfo(const SystemConfigInfo&) = delete; SystemConfigInfo& operator=(const SystemConfigInfo&) = delete; public: ~SystemConfigInfo() = default; static SystemConfigInfo& instance() { static SystemConfigInfo instance; return instance; } /* 系统设置类型 */ const QMap mapSysConfigDesc = { {eSystemConfigType::eSCT_BaseConfig, "基础配置"}, {eSystemConfigType::eSCT_CompareAI, "AI对比设置"}, {eSystemConfigType::eSCT_NoiseBase, "噪音检测基础设置"}, {eSystemConfigType::eSCT_NoiseParam, "噪音检测参数"}, {eSystemConfigType::eSCT_Database, "数据库设置信息"}, {eSystemConfigType::eSCT_DetectPeriod, "检测时段信息"} }; /*-------------------------------------------------------------------------------------*/ /* 获取未被修改的基础配置 */ const BaseConfig_t& getBaseConfigSrc() const { return m_baseConfigSrc; } /* 设置基础配置 */ void setBaseConfig(const BaseConfig_t& config); /* 将数据库的json转换成结构体 */ bool getBaseConfigFromJson(const std::string& jsonStr); /* 将结构体转换成json */ bool setBaseConfigToJson(const BaseConfig_t& baseConfig, std::string& strJson) const; /*-------------------------------------------------------------------------------------*/ /* 获取AI对比配置 */ const AICompareConfig_t& getAICompareConfig() const { return m_aiCompareConfig; } /* 设置AI对比配置 */ void setAICompareConfig(const AICompareConfig_t& config); /* 将数据库的json转换成AI对比配置 */ bool getAICompareConfigFromJson(const std::string& jsonStr); /* 将AI对比配置转换成json */ bool setAICompareConfigToJson(const AICompareConfig_t& aiCompareConfig, std::string& strJson) const; /*-------------------------------------------------------------------------------------*/ /* 获取噪音检测基础配置 */ const NoiseDetectBaseConfig_t& getNoiseDetectBaseConfig() const { return m_noiseDetectBaseConfig; } /* 设置噪音检测基础配置 */ void setNoiseDetectBaseConfig(const NoiseDetectBaseConfig_t& config); /* 将数据库的json转换成噪音检测基础配置 */ bool getNoiseDetectBaseConfigFromJson(const std::string& jsonStr); /* 将噪音检测基础配置转换成json */ bool setNoiseDetectBaseConfigToJson(const NoiseDetectBaseConfig_t& noiseDetectBaseConfig, std::string& strJson) const; /*-------------------------------------------------------------------------------------*/ /* 获取噪音检测参数 */ const NoiseDetectParam_t& getNoiseDetectParam() const { return m_noiseDetectParam; } /* 设置噪音检测参数 */ void setNoiseDetectParam(const NoiseDetectParam_t& config); /* 将数据库的json转换成噪音检测参数 */ bool getNoiseDetectParamFromJson(const std::string& jsonStr); /* 将噪音检测参数转换成json */ bool setNoiseDetectParamToJson(const NoiseDetectParam_t& noiseDetectParam, std::string& strJson) const; /*-------------------------------------------------------------------------------------*/ /* 获取数据库设置 */ const DatabaseConfig_t& getDatabaseConfig() const { return m_databaseConfig; } /* 设置数据库设置 */ void setDatabaseConfig(const DatabaseConfig_t& config); /* 将数据库的json转换成数据库设置 */ bool getDatabaseConfigFromJson(const std::string& jsonStr); /* 将数据库设置转换成json */ bool setDatabaseConfigToJson(const DatabaseConfig_t& databaseConfig, std::string& strJson) const; /*-------------------------------------------------------------------------------------*/ const QMap& getDetectPeriodConfig() const { return m_mapDetectConfig; } /* 设置检测时段配置 */ void setDetectPeriodConfig(const QMap& config); public: private: /* 基础配置未被修改版本 */ BaseConfig_t m_baseConfigSrc; /* ai对比需要的参数 */ AICompareConfig_t m_aiCompareConfig; /* 噪音检测基础配置 */ NoiseDetectBaseConfig_t m_noiseDetectBaseConfig; /* 噪音检测参数 */ NoiseDetectParam_t m_noiseDetectParam; /* 数据库设置 */ DatabaseConfig_t m_databaseConfig; /* 计划周期配置,key为对比项ID */ QMap m_mapDetectConfig; }; #endif // __SYSTEMCONFIG_H__