123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- #ifndef __SYSTEMCONFIG_H__
- #define __SYSTEMCONFIG_H__
- /**
- * @file SystemConfig.h
- * @author your name (you@domain.com)
- * @brief
- * @version 0.1
- * @date 2025-07-15
- *
- * @copyright Copyright (c) 2025
- *
- * 1、这个类是Server和Setting共用的系统配置类
- *
- */
- #include "GlobalVariable.h"
- #include "SystemConfigStruct.h"
- #include <string>
- enum class eSystemConfigType
- {
- eSCT_BaseConfig = 0, // 基础配置
- eSCT_CompareAI, // AI对比
- eSCT_NoiseBase, // 噪音检测基础
- eSCT_NoiseParam, // 噪音检测参数
- eSCT_Database, // 数据库设置
- eSCT_DetectPeriod, // 检测时段
- eSCT_SoundCardInfo, // 声卡信息
- };
- #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" // 检测时段配置
- #define Config_SoundCardInfo "ACAS_SoundCardInfo" // 声卡信息配置
- /**
- * @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;
- }
- /*系统配置的Key */
- // const QMap<eSystemConfigType, QString> mapSysConfigKey = {
- // {eSystemConfigType::eSCT_BaseConfig, "ACAS_Base"},
- // {eSystemConfigType::eSCT_CompareAI, "ACAS_CompareAI"},
- // {eSystemConfigType::eSCT_NoiseBase, "ACAS_NoiseBase"},
- // {eSystemConfigType::eSCT_NoiseParam, "ACAS_NoiseParam"},
- // {eSystemConfigType::eSCT_Database, "ACAS_Database"},
- // {eSystemConfigType::eSCT_DetectPeriod, "ACAS_DetectPeriod"},
- // {eSystemConfigType::eSCT_SoundCardInfo, "ACAS_SoundCardInfo"}
- // };
- /* 系统设置类型 */
- const QMap<eSystemConfigType, std::string> mapSysConfigDesc = {
- {eSystemConfigType::eSCT_BaseConfig, "基础配置"},
- {eSystemConfigType::eSCT_CompareAI, "AI对比设置"},
- {eSystemConfigType::eSCT_NoiseBase, "噪音检测基础设置"},
- {eSystemConfigType::eSCT_NoiseParam, "噪音检测参数"},
- {eSystemConfigType::eSCT_Database, "数据库设置信息"},
- {eSystemConfigType::eSCT_DetectPeriod, "检测时段信息"},
- {eSystemConfigType::eSCT_SoundCardInfo, "系统的声卡信息"}
- };
- /* 解析设置从数据库读取到的配置信息 */
- void parseConfigFromDatabase(const QMap<std::string, std::string>& baseSettings);
- /*-------------------------------------------------------------------------------------*/
- /* 获取未被修改的基础配置 */
- 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<int, DetectPeriodConfig_t>& getDetectPeriodConfig() const { return m_mapDetectConfig; }
- /* 设置检测时段配置 */
- void setDetectPeriodConfig(const QMap<int, DetectPeriodConfig_t>& config);
- /*-------------------------------------------------------------------------------------*/
- /* 声卡信息有单独的声卡信息类,不在这里存储 */
- /* 将声卡信息转换成json */
- bool setSoundCardInfoToJson(const QMap<int, SoundCardInfo_t>& soundCardInfo, std::string& strJson) const;
- /* 将json转换成声卡信息 */
- bool getSoundCardInfoFromJson(const std::string& jsonStr, QMap<int, SoundCardInfo_t>& soundCardInfo);
- 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<int, DetectPeriodConfig_t> m_mapDetectConfig;
- };
- #endif // __SYSTEMCONFIG_H__
|