#ifndef DRONESCREWCTRL_CONFIG_MANAGER_H #define DRONESCREWCTRL_CONFIG_MANAGER_H #include "IVrConfig.h" #include #include /** * @brief 控制端配置管理器 * * 不再依赖 BasePresenter / AppConfig,因为板二是显示+控制端, * 不参与相机/算法配置同步,只管自己 XML 文件的读写。 */ class ConfigManager { public: static ConfigManager& Instance(); bool Initialize(const std::string& configPath); bool Reload(); bool Save(); DroneScrewCtrlConfigResult GetConfig() const; void SetConfig(const DroneScrewCtrlConfigResult& cfg); private: ConfigManager(); ~ConfigManager(); ConfigManager(const ConfigManager&) = delete; ConfigManager& operator=(const ConfigManager&) = delete; IDroneScrewCtrlConfig* m_pConfig{nullptr}; DroneScrewCtrlConfigResult m_cache; std::string m_path; mutable std::mutex m_mutex; }; #endif // DRONESCREWCTRL_CONFIG_MANAGER_H