|
Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
|
Group-based execution scheduler. More...
#include <Scheduler.hpp>

Public Member Functions | |
| void | Configure (const SchedulerConfig &config, double sim_rate_hz) |
| Configure scheduler from config. | |
| std::vector< std::string > | GetGroupsForFrame (int frame_count, int32_t current_phase=-1) const |
| Get groups that should execute on this frame. | |
| std::vector< std::string > | GetMembersForGroup (const std::string &group_name) const |
| Get members for a group in execution order. | |
| double | GetGroupDt (const std::string &group_name) const |
| Get dt for a specific group. | |
| int | GetFrameDivisor (const std::string &group_name) const |
| Get frame divisor for a group. | |
| double | GetSimulationRate () const |
| Get simulation rate in Hz. | |
| const std::vector< SchedulerGroupConfig > & | GetGroups () const |
| Get the sorted groups (by priority). | |
| const SchedulerConfig & | GetConfig () const |
| Get the config. | |
| void | LogExecutionOrder (MissionLogger *logger=nullptr) const |
| Log execution order to logger or stdout. | |
Public Attributes | |
| SchedulerConfig | config_ |
| double | sim_rate_hz_ = 400.0 |
Group-based execution scheduler.
Manages component execution order based on:
Each group has a rate_hz. The simulation runs at the fastest rate. Slower groups have divisor > 1 and run less frequently.
|
inline |
Configure scheduler from config.
| config | Scheduler configuration with groups |
| sim_rate_hz | Global simulation rate (fastest group rate) |
|
inlinenodiscard |
Get the config.
|
inlinenodiscard |
Get frame divisor for a group.
| group_name | Name of the group |
|
inlinenodiscard |
Get dt for a specific group.
| group_name | Name of the group |
|
inlinenodiscard |
Get the sorted groups (by priority).
|
inlinenodiscard |
Get groups that should execute on this frame.
| frame_count | Current frame number (0-indexed) |
| current_phase | Current flight phase (-1 to ignore phase filtering) |
|
inlinenodiscard |
Get members for a group in execution order.
| group_name | Name of the group |
|
inlinenodiscard |
Get simulation rate in Hz.
|
inline |
Log execution order to logger or stdout.
| SchedulerConfig icarus::Scheduler::config_ |
| double icarus::Scheduler::sim_rate_hz_ = 400.0 |