#pragma once #include #include "esp_err.h" #ifdef __cplusplus extern "C" { #endif typedef enum { CONTROLLER_LIFECYCLE_STATE_STOPPED = 0, CONTROLLER_LIFECYCLE_STATE_STARTING, CONTROLLER_LIFECYCLE_STATE_RUNNING, CONTROLLER_LIFECYCLE_STATE_DEGRADED, CONTROLLER_LIFECYCLE_STATE_STOPPING, } controller_lifecycle_state_t; typedef struct { controller_lifecycle_state_t state; esp_err_t last_error; uint32_t start_attempt; int64_t last_transition_ms; char last_stage[32]; } controller_lifecycle_status_t; esp_err_t controller_lifecycle_start(void); esp_err_t controller_lifecycle_stop(void); void controller_lifecycle_get_status(controller_lifecycle_status_t *out_status); const char *controller_lifecycle_state_str(controller_lifecycle_state_t state); #ifdef __cplusplus } #endif