#ifndef __ILOCALIZATION_MANAGER_H__ #define __ILOCALIZATION_MANAGER_H__ // ***************************************************************************** // 版权所有(C)2023~2099 上海骄成超声波技术有限公司 // 保留所有权利 // ***************************************************************************** // 作者 : 李祥瑞 // 版本 : 1.1 // 代码创建日期:2024/11/20 // 版本更新日期:2024/11/25 // 功能说明:定位算法管理器接口 // ***************************************************************************** #include "ILocalization.h" namespace JVision { /** * @brief 定位算法管理器接口 * */ class JVision_API ILocalizationManager { public: /** * @brief 构造函数 * @param rootDir 数据存储的根目录 */ ILocalizationManager(const std::string& rootDir) {} virtual ~ILocalizationManager() {} /** * @brief 显示添加页面 * @param[in] userRights 用户权限等级 (预留) * @param[in] imgInfo 图像数据 * @param[in] localizationName 算法名 * @param[in] message 附加信息 * * @return int 添加的算法索引, 小于0表示失败 */ virtual int ShowAdd(E_PERMISSION_LEVEL permissionLevel, const ImageInfo& imgInfo, const std::string& localizationName, const std::string& message, int cameraID) = 0; /** * @brief 显示编辑页面 * @param[in] userRights 用户权限等级 (预留) * @param[in] index 算法索引 * @param[in] imgInfo 图像数据 * @param[in] message 附加信息 * * @return ResultCode 0: 成功, 其他: 失败 * * @note 对应的错误码类型可以通过ExecuteErrorCode中接口获取失败信息 */ virtual ResultCode ShowEdit(E_PERMISSION_LEVEL permissionLevel, int index, const ImageInfo& imgInfo, const std::string& message) = 0; /** * @brief 移除某个算法(包含存储的数据) * @param[in] index 算法索引 * * @return ResultCode 0: 成功, 其他: 失败 * * @note 对应的错误码类型可以通过ExecuteErrorCode中接口获取失败信息 */ virtual ResultCode Remove(int index) = 0; /** * @brief 获取算法 * @param index[in] 算法索引 * * @return 算法 */ virtual ILocalization* Get(int index) const = 0; /** * @brief 清空数据 & 清空存储文件 */ virtual void Clear() = 0; /** * @brief 获取算法存储的目录 * @param[in] index 算法索引 * * @return std::string 对应算法的目录 */ virtual std::string GetLocalizationDir(int index) const = 0; /** * @brief 加载算法 * @param[in] rootDir 数据存储的根目录 * * @return ResultCode 0: 成功, 其他: 失败 * * @note 对应的错误码类型可以通过ExecuteErrorCode中接口获取失败信息 */ virtual ResultCode Load(const std::string& rootDir) = 0; /** * @brief 获取算法管理 * @param[in] rootDir 数据存储的根目录 * * @return ILocalizationManager 算法管理实例 */ static ILocalizationManager* GetILocalizationManager(const std::string& rootDir); // 新增照明矫正数据 static void AddIlluminateData(int cameraID, int min, int max); // 删除照明矫正数据 static void DelIlluminateData(int cameraID); // 存储公共数据 static void SaveCommonData(); }; } // namespace JVision #endif