Hermes
Simulation Orchestration Platform for Aerospace
Loading...
Searching...
No Matches
hermes.backplane.shm Namespace Reference

Classes

class  SharedMemoryManager

Detailed Description

Shared memory management for signal data.

This module provides the SharedMemoryManager class for creating and
accessing POSIX shared memory segments used for inter-process signal
communication.

Memory Layout:
    ┌─────────────────────────────────────────────────────────┐
    │ Header (64 bytes)                                        │
    │   - magic: u32 ("HERM")                                 │
    │   - version: u32 (currently 3)                          │
    │   - frame: u64                                          │
    │   - time_ns: u64 (nanoseconds for determinism)          │
    │   - signal_count: u32                                   │
    │   - reserved: [u8; 36]                                  │
    ├─────────────────────────────────────────────────────────┤
    │ Signal Directory (variable)                              │
    │   - [SignalEntry] × signal_count                        │
    ├─────────────────────────────────────────────────────────┤
    │ String Table (variable)                                  │
    │   - null-terminated signal names                        │
    ├─────────────────────────────────────────────────────────┤
    │ Data Region (aligned to 64 bytes)                       │
    │   - Signal values packed contiguously                   │
    └─────────────────────────────────────────────────────────┘

Determinism:
    Time is stored as integer nanoseconds (u64) rather than floating-point
    seconds to ensure reproducibility across runs and platforms.