14#include <vulcan/io/Signal.hpp>
41 static_assert(
sizeof(T) == 0,
"TypeTraits not specialized for this type. "
42 "Supported types: double, int32_t, int64_t");
50 static constexpr const char *
name =
"Double";
58 static constexpr const char *
name =
"Int32";
66 static constexpr const char *
name =
"Int64";
116 static constexpr const char *
name =
"SymbolicDouble";
154 double min_value = -std::numeric_limits<double>::infinity();
155 double max_value = std::numeric_limits<double>::infinity();
164 [[nodiscard]]
constexpr size_t size_bytes()
const {
return 8; }
Core type definitions, concepts, and configuration for Icarus.
Definition AggregationTypes.hpp:13
const char * to_string(SignalKind kind)
Convert SignalKind to string.
Definition Signal.hpp:86
vulcan::io::SignalType SignalType
Signal data type (re-exported from Vulcan for consistency).
Definition Signal.hpp:27
vulcan::io::SignalLifecycle SignalLifecycle
Signal lifecycle (re-exported from Vulcan for consistency).
Definition Signal.hpp:30
SignalKind
Classification of signal types in the component interface.
Definition Signal.hpp:76
@ Output
Dynamic output signal (Scalar, Vec3, etc.).
Definition Signal.hpp:77
@ Input
Input port (wired to an output).
Definition Signal.hpp:78
@ Parameter
Scalar-typed parameter (optimizable).
Definition Signal.hpp:79
@ Config
Discrete config (int/bool/enum, not optimizable).
Definition Signal.hpp:80
Descriptor for a signal on the backplane.
Definition Signal.hpp:136
double max_value
Definition Signal.hpp:155
std::string semantic
Optional semantic hint: "boolean", "enum".
Definition Signal.hpp:142
double min_value
Definition Signal.hpp:154
std::string wired_to
For inputs: source signal name.
Definition Signal.hpp:151
constexpr size_t size_bytes() const
Get padded size in bytes (always 8 for wire format alignment, matching Vulcan).
Definition Signal.hpp:164
std::string description
Human-readable description.
Definition Signal.hpp:145
std::string integrated_signal
For derivatives: name of paired value signal.
Definition Signal.hpp:161
SignalKind kind
Signal classification.
Definition Signal.hpp:150
SignalLifecycle lifecycle
Static or Dynamic.
Definition Signal.hpp:140
SignalType type
Data type (Double, Int32, Int64).
Definition Signal.hpp:139
std::string unit
Physical unit: "N", "m/s", "rad".
Definition Signal.hpp:141
std::string owner_component
Component that registered this signal.
Definition Signal.hpp:146
void * data_ptr
Pointer to storage (for pointer-bind pattern).
Definition Signal.hpp:147
std::string name
Full path: "Falcon9.Propulsion.Thrust".
Definition Signal.hpp:138
bool is_optimizable
False for Config kind.
Definition Signal.hpp:156
std::string derivative_signal
For states: name of paired derivative signal.
Definition Signal.hpp:160
bool is_integrable
True for state values that need integration.
Definition Signal.hpp:159
static constexpr SignalType type_id
Definition Signal.hpp:115
static constexpr const char * name
Definition Signal.hpp:116
static constexpr const char * name
Definition Signal.hpp:50
static constexpr SignalType type_id
Definition Signal.hpp:49
static constexpr SignalType type_id
Definition Signal.hpp:57
static constexpr const char * name
Definition Signal.hpp:58
static constexpr const char * name
Definition Signal.hpp:66
static constexpr SignalType type_id
Definition Signal.hpp:65
Primary template for TypeTraits (generates compile error if not specialized).
Definition Signal.hpp:40