🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
Sequence.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "MissionCommand.hpp"
25#include "Segment.hpp"
26#include "AstCore/ScriptingToolProfile.hpp"
27
28AST_NAMESPACE_BEGIN
29
36/*
37 MCS 的全程是 Mission Command Sequence (任务命令序列) 或者 Mission Control Sequence (任务控制序列)
38*/
39
40
42class AST_CORE_API Sequence: public Segment
43{
44public:
45 AST_OBJECT(Sequence)
46 Sequence() = default;
47 ~Sequence() = default;
48public:
49 errc_t execute() override;
50
51public: // 管理子命令
53 void setCommands(const std::vector<HMissionCommand>& commands);
54
56 void setCommands(std::vector<HMissionCommand>&& commands);
57
59 void addCommand(MissionCommand* command);
60
64 void insertCommand(int index, MissionCommand* command);
65
67 errc_t removeCommand(MissionCommand* command);
68
69
70 const std::vector<HMissionCommand>& getCommands() const{return commands_;}
71
75 Segment* getSegmentByPath(StringView path);
76 MissionCommand* getCommandByPath(StringView path);
77
81 Segment* getSegmentByName(StringView name);
82 MissionCommand* getCommandByName(StringView name);
83
84public: // 脚本工具
85 ScriptingToolProfile* scriptingTool() const{return scriptingTool_.get();}
86 void setScriptingTool(ScriptingToolProfile* tool){scriptingTool_ = tool;}
87public:
90 int repeatCount() const{return repeatCount_;}
91 void setRepeatCount(int count){repeatCount_ = count;}
92protected:
94 void linkCommands();
95private:
96 int repeatCount_{1};
97 std::vector<HMissionCommand> commands_;
98 SharedPtr<ScriptingToolProfile> scriptingTool_;
99};
100
101
104AST_NAMESPACE_END
命令(虚基类),用于定义任务序列中的命令,例如初始状态、轨道机动、轨道预报等
定义 Command.hpp:42
脚本工具配置
定义 ScriptingToolProfile.hpp:41
轨道段(虚基类),用于描述任务序列中的轨道段,例如初始状态段、轨道机动段、轨道预报段等
定义 Segment.hpp:45
virtual errc_t execute() override=0
执行任务
任务序列段,内部包含多个任务命令或轨道段,并会按顺序执行
定义 Sequence.hpp:43
int repeatCount() const
获取重复次数
定义 Sequence.hpp:90