SystemConfig.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. #ifndef __SYSTEMCONFIG_H__
  2. #define __SYSTEMCONFIG_H__
  3. #include "GlobalVariable.h"
  4. #include "SystemConfigStruct.h"
  5. #include <string>
  6. enum class eSystemConfigType
  7. {
  8. eSCT_BaseConfig = 0, // 基础配置
  9. eSCT_CompareAI, // AI对比
  10. eSCT_NoiseBase, // 噪音检测基础
  11. eSCT_NoiseParam, // 噪音检测参数
  12. eSCT_Database, // 数据库设置
  13. eSCT_DetectPeriod // 检测时段
  14. };
  15. #define Config_Base "ACAS_Base" // 基础配置
  16. #define Config_CompareAI "ACAS_CompareAI" // AI对比配置
  17. #define Config_NoiseBase "ACAS_NoiseBase" // 噪音检测基础配置
  18. #define Config_NoiseParam "ACAS_NoiseParam" // 噪音检测参数
  19. #define Config_Database "ACAS_Database" // 数据库设置
  20. #define Config_DetectPeriod "ACAS_DetectPeriod" // 检测时段配置
  21. /**
  22. * @brief ACA系统的设置信息
  23. *
  24. */
  25. #define SysConfig SystemConfigInfo::instance()
  26. class SystemConfigInfo
  27. {
  28. SystemConfigInfo() = default;
  29. SystemConfigInfo(const SystemConfigInfo&) = delete;
  30. SystemConfigInfo& operator=(const SystemConfigInfo&) = delete;
  31. public:
  32. ~SystemConfigInfo() = default;
  33. static SystemConfigInfo& instance()
  34. {
  35. static SystemConfigInfo instance;
  36. return instance;
  37. }
  38. /* 系统设置类型 */
  39. const QMap<eSystemConfigType, std::string> mapSysConfigDesc = {
  40. {eSystemConfigType::eSCT_BaseConfig, "基础配置"},
  41. {eSystemConfigType::eSCT_CompareAI, "AI对比设置"},
  42. {eSystemConfigType::eSCT_NoiseBase, "噪音检测基础设置"},
  43. {eSystemConfigType::eSCT_NoiseParam, "噪音检测参数"},
  44. {eSystemConfigType::eSCT_Database, "数据库设置信息"},
  45. {eSystemConfigType::eSCT_DetectPeriod, "检测时段信息"}
  46. };
  47. /*-------------------------------------------------------------------------------------*/
  48. /* 获取未被修改的基础配置 */
  49. const BaseConfig_t& getBaseConfigSrc() const { return m_baseConfigSrc; }
  50. /* 设置基础配置 */
  51. void setBaseConfig(const BaseConfig_t& config);
  52. /* 将数据库的json转换成结构体 */
  53. bool getBaseConfigFromJson(const std::string& jsonStr);
  54. /* 将结构体转换成json */
  55. bool setBaseConfigToJson(const BaseConfig_t& baseConfig, std::string& strJson) const;
  56. /*-------------------------------------------------------------------------------------*/
  57. /* 获取AI对比配置 */
  58. const AICompareConfig_t& getAICompareConfig() const { return m_aiCompareConfig; }
  59. /* 设置AI对比配置 */
  60. void setAICompareConfig(const AICompareConfig_t& config);
  61. /* 将数据库的json转换成AI对比配置 */
  62. bool getAICompareConfigFromJson(const std::string& jsonStr);
  63. /* 将AI对比配置转换成json */
  64. bool setAICompareConfigToJson(const AICompareConfig_t& aiCompareConfig, std::string& strJson) const;
  65. /*-------------------------------------------------------------------------------------*/
  66. /* 获取噪音检测基础配置 */
  67. const NoiseDetectBaseConfig_t& getNoiseDetectBaseConfig() const { return m_noiseDetectBaseConfig; }
  68. /* 设置噪音检测基础配置 */
  69. void setNoiseDetectBaseConfig(const NoiseDetectBaseConfig_t& config);
  70. /* 将数据库的json转换成噪音检测基础配置 */
  71. bool getNoiseDetectBaseConfigFromJson(const std::string& jsonStr);
  72. /* 将噪音检测基础配置转换成json */
  73. bool setNoiseDetectBaseConfigToJson(const NoiseDetectBaseConfig_t& noiseDetectBaseConfig, std::string& strJson) const;
  74. /*-------------------------------------------------------------------------------------*/
  75. /* 获取噪音检测参数 */
  76. const NoiseDetectParam_t& getNoiseDetectParam() const { return m_noiseDetectParam; }
  77. /* 设置噪音检测参数 */
  78. void setNoiseDetectParam(const NoiseDetectParam_t& config);
  79. /* 将数据库的json转换成噪音检测参数 */
  80. bool getNoiseDetectParamFromJson(const std::string& jsonStr);
  81. /* 将噪音检测参数转换成json */
  82. bool setNoiseDetectParamToJson(const NoiseDetectParam_t& noiseDetectParam, std::string& strJson) const;
  83. /*-------------------------------------------------------------------------------------*/
  84. /* 获取数据库设置 */
  85. const DatabaseConfig_t& getDatabaseConfig() const { return m_databaseConfig; }
  86. /* 设置数据库设置 */
  87. void setDatabaseConfig(const DatabaseConfig_t& config);
  88. /* 将数据库的json转换成数据库设置 */
  89. bool getDatabaseConfigFromJson(const std::string& jsonStr);
  90. /* 将数据库设置转换成json */
  91. bool setDatabaseConfigToJson(const DatabaseConfig_t& databaseConfig, std::string& strJson) const;
  92. /*-------------------------------------------------------------------------------------*/
  93. const QMap<int, DetectPeriodConfig_t>& getDetectPeriodConfig() const { return m_mapDetectConfig; }
  94. /* 设置检测时段配置 */
  95. void setDetectPeriodConfig(const QMap<int, DetectPeriodConfig_t>& config);
  96. public:
  97. private:
  98. /* 基础配置未被修改版本 */
  99. BaseConfig_t m_baseConfigSrc;
  100. /* ai对比需要的参数 */
  101. AICompareConfig_t m_aiCompareConfig;
  102. /* 噪音检测基础配置 */
  103. NoiseDetectBaseConfig_t m_noiseDetectBaseConfig;
  104. /* 噪音检测参数 */
  105. NoiseDetectParam_t m_noiseDetectParam;
  106. /* 数据库设置 */
  107. DatabaseConfig_t m_databaseConfig;
  108. /* 计划周期配置,key为对比项ID */
  109. QMap<int, DetectPeriodConfig_t> m_mapDetectConfig;
  110. };
  111. #endif // __SYSTEMCONFIG_H__