|
Hermes
Simulation Orchestration Platform for Aerospace
|
Classes | |
| class | SharedMemoryManager |
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.