AC63_BT_SDK/apps/hid/include/app_power_manage.h
2025-02-18 15:40:42 +08:00

43 lines
1.3 KiB
C

#ifndef APP_POWER_MANAGE_H
#define APP_POWER_MANAGE_H
#include "typedef.h"
#include "system/event.h"
#define LOW_POWER_SHUTDOWN 220 //低电直接关机电压-拔出不开机-开盖不开机
#define LOW_POWER_OFF_VAL 220 //低电关机电压
#define LOW_POWER_WARN_VAL 240 //低电提醒电压
#define LOW_POWER_WARN_TIME (60 * 1000) //低电提醒时间
#define DEVICE_EVENT_FROM_POWER (('P' << 24) | ('O' << 16) | ('W' << 8) | '\0')
enum {
POWER_EVENT_POWER_NORMAL,
POWER_EVENT_POWER_WARNING,
POWER_EVENT_POWER_LOW,
POWER_EVENT_POWER_CHANGE,
POWER_EVENT_SYNC_TWS_VBAT_LEVEL,
POWER_EVENT_POWER_CHARGE,
POWER_EVENT_POWER_SOFTOFF
};
// int app_power_event_handler(struct device_event *dev);
int app_power_event_handler(struct device_event *dev, void (*set_soft_poweroff_call)(void));
void check_power_on_voltage(void);
u16 get_vbat_level(void);
u8 get_vbat_percent(void);
u16 get_vbat_value(void);
void vbat_check_init(void);
void vbat_timer_update(u32 msec);
void vbat_timer_delete(void);
void tws_sync_bat_level(void);
u8 get_tws_sibling_bat_level(void);
u8 get_tws_sibling_bat_persent(void);
bool get_vbat_need_shutdown(void);
u8 get_self_battery_level(void);
void app_power_set_tws_sibling_bat_level(u8 vbat, u8 percent);
#endif