fix(battery): detect TP4056 charging and full states on new board
This commit is contained in:
@@ -52,6 +52,8 @@ typedef enum {
|
||||
DOMAIN_BATTERY_CHARGE_UNKNOWN = 0,
|
||||
DOMAIN_BATTERY_CHARGE_NOT_CHARGING,
|
||||
DOMAIN_BATTERY_CHARGE_CHARGING,
|
||||
DOMAIN_BATTERY_CHARGE_FULL,
|
||||
DOMAIN_BATTERY_CHARGE_FAULT,
|
||||
} domain_battery_charge_state_t;
|
||||
|
||||
typedef enum {
|
||||
@@ -67,6 +69,9 @@ typedef struct {
|
||||
int latest_sample_mv;
|
||||
uint8_t percentage;
|
||||
domain_battery_charge_state_t charge_state;
|
||||
bool charge_inputs_valid;
|
||||
bool charge_signal_active;
|
||||
bool full_signal_active;
|
||||
domain_battery_level_state_t level_state;
|
||||
bool valid;
|
||||
bool latest_sample_valid;
|
||||
@@ -83,6 +88,11 @@ esp_err_t domain_battery_init(void);
|
||||
/** 获取并处理一次电池采样,不执行产品策略。 / Process one battery sample without product policy. */
|
||||
esp_err_t domain_battery_sample(void);
|
||||
|
||||
/** 每100ms调用;两路输入连续采样稳定1秒后更新充电状态,间隔>250ms重新确认。
|
||||
* 不访问ADC;两把锁各最多等待100ms,失败不会后台继续。并发调用安全。
|
||||
*/
|
||||
esp_err_t domain_battery_poll_charge(void);
|
||||
|
||||
/** 复制最新电池 SSOT 快照。 / Copy the latest battery SSOT snapshot into `out_status`. */
|
||||
esp_err_t domain_battery_get_status(domain_battery_status_t *out_status);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user