fix(battery): harden charge-complete inference
This commit is contained in:
@@ -22,9 +22,9 @@
|
||||
#define BATTERY_STOP_POLL_MS 10
|
||||
#define BATTERY_CHARGE_DEBOUNCE_MS 30
|
||||
#define BATTERY_FULL_CONFIRM_RETRY_MS 1000
|
||||
#define BATTERY_FULL_CONFIRM_TIME_MS 5000
|
||||
#define BATTERY_FULL_CONFIRM_TIME_MS \
|
||||
((uint32_t)CONFIG_TQ_BATTERY_FULL_CONFIRM_SEC * 1000U)
|
||||
#define BATTERY_FULL_CONFIRM_SAMPLES 3U
|
||||
#define BATTERY_FULL_MIN_VOLTAGE_MV 4050
|
||||
#define BATTERY_SHUTDOWN_CONFIRM_SAMPLES 3U
|
||||
#define BATTERY_EMERGENCY_CONFIRM_SAMPLES 2U
|
||||
#define BATTERY_SHUTDOWN_RETRY_MS 1000
|
||||
@@ -339,8 +339,9 @@ static void control_plane_battery_full_hint_hook(
|
||||
}
|
||||
|
||||
ESP_LOGI(TAG,
|
||||
"Inferred charge-complete prompt start voltage=%dmV file=%s",
|
||||
"Inferred charge-complete prompt start voltage=%dmV level=%u%% file=%s",
|
||||
status->voltage_mv,
|
||||
(unsigned)status->percentage,
|
||||
BATTERY_FULL_PROMPT_FILE);
|
||||
esp_err_t prompt_err = domain_runtime_behavior_play_prompt_file(
|
||||
BATTERY_FULL_PROMPT_FILE);
|
||||
@@ -453,11 +454,13 @@ static void battery_worker(void *arg)
|
||||
if (full_hint_candidate && status.valid &&
|
||||
!status.measurement_suppressed) {
|
||||
if (status.charge_state != DOMAIN_BATTERY_CHARGE_NOT_CHARGING ||
|
||||
status.voltage_mv < BATTERY_FULL_MIN_VOLTAGE_MV) {
|
||||
status.voltage_mv < CONFIG_TQ_BATTERY_FULL_MIN_VOLTAGE_MV ||
|
||||
status.percentage < CONFIG_TQ_BATTERY_FULL_MIN_PERCENT) {
|
||||
ESP_LOGI(TAG,
|
||||
"Charge-complete inference cancelled charge=%s voltage=%dmV",
|
||||
"Charge-complete inference cancelled charge=%s voltage=%dmV level=%u%%",
|
||||
charge_state_name(status.charge_state),
|
||||
status.voltage_mv);
|
||||
status.voltage_mv,
|
||||
(unsigned)status.percentage);
|
||||
full_hint_candidate = false;
|
||||
full_hint_confirmations = 0U;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user