|
Hermes
Simulation Orchestration Platform for Aerospace
|
Public Member Functions | |
| None | __init__ (self, str name, ModuleConfig config, str shm_name, str barrier_name) |
| str | name (self) |
| ModuleState | state (self) |
| int|None | pid (self) |
| bool | is_alive (self) |
| None | load (self) |
| None | stage (self) |
| None | mark_running (self) |
| None | terminate (self, float timeout=5.0) |
| None | kill (self) |
| ModuleInfo | get_info (self) |
Protected Member Functions | |
| None | _start_executable (self) |
| None | _start_script (self) |
Protected Attributes | |
| str | _name = name |
| _config = config | |
| _shm_name = shm_name | |
| _barrier_name = barrier_name | |
| subprocess.Popen[bytes]|None | _process = None |
| _state = ModuleState.INIT | |
Manages a single module subprocess. Handles the lifecycle of a module process including spawning, communication via named pipes, and synchronization via semaphores.
| None hermes.core.process.ModuleProcess.__init__ | ( | self, | |
| str | name, | ||
| ModuleConfig | config, | ||
| str | shm_name, | ||
| str | barrier_name ) |
Initialize module process manager.
Args:
name: Module name
config: Module configuration
shm_name: Shared memory segment name
barrier_name: Frame barrier name
|
protected |
Start an external executable module.
|
protected |
Start a Python script module.
| ModuleInfo hermes.core.process.ModuleProcess.get_info | ( | self | ) |
Get current module information.
| bool hermes.core.process.ModuleProcess.is_alive | ( | self | ) |
Whether the process is still running.
| None hermes.core.process.ModuleProcess.kill | ( | self | ) |
Forcefully kill the module process.
| None hermes.core.process.ModuleProcess.load | ( | self | ) |
Start the module process.
Raises:
ModuleError: If process already started
ModuleError: If executable not found
ModuleConfigError: If module type is not supported
| None hermes.core.process.ModuleProcess.mark_running | ( | self | ) |
Transition module to RUNNING state when execution begins.
| str hermes.core.process.ModuleProcess.name | ( | self | ) |
Module name.
| int | None hermes.core.process.ModuleProcess.pid | ( | self | ) |
Process ID if running.
| None hermes.core.process.ModuleProcess.stage | ( | self | ) |
Signal module to stage (prepare for execution). The module should initialize, validate configuration, and apply initial conditions.
| ModuleState hermes.core.process.ModuleProcess.state | ( | self | ) |
Current module state.
| None hermes.core.process.ModuleProcess.terminate | ( | self, | |
| float | timeout = 5.0 ) |
Gracefully terminate the module.
Args:
timeout: Seconds to wait before force killing
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |