HardFOC Flux V1 HAL
Unified HAL API for the HardFOC Flux valve-control platform (ESP32-S3)
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
FluxVersionManifest.h File Reference

HAL-side inventory of every component the Flux HAL pulls in. More...

#include <cstddef>
Include dependency graph for FluxVersionManifest.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  flux_version::Entry
 
struct  flux_version::EntrySpan
 Read-only view over a contiguous run of Entry records. More...
 

Namespaces

namespace  flux_version
 

Functions

EntrySpan flux_version::GetHalManifest () noexcept
 Inventory of every component the HAL itself links against.
 
const char * flux_version::GetHalBuildStamp () noexcept
 Build timestamp captured by the HAL at CMake configure time.
 

Detailed Description

HAL-side inventory of every component the Flux HAL pulls in.

The HAL knows which drivers and utility libraries it links against; higher layers (middleware / application) intentionally do not look across that boundary. This header exposes a stable read-only view that consumers can iterate without learning the HAL's internal submodule layout:

for (const auto& e : flux_version::GetHalManifest()) { printf("%s %s (%s)\n", e.name, e.version, e.git_sha); }

Entries cover:

Version strings come from each component's <x>_version.h (which defines HF_<X>_VERSION_STRING). Components without a version pattern report "n/a". Git short-SHAs come from flux_hal_git_manifest.h, written at HAL configure time against the actual checked-out HEAD of each submodule (so the SHA reflects what landed in the firmware image, not a stale parent pointer).

Add-on consumer pattern

When external board code uses a HAL handler base class (CommManager / GpioManager / AdcManager) plus its own off-board driver, that handler is the right place to publish its driver's row. The HAL never touches it; the consumer concatenates its own entries on top of GetHalManifest() for display.

Author
HardFOC Team
Date
2026
Version
1.0