|
HardFOC Core
API reference
|
HAL-level handler for the PyroScience FDO2-G2 oxygen probe. More...
#include <atomic>#include <cstddef>#include <cstdint>#include <memory>#include "RtosMutex.h"#include "base/BaseUart.h"#include "core/hf-core-drivers/external/hf-fdo2-driver/inc/fdo2.hpp"Go to the source code of this file.
Classes | |
| class | HalUartFdo2Comm |
CRTP adapter that turns a BaseUart& into a transport the templated fdo2::Driver<UartT> can drive. More... | |
| struct | Fdo2HandlerConfig |
| Construction-time configuration for one FDO2-G2 instance. More... | |
| class | Fdo2Handler |
HAL handler wrapping one FDO2-G2 oxygen probe on a BaseUart. More... | |
HAL-level handler for the PyroScience FDO2-G2 oxygen probe.
Bridges the platform-agnostic templated fdo2::Driver<UartT> (from hf-core-drivers/external/hf-fdo2-driver) to a BaseUart& reference. Apps that already own a configured UART can construct a handler with a single BaseUart& and the handler internally:
fdo2::UartInterface<> adapter that translates BaseUart calls into the byte-level read / write / flush primitives the driver needs,fdo2::Driver<HalUartFdo2Comm>,AlicatBasis2Handler).Public API is intentionally narrow:
EnsureInitialized() → power-up settle + #VERS probe.IsPresent() → cached probe result.Identity() → cached VersionInfo.MeasureMoxy() / MeasureMraw() → one PSUP transaction.ReadVersion() / ReadUniqueId() → re-read identity / serial.The handler does not spawn its own thread; the polling cadence and lock-free caching policy live in the app.
Pattern follows the rest of the HAL handler family (AlicatBasis2Handler, Ads7952Handler, Tle92466edHandler, Max22200Handler).