|
HardFOC Flux V1 HAL
Unified HAL API for the HardFOC Flux valve-control platform (ESP32-S3)
|
HAL-side inventory of every component the Flux HAL pulls in. More...
#include <cstddef>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. | |
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:
HF_CORE_ENABLE_* feature flags)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).
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.