ILocalizationManager.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #ifndef __ILOCALIZATION_MANAGER_H__
  2. #define __ILOCALIZATION_MANAGER_H__
  3. // *****************************************************************************
  4. // 版权所有(C)2023~2099 上海骄成超声波技术有限公司
  5. // 保留所有权利
  6. // *****************************************************************************
  7. // 作者 : 李祥瑞
  8. // 版本 : 1.1
  9. // 代码创建日期:2024/11/20
  10. // 版本更新日期:2024/11/25
  11. // 功能说明:定位算法管理器接口
  12. // *****************************************************************************
  13. #include "ILocalization.h"
  14. namespace JVision
  15. {
  16. /**
  17. * @brief 定位算法管理器接口
  18. *
  19. */
  20. class JVision_API ILocalizationManager
  21. {
  22. public:
  23. /**
  24. * @brief 构造函数
  25. * @param rootDir 数据存储的根目录
  26. */
  27. ILocalizationManager(const std::string& rootDir) {}
  28. virtual ~ILocalizationManager() {}
  29. /**
  30. * @brief 显示添加页面
  31. * @param[in] userRights 用户权限等级 (预留)
  32. * @param[in] imgInfo 图像数据
  33. * @param[in] localizationName 算法名
  34. * @param[in] message 附加信息
  35. *
  36. * @return int 添加的算法索引, 小于0表示失败
  37. */
  38. virtual int ShowAdd(E_PERMISSION_LEVEL permissionLevel, const ImageInfo& imgInfo, const std::string& localizationName, const std::string& message, int cameraID) = 0;
  39. /**
  40. * @brief 显示编辑页面
  41. * @param[in] userRights 用户权限等级 (预留)
  42. * @param[in] index 算法索引
  43. * @param[in] imgInfo 图像数据
  44. * @param[in] message 附加信息
  45. *
  46. * @return ResultCode 0: 成功, 其他: 失败
  47. *
  48. * @note 对应的错误码类型可以通过ExecuteErrorCode中接口获取失败信息
  49. */
  50. virtual ResultCode ShowEdit(E_PERMISSION_LEVEL permissionLevel, int index, const ImageInfo& imgInfo, const std::string& message) = 0;
  51. /**
  52. * @brief 移除某个算法(包含存储的数据)
  53. * @param[in] index 算法索引
  54. *
  55. * @return ResultCode 0: 成功, 其他: 失败
  56. *
  57. * @note 对应的错误码类型可以通过ExecuteErrorCode中接口获取失败信息
  58. */
  59. virtual ResultCode Remove(int index) = 0;
  60. /**
  61. * @brief 获取算法
  62. * @param index[in] 算法索引
  63. *
  64. * @return 算法
  65. */
  66. virtual ILocalization* Get(int index) const = 0;
  67. /**
  68. * @brief 清空数据 & 清空存储文件
  69. */
  70. virtual void Clear() = 0;
  71. /**
  72. * @brief 获取算法存储的目录
  73. * @param[in] index 算法索引
  74. *
  75. * @return std::string 对应算法的目录
  76. */
  77. virtual std::string GetLocalizationDir(int index) const = 0;
  78. /**
  79. * @brief 加载算法
  80. * @param[in] rootDir 数据存储的根目录
  81. *
  82. * @return ResultCode 0: 成功, 其他: 失败
  83. *
  84. * @note 对应的错误码类型可以通过ExecuteErrorCode中接口获取失败信息
  85. */
  86. virtual ResultCode Load(const std::string& rootDir) = 0;
  87. /**
  88. * @brief 获取算法管理
  89. * @param[in] rootDir 数据存储的根目录
  90. *
  91. * @return ILocalizationManager 算法管理实例
  92. */
  93. static ILocalizationManager* GetILocalizationManager(const std::string& rootDir);
  94. // 新增照明矫正数据
  95. static void AddIlluminateData(int cameraID, int min, int max);
  96. // 删除照明矫正数据
  97. static void DelIlluminateData(int cameraID);
  98. // 存储公共数据
  99. static void SaveCommonData();
  100. };
  101. } // namespace JVision
  102. #endif