🛰️航天仿真算法库 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
38class AST_CORE_API FuncBlock
39{
40public:
41 FuncBlock() = default;
42 virtual ~FuncBlock(){};
43
47 virtual errc_t run(const SimTime& simTime) = 0;
48
49
52 const std::vector<DataPort>& getInputPorts() const { return inputPorts_; }
53 std::vector<DataPort>& getInputPorts() { return inputPorts_; }
54
57 const std::vector<DataPort>& getOutputPorts() const { return outputPorts_; }
58 std::vector<DataPort>& getOutputPorts() { return outputPorts_; }
59
60
63 size_t getNumInputPorts() const { return inputPorts_.size(); }
64
67 size_t getNumOutputPorts() const { return outputPorts_.size(); }
68
72 DataPort* getInputPort(StringView portName);
73
77 DataPort* getOutputPort(StringView portName);
78
82 DataPort* getInputPort(size_t portIndex);
83
87 DataPort* getOutputPort(size_t portIndex);
88
92 DataPort::EValueType getInputPortDataType(size_t portIndex);
93
94
98 DataPort::EValueType getOutputPortDataType(size_t portIndex);
99
103 void* getInputPortSignal(size_t portIndex);
104
105
109 void* getOutputPortSignal(size_t portIndex);
110
111
115 double* getInputPortRealSignal(size_t portIndex);
116
117
121 double* getOutputPortRealSignal(size_t portIndex);
122
123
127 int getInputPortWidth(size_t portIndex);
128
129
133 int getOutputPortWidth(size_t portIndex);
134
141 static errc_t connect(FuncBlock* src, StringView srcPortName, FuncBlock* dst, StringView dstPortName);
142
149 static errc_t connect(FuncBlock* src, size_t srcPortIndex, FuncBlock* dst, size_t dstPortIndex);
150
151protected:
152 std::vector<DataPort> inputPorts_;
153 std::vector<DataPort> outputPorts_;
154};
155
156AST_NAMESPACE_END
数据端口
定义 DataPort.hpp:33
函数块/功能块
定义 FuncBlock.hpp:39
size_t getNumOutputPorts() const
获取输出端口数量
定义 FuncBlock.hpp:67
size_t getNumInputPorts() const
获取输入端口数量
定义 FuncBlock.hpp:63
const std::vector< DataPort > & getInputPorts() const
获取输入端口
定义 FuncBlock.hpp:52
virtual errc_t run(const SimTime &simTime)=0
计算函数块
const std::vector< DataPort > & getOutputPorts() const
获取输出端口
定义 FuncBlock.hpp:57
仿真时间
定义 SimTime.hpp:30