|
| void | AddRoute (const SignalRoute &route) |
| | Add a route.
|
| void | AddRoute (const std::string &input_path, const std::string &output_path, double gain=1.0) |
| | Add a route with parameters.
|
| void | ApplyRoutes (Backplane< Scalar > &bp) |
| | Apply all routes to the backplane.
|
| std::vector< std::string > | ValidateRoutes (const Backplane< Scalar > &bp) const |
| | Validate routes without applying.
|
| std::vector< std::string > | GetUnwiredInputs (const Backplane< Scalar > &bp) const |
| | Get unwired inputs after routing.
|
| const std::vector< SignalRoute > & | GetRoutes () const |
| | Get all routes for inspection.
|
| void | Clear () |
| | Clear all routes.
|
| std::size_t | Size () const |
| | Get number of routes.
|
template<typename Scalar>
class icarus::signal::SignalRouter< Scalar >
Centralized signal routing configuration.
Handles all signal wiring separately from component code. Components only declare ports; SignalRouter connects them.
Workflow:
- Components declare inputs/outputs during Provision
- Route file specifies all connections
- SignalRouter validates and applies routes after Provision
Example routes YAML:
routes:
- input: Rocket.EOM.total_force
output: Rocket.Forces.total_force
gain: 1.0
- input: Rocket.Gravity.position
output: Rocket.EOM.position