72 lines
1.9 KiB
C
72 lines
1.9 KiB
C
/**
|
|
* LED Manager - Status Indicators
|
|
* Provides visual feedback for system status and operations
|
|
*/
|
|
|
|
#ifndef LED_MANAGER_H
|
|
#define LED_MANAGER_H
|
|
|
|
#include <esp_err.h>
|
|
#include <stdbool.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// LED GPIO Pins for ESP32-P4-NANO
|
|
#define LED_STATUS_GPIO 8 // Blue LED
|
|
#define LED_ERROR_GPIO 15 // Red LED
|
|
|
|
// Additional indicator LEDs (optional, map to unused GPIOs if not present)
|
|
#define LED_ETHERNET_GPIO 9 // Ethernet activity LED (optional)
|
|
#define LED_WIFI_GPIO 10 // Wi-Fi activity LED (optional)
|
|
#define LED_SCAN_GPIO 11 // Scan activity LED (optional)
|
|
|
|
// LED basic states for blinking patterns
|
|
typedef enum {
|
|
LED_STATE_OFF = 0,
|
|
LED_STATE_ON,
|
|
LED_STATE_BLINK_SLOW,
|
|
LED_STATE_BLINK_FAST,
|
|
LED_STATE_PULSE
|
|
} led_state_t;
|
|
|
|
// Extended system status indicators (kept for backward compatibility)
|
|
typedef enum {
|
|
LED_STATUS_SYSTEM_READY = 0,
|
|
LED_STATUS_SYSTEM_ERROR,
|
|
LED_STATUS_ETHERNET_CONNECTED,
|
|
LED_STATUS_ETHERNET_DISCONNECTED,
|
|
LED_STATUS_WIFI_AP_ACTIVE,
|
|
LED_STATUS_WIFI_CLIENT_CONNECTED,
|
|
LED_STATUS_SCAN_ACTIVE,
|
|
LED_STATUS_SCAN_COMPLETE,
|
|
LED_STATUS_SD_CARD_ACCESS,
|
|
LED_STATUS_OTA_UPDATE
|
|
} led_status_t;
|
|
|
|
/**
|
|
* Initialize LED manager
|
|
* @return ESP_OK on success
|
|
*/
|
|
esp_err_t led_manager_init(void);
|
|
|
|
/**
|
|
* Set LED status
|
|
* @param status LED status to set
|
|
* @return ESP_OK on success
|
|
*/
|
|
esp_err_t led_manager_set_status(led_status_t status);
|
|
|
|
// Forward-compatibility: keep previous prototypes so existing source builds
|
|
esp_err_t led_manager_set_state(int gpio_num, led_state_t state);
|
|
void led_manager_update(void);
|
|
void led_manager_set_ethernet_activity(bool active);
|
|
void led_manager_set_wifi_activity(bool active);
|
|
void led_manager_set_scan_activity(bool active);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // LED_MANAGER_H
|