Files
immich-frame/src/power_manager.h

30 lines
748 B
C
Raw Normal View History

#pragma once
#include <Arduino.h>
#include <esp_sleep.h>
#include "config.h"
class PowerManager {
public:
void begin();
uint8_t getBatteryPercent();
bool isCharging();
void updateBatteryLED();
void flashLED(uint8_t r, uint8_t g, uint8_t b, uint16_t duration_ms = LED_PULSE_DURATION_MS);
void enterDeepSleep(uint32_t sleepMinutes = 0);
void enableLightSleep();
void disableEPDPower();
void enableEPDPower();
static bool wasTimedSleepWake();
static void clearTimedSleepFlag();
private:
uint8_t _lastBatteryPct = 100;
unsigned long _lastLEDPulse = 0;
uint8_t _ledBrightness = DEFAULT_LED_BRIGHTNESS;
void setLED(uint8_t index, uint8_t r, uint8_t g, uint8_t b);
void clearLEDs();
};