|
Hermes
Simulation Orchestration Platform for Aerospace
|

Public Member Functions | |
| None | __init__ (self, str module_name, Path config_path, str|None prefix=None) |
| None | bind_shm (self, SharedMemoryManager shm) |
| list[SignalDescriptor] | get_signal_descriptors (self) |
| list[str] | input_signals (self) |
| list[str] | output_signals (self) |
| None | stage (self) |
| None | step (self, float dt) |
| None | reset (self) |
| dict[str, Any] | introspect (self) |
Protected Member Functions | |
| None | _parse_schema (self, dict[str, object] schema) |
| list[str] | _get_execution_order (self, list[dict[str, Any]] components) |
Protected Attributes | |
| _name = module_name | |
| _prefix = prefix or module_name | |
| _config_path = Path(config_path) | |
| SharedMemoryManager|None | _shm = None |
| _sim = _icarus.Simulator(str(self._config_path)) | |
| list | _input_signals = [] |
| list | _output_signals = [] |
Hermes module wrapping an Icarus 6DOF simulator. Construction creates and stages the Icarus simulator so that signal names can be discovered before Hermes shm is allocated.
| None hermes.modules.icarus_module.IcarusModule.__init__ | ( | self, | |
| str | module_name, | ||
| Path | config_path, | ||
| str | None | prefix = None ) |
Create and stage the Icarus simulator for signal discovery.
Args:
module_name: Hermes module name (used as signal prefix)
config_path: Path to Icarus YAML config (e.g. rocket_ascent.yaml)
prefix: Signal prefix override; defaults to module_name
|
protected |
Get component execution order from schema component order.
|
protected |
Classify signals from Icarus schema as inputs or outputs. Inputs: component inputs without ``wired_to`` (externally controllable). Outputs: all component outputs.
| None hermes.modules.icarus_module.IcarusModule.bind_shm | ( | self, | |
| SharedMemoryManager | shm ) |
Bind shared memory after it has been created.
Args:
shm: The shared memory manager with signals already allocated.
| list[SignalDescriptor] hermes.modules.icarus_module.IcarusModule.get_signal_descriptors | ( | self | ) |
Return signal descriptors for shm allocation. All Icarus signals are f64. Inputs are writable; outputs are published (read-only from Hermes' perspective).
| list[str] hermes.modules.icarus_module.IcarusModule.input_signals | ( | self | ) |
Unwired input signal names (Icarus-local names).
| dict[str, Any] hermes.modules.icarus_module.IcarusModule.introspect | ( | self | ) |
Return Icarus internal component topology and metadata. Uses the Icarus introspection graph API which provides typed edges: - **route**: explicit SignalRouter connections - **resolve**: implicit dependencies via Backplane::resolve()
| list[str] hermes.modules.icarus_module.IcarusModule.output_signals | ( | self | ) |
Output signal names (Icarus-local names).
| None hermes.modules.icarus_module.IcarusModule.reset | ( | self | ) |
Reset Icarus to initial conditions and re-sync outputs.
| None hermes.modules.icarus_module.IcarusModule.stage | ( | self | ) |
Sync initial Icarus values to Hermes shm. The Icarus simulator is already staged (done in __init__). This just copies initial output values into shared memory.
| None hermes.modules.icarus_module.IcarusModule.step | ( | self, | |
| float | dt ) |
Advance Icarus physics by dt seconds. 1. Read input signals from shm → Icarus 2. Step Icarus 3. Write output signals from Icarus → shm
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |