Hermes
Simulation Orchestration Platform for Aerospace
Loading...
Searching...
No Matches
hermes.core.config.ExecutionConfig Class Reference
Inheritance diagram for hermes.core.config.ExecutionConfig:
Collaboration diagram for hermes.core.config.ExecutionConfig:

Public Member Functions

float get_major_frame_rate_hz (self)
int get_dt_ns (self)
int|None get_end_time_ns (self)

Static Public Attributes

ExecutionMode mode = ExecutionMode.AFAP
float rate_hz = 100.0
float end_time = None
list schedule = Field(default_factory=list)

Protected Member Functions

float _validate_rate_hz (cls, float v)
ExecutionConfig _validate_multi_rate (self)

Detailed Description

Execution and scheduling settings.

Time values are stored as floats for configuration convenience, but
converted to integer nanoseconds at runtime for determinism.

Any positive rate_hz is allowed. Rates that don't divide evenly into
1 billion nanoseconds (e.g., 600 Hz) will have their timestep rounded,
introducing bounded error that does not accumulate over time.

Member Function Documentation

◆ _validate_multi_rate()

ExecutionConfig hermes.core.config.ExecutionConfig._validate_multi_rate ( self)
protected
Validate that module rates are integer multiples of major frame rate.

◆ _validate_rate_hz()

float hermes.core.config.ExecutionConfig._validate_rate_hz ( cls,
float v )
protected
Validate that rate_hz is positive.

◆ get_dt_ns()

int hermes.core.config.ExecutionConfig.get_dt_ns ( self)
Get major frame timestep in nanoseconds.

Returns:
    Timestep as integer nanoseconds for deterministic simulation.
    Rounded to nearest nanosecond for rates that don't divide evenly.

◆ get_end_time_ns()

int | None hermes.core.config.ExecutionConfig.get_end_time_ns ( self)
Get end time in nanoseconds.

Returns:
    End time as integer nanoseconds, or None if no end time set.

◆ get_major_frame_rate_hz()

float hermes.core.config.ExecutionConfig.get_major_frame_rate_hz ( self)
Get major frame rate (slowest module rate).

Returns the minimum rate across all schedule entries. If no schedule
or no entries have explicit rates, returns execution rate_hz.

Member Data Documentation

◆ end_time

float hermes.core.config.ExecutionConfig.end_time = None
static

◆ mode

ExecutionMode hermes.core.config.ExecutionConfig.mode = ExecutionMode.AFAP
static

◆ rate_hz

float hermes.core.config.ExecutionConfig.rate_hz = 100.0
static

◆ schedule

list hermes.core.config.ExecutionConfig.schedule = Field(default_factory=list)
static

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