|
Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
|
Utility class for building and analyzing component dependency graphs. More...
#include <TopologyAnalyzer.hpp>
Static Public Member Functions | |
| static DependencyGraph | BuildGraph (const SimulatorConfig &config, const std::vector< signal::SignalRoute > &routes={}) |
| Build dependency graph from configuration. | |
| static TopologyResult | ComputeExecutionOrder (const SimulatorConfig &config, TopologyConfig::CycleHandling cycle_handling=TopologyConfig::CycleHandling::Error) |
| Compute execution order from configuration. | |
| static SchedulerGroupConfig | GenerateSchedulerGroup (const TopologyResult &result, const std::string &group_name="auto", double rate_hz=400.0) |
| Generate scheduler groups from topological order. | |
| static void | ApplyTopologyOrder (SchedulerConfig &config, const TopologyResult &result) |
| Merge topology order into existing scheduler config. | |
Utility class for building and analyzing component dependency graphs.
|
inlinestatic |
Merge topology order into existing scheduler config.
Reorders members within each group based on topological sort. Components not in any group are added to a new "unscheduled" group.
| config | Scheduler config to modify |
| result | Topology result |
|
inlinestaticnodiscard |
Build dependency graph from configuration.
Analyzes routes to determine which components depend on which. A route from A.output to B.input creates edge A -> B.
| config | Simulator configuration with components and routes |
|
inlinestaticnodiscard |
Compute execution order from configuration.
| config | Simulator configuration |
| cycle_handling | How to handle detected cycles |
| ConfigError | if cycles detected and handling is Error |
|
inlinestaticnodiscard |
Generate scheduler groups from topological order.
Creates a single group with all components in dependency order.
| result | Topology result from ComputeExecutionOrder |
| group_name | Name for the generated group |
| rate_hz | Rate for the group |