/* * @Author: xiewenji 527774126@qq.com * @Date: 2025-09-11 15:32:54 * @LastEditors: xiewenji 527774126@qq.com * @LastEditTime: 2025-09-13 18:49:40 * @FilePath: /BOE_CELL_AOI_Detect/ConfigModule/include/ConfigBase.h * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ #ifndef ConfigBase_H_ #define ConfigBase_H_ #include #include #include #define CONFIGBASE_VERSION 4 #define EMPTY_CONFIG_NAME "ALL" enum CONFIG_TYPE_ { ConfigType_Analysisy_Common_XL, ConfigType_Check_XL, ConfigType_Image_In, ConfigType_Image_out, ConfigType_BloB, ConfigType_Count, }; struct ImageInfo { int width; int height; int channels; ImageInfo() { width = 0; height = 0; channels = 0; } void copy(ImageInfo tem) { this->width = tem.width; this->height = tem.height; this->channels = tem.channels; } void print(std::string str) { printf("%s width=%d height=%d channels=%d\n", str.c_str(), width, height, channels); } }; class ConfigBase { protected: ConfigBase() {} public: // delete camera interface ~ConfigBase() {} static std::shared_ptr GetInstance(); virtual int GetConfigIdx() = 0; // 获取参数更新状态 true 有更新 virtual bool GetConfigUpdataStatus(int nConfigType, int nidx) = 0; // 复制想使用的参数 virtual int GetConfig(int nConfigType, void *pconfig) = 0; // 更新参数 pconfig 参数指针,nConfigType 需要更新的参数类型 返回:0 成功 其他异常 virtual int UpdateConfig(void *pconfig, int nConfigType) = 0; virtual int UpdateJSONConfig(void *pconfig, int nConfigType) = 0; // 返回检测版本信息 virtual std::string GetVersion() = 0; // 返回错误信息 virtual std::string GetErrorInfo() = 0; }; class ConfigManagerBase { protected: ConfigManagerBase() {} public: // delete camera interface ~ConfigManagerBase() {} static ConfigManagerBase *GetInstance(); virtual int LoadAnalysisConfig(std::string strConfigPath) = 0; virtual int UpdateConfig() = 0; virtual int GetConfig(int nConfigType, void *pconfig) = 0; static ConfigManagerBase *m_pInstance; public: std::unordered_map> Config_instances_; }; #endif