Skip to content

Managers

A manager owns one function of the board. You reach each one through the Flux object (flux.valves) or its own GetInstance(); both give the same singleton. All managers share the same shape: EnsureInitialized(), IsInitialized(), GetManagerError() (bring-up, shared catalog), GetLastError() (last failed operation), GetSystemDiagnostics(...) and DumpStatistics(). Managers fail closed: a manager is initialised only when every part it owns came up (Errors and diagnostics).

Member Manager Does Start-up
flux.comms CommChannelsManager Valve SPI bus, ADC SPI bus, CAN, UARTs on demand Required
flux.nvs NvsManager Three NVS namespaces: application data, calibration, configuration Required
flux.gpio GpioManager Every GPIO-category pin of the pin map, by name or enum Required
flux.valves ValveManager 8 solenoid channels (MAX22200) and 6 proportional channels (TLE92466ED) Best effort
flux.adc AdcManager ESP32 ADC channels and the ADS7952 external ADC Best effort
flux.leds LedManager The WS2812 status LED: colours, brightness, status animations Best effort
flux.temp TemperatureManager ESP32 internal sensor, NTC thermistor, MCP9700 Best effort

"Required" and "best effort" refer to what happens when initialisation fails. Which handler each manager owns is on the ownership page.

Each page has the same sections: what the manager is for, its API, an example, its diagnostics, and its pitfalls. The full signatures are in the API reference.