prf::system::SystemTaskRunner class final

System maintenance task runner.

This task owns watchdog feeding, status LED blink policy, periodic runtime diagnostics logging, and deferred reboot execution requested through control API.

Public types

using DeferredInitHook = bool(*)(void*user_ctx)
using PeriodicHook = void(*)(void*user_ctx, uint64_t now_ms)
enum class RadioStage: uint8_t { Boot = 0, InitLoop = 1, InitRetryWait = 2, WorkerRunning = 3, WorkerReturned = 4 }

Constructors, destructors, conversion operators

SystemTaskRunner(TaskHandle_t* self_handle_slot, TaskHandle_t* network_handle_slot, TaskHandle_t* control_handle_slot, TaskHandle_t* coap_handle_slot, TaskHandle_t* radio1_handle_slot, TaskHandle_t* radio2_handle_slot, TaskHandle_t* pppos_handle_slot, std::atomic<uint8_t>& radio1_stage, RuntimeSystemService& system_status_service, IConnectivityStateSource& connectivity_state, TaskHealthMonitor& task_health_monitor)

Public functions

auto prepare() -> bool
One-time GPIO initialization for LED outputs.
void run()
Runs system maintenance loop forever.
void set_deferred_init_hook(DeferredInitHook hook, void* user_ctx)
Sets optional deferred initialization hook executed from system task loop.
void set_periodic_hook(PeriodicHook hook, void* user_ctx)
Sets optional periodic hook executed from the system task loop.
void set_status_led_policy_enabled(bool enabled)
Enables or disables the status LED blink policy controlled by connectivity state.