🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
FuncBlock.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "DataPort.hpp"
25#include "SimTime.hpp"
26#include <vector>
27
28AST_NAMESPACE_BEGIN
29
30class SimTime;
31
40class AST_CORE_API FuncBlock
41{
42public:
43 FuncBlock() = default;
44 virtual ~FuncBlock(){};
45
49 virtual errc_t run(const SimTime& simTime) = 0;
50
51
54 const std::vector<DataPort>& getInputPorts() const { return inputPorts_; }
55 std::vector<DataPort>& getInputPorts() { return inputPorts_; }
56
59 const std::vector<DataPort>& getOutputPorts() const { return outputPorts_; }
60 std::vector<DataPort>& getOutputPorts() { return outputPorts_; }
61
62
65 size_t getNumInputPorts() const { return inputPorts_.size(); }
66
69 size_t getNumOutputPorts() const { return outputPorts_.size(); }
70
74 DataPort* getInputPort(StringView portName);
75
79 DataPort* getOutputPort(StringView portName);
80
84 DataPort* getInputPort(size_t portIndex);
85
89 DataPort* getOutputPort(size_t portIndex);
90
94 DataPort::EValueType getInputPortDataType(size_t portIndex);
95
96
100 DataPort::EValueType getOutputPortDataType(size_t portIndex);
101
105 void* getInputPortSignal(size_t portIndex);
106
107
111 void* getOutputPortSignal(size_t portIndex);
112
113
117 double* getInputPortRealSignal(size_t portIndex);
118
119
123 double* getOutputPortRealSignal(size_t portIndex);
124
125
129 int getInputPortWidth(size_t portIndex);
130
131
135 int getOutputPortWidth(size_t portIndex);
136
143 static errc_t connect(FuncBlock* src, StringView srcPortName, FuncBlock* dst, StringView dstPortName);
144
151 static errc_t connect(FuncBlock* src, size_t srcPortIndex, FuncBlock* dst, size_t dstPortIndex);
152
153protected:
154 std::vector<DataPort> inputPorts_;
155 std::vector<DataPort> outputPorts_;
156};
157
158AST_NAMESPACE_END
数据端口
定义 DataPort.hpp:33
函数块/功能块
定义 FuncBlock.hpp:41
size_t getNumOutputPorts() const
获取输出端口数量
定义 FuncBlock.hpp:69
size_t getNumInputPorts() const
获取输入端口数量
定义 FuncBlock.hpp:65
const std::vector< DataPort > & getInputPorts() const
获取输入端口
定义 FuncBlock.hpp:54
virtual errc_t run(const SimTime &simTime)=0
计算函数块
const std::vector< DataPort > & getOutputPorts() const
获取输出端口
定义 FuncBlock.hpp:59
仿真时间
定义 SimTime.hpp:30