Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
Loading...
Searching...
No Matches
icarus::SchedulerConfig Struct Reference

Scheduler configuration with rate groups. More...

#include <SimulatorConfig.hpp>

Collaboration diagram for icarus::SchedulerConfig:

Public Member Functions

double MaxRate () const
 Get maximum rate across all groups.
std::vector< std::string > Validate () const
 Validate configuration (local validation, before global rate is known).
std::vector< std::string > ValidateGlobalTiming (double sim_rate_hz) const
 Validate rates against global simulation rate (called after rate derivation).
void ComputeFrameDivisors (double sim_rate_hz)
 Compute frame divisors for all groups given simulation rate.

Static Public Member Functions

static SchedulerConfig Default ()
 Create default config with a single 400Hz group.
static SchedulerConfig FromFile (const std::string &)

Public Attributes

std::vector< SchedulerGroupConfiggroups
TopologyConfig topology
std::unordered_map< std::string, int > group_frame_divisors
 Computed at runtime: frame divisor for each group.

Detailed Description

Scheduler configuration with rate groups.

Every component belongs to exactly one group. Simulation dt is auto-derived from the fastest group across all entities.

Member Function Documentation

◆ ComputeFrameDivisors()

void icarus::SchedulerConfig::ComputeFrameDivisors ( double sim_rate_hz)
inline

Compute frame divisors for all groups given simulation rate.

◆ Default()

SchedulerConfig icarus::SchedulerConfig::Default ( )
inlinestaticnodiscard

Create default config with a single 400Hz group.

◆ FromFile()

SchedulerConfig icarus::SchedulerConfig::FromFile ( const std::string & )
inlinestaticnodiscard

Load from YAML file

Note
Use SimulationLoader::Load() for full config loading

◆ MaxRate()

double icarus::SchedulerConfig::MaxRate ( ) const
inlinenodiscard

Get maximum rate across all groups.

◆ Validate()

std::vector< std::string > icarus::SchedulerConfig::Validate ( ) const
inlinenodiscard

Validate configuration (local validation, before global rate is known).

◆ ValidateGlobalTiming()

std::vector< std::string > icarus::SchedulerConfig::ValidateGlobalTiming ( double sim_rate_hz) const
inlinenodiscard

Validate rates against global simulation rate (called after rate derivation).

Member Data Documentation

◆ group_frame_divisors

std::unordered_map<std::string, int> icarus::SchedulerConfig::group_frame_divisors

Computed at runtime: frame divisor for each group.

◆ groups

std::vector<SchedulerGroupConfig> icarus::SchedulerConfig::groups

◆ topology

TopologyConfig icarus::SchedulerConfig::topology

The documentation for this struct was generated from the following file: