完成框架目录和模块重构;新增核心、单例、工具、加密及框架 SDK;统一任务、相机和 RPC 接口,并增加离线检测、相机标定、备份恢复、版本管理、崩溃守护和心跳监控功能。
41 lines
1.4 KiB
C++
41 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <eui_frameworkSdk/IMissionAlgo.h>
|
|
#include <eui_frameworkSdk/IMissionBridge.h>
|
|
#include <eui_frameworkSdk/MissionMetadata.h>
|
|
#include <eui_frameworkSdk/MissionRuntimeInterfaces.h>
|
|
|
|
#include <memory>
|
|
|
|
namespace eui_frameworkSdk
|
|
{
|
|
// 固定生命周期的 mission 编排/配置角色,不参与热重载。
|
|
//
|
|
// Core invokes the lifecycle in this order:
|
|
// initBasic -> shutdown -> destroyMissionConfigV1.
|
|
// initBasic 在一次 backend 生命周期中只调用一次;shutdown 只在释放时调用。
|
|
class IMissionConfig
|
|
{
|
|
public:
|
|
// 释放 mission 配置实例。
|
|
virtual ~IMissionConfig() = default;
|
|
|
|
// 注入宿主桥接接口。
|
|
void setBridge(IMissionBridge* bridgeIn) noexcept { bridge = bridgeIn; }
|
|
|
|
// 初始化 mission 配置和运行时依赖。
|
|
virtual bool initBasic(IServiceManager& serviceManager, const MissionMetadata& metadata) = 0;
|
|
|
|
// 释放 mission 运行资源。
|
|
virtual void shutdown() = 0;
|
|
|
|
// 注入当前算法实例。初次加载及 IMissionAlgo 热重载成功后调用;
|
|
// nullptr 仅用于 backend 释放。该函数不会重启或重新初始化 IMissionConfig。
|
|
// config-only mission 可使用默认空实现。
|
|
virtual void setAlgo(std::shared_ptr<IMissionAlgo> algo) { (void)algo; }
|
|
|
|
protected:
|
|
IMissionBridge* bridge = nullptr; // 宿主桥接接口,不负责释放。
|
|
};
|
|
}
|