🛰️航天仿真算法库 SpaceAST 0.3.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 A_DISABLE_COPY(FuncBlock);
46
50 virtual errc_t run(const SimTime& simTime) = 0;
51
52
55 const std::vector<DataPort>& getInputPorts() const { return inputPorts_; }
56 std::vector<DataPort>& getInputPorts() { return inputPorts_; }
57
60 const std::vector<DataPort>& getOutputPorts() const { return outputPorts_; }
61 std::vector<DataPort>& getOutputPorts() { return outputPorts_; }
62
63
66 size_t getNumInputPorts() const { return inputPorts_.size(); }
67
70 size_t getNumOutputPorts() const { return outputPorts_.size(); }
71
75 DataPort* getInputPort(StringView portName);
76
80 DataPort* getOutputPort(StringView portName);
81
85 DataPort* getInputPort(size_t portIndex);
86
90 DataPort* getOutputPort(size_t portIndex);
91
95 DataPort::EValueType getInputPortDataType(size_t portIndex);
96
97
101 DataPort::EValueType getOutputPortDataType(size_t portIndex);
102
106 void* getInputPortSignal(size_t portIndex);
107
108
112 void* getOutputPortSignal(size_t portIndex);
113
114
118 double* getInputPortRealSignal(size_t portIndex);
119
120
124 double* getOutputPortRealSignal(size_t portIndex);
125
126
130 int getInputPortWidth(size_t portIndex);
131
132
136 int getOutputPortWidth(size_t portIndex);
137
144 static errc_t connect(FuncBlock* src, StringView srcPortName, FuncBlock* dst, StringView dstPortName);
145
152 static errc_t connect(FuncBlock* src, size_t srcPortIndex, FuncBlock* dst, size_t dstPortIndex);
153
154protected:
155 std::vector<DataPort> inputPorts_{};
156 std::vector<DataPort> outputPorts_{};
157};
158
159AST_NAMESPACE_END
数据端口
定义 DataPort.hpp:33
EValueType
定义 DataPort.hpp:35
函数块/功能块
定义 FuncBlock.hpp:41
size_t getNumOutputPorts() const
获取输出端口数量
定义 FuncBlock.hpp:70
size_t getNumInputPorts() const
获取输入端口数量
定义 FuncBlock.hpp:66
const std::vector< DataPort > & getInputPorts() const
获取输入端口
定义 FuncBlock.hpp:55
virtual errc_t run(const SimTime &simTime)=0
计算函数块
const std::vector< DataPort > & getOutputPorts() const
获取输出端口
定义 FuncBlock.hpp:60
仿真时间
定义 SimTime.hpp:30