Lodestar
An integrated real-time control package in C++
|
|
5 #ifndef LODESTAR_CONVERTERBLOCK_HPP
6 #define LODESTAR_CONVERTERBLOCK_HPP
8 #include "Lodestar/blocks/Block.hpp"
13 template<
typename TInput,
typename TOutput>
17 ::std::tuple<TOutput>,
20 static_assert(::std::is_convertible<TInput, TOutput>::value,
21 "Input and output types must be convertible.");
27 ::std::tuple<TOutput>,
39 this->equation = ::std::bind(
42 ::std::placeholders::_1
46 void triggerFunction(
Base &b)
48 b.template o<0>() = b.template i<0>();
54 template<
typename TInput,
typename TOutput>
71 static const ::std::array<::std::string, kIns>
inTypes;
72 static const ::std::array<::std::string, kOuts>
outTypes;
73 static const ::std::array<::std::string, kPars>
parTypes;
78 template<
typename TInput,
typename TOutput>
80 {demangle(
typeid(TInput).name())};
82 template<
typename TInput,
typename TOutput>
83 const ::std::array<::std::string, BlockTraits<std::ConverterBlock<TInput, TOutput>>::kOuts> BlockTraits<std::ConverterBlock<TInput, TOutput>>::outTypes =
84 {demangle(
typeid(TOutput).name())};
86 template<
typename TInput,
typename TOutput>
87 const ::std::array<::std::string, BlockTraits<std::ConverterBlock<TInput, TOutput>>::kPars> BlockTraits<std::ConverterBlock<TInput, TOutput>>::parTypes =
90 template<
typename TInput,
typename TOutput>
91 const ::std::array<::std::string, 2> BlockTraits<std::ConverterBlock<TInput, TOutput>>::templateTypes =
92 {demangle(
typeid(TInput).name()), demangle(
typeid(TOutput).name())};
97 #endif //LODESTAR_CONVERTERBLOCK_HPP
Definition: ConverterBlock.hpp:14
static constexpr const bool directFeedthrough
Whether or not the block has direct feedthrough.
Definition: BlockTraits.hpp:44
A traits object that exposes information about TBlock.
Definition: BlockTraits.hpp:37
static const ::std::array<::std::string, kIns > inTypes
Input types (as strings).
Definition: BlockTraits.hpp:59
BlockType
Block type information.
Definition: BlockType.hpp:25
Main Lodestar code.
Definition: BilinearTransformation.hpp:12
@ ConverterBlock
Converter block.
static const ::std::array<::std::string, kOuts > outTypes
Output types (as strings).
Definition: BlockTraits.hpp:61
static constexpr const BlockType blockType
Block type.
Definition: BlockTraits.hpp:42
static const ::std::array<::std::string, 1 > templateTypes
Template parameter types (as strings).
Definition: BlockTraits.hpp:66
Generic base template class for all tuple-based Block instances.
Definition: Block.hpp:45
static const constexpr int kIns
Number of input slots.
Definition: BlockTraits.hpp:52
static const ::std::array<::std::string, kPars > parTypes
Parameter types (as strings).
Definition: BlockTraits.hpp:63
static const constexpr int kPars
Number of parameters.
Definition: BlockTraits.hpp:56
static const constexpr int kOuts
Number of output slots.
Definition: BlockTraits.hpp:54