1 votos

Diferencia entre archivos de sistema charging_enabled vs battery_charging_enabled

Tengo un oneplus2 y necesito saber la diferencia entre charging_enabled vs battery_charging_enabled archivos presentes en /sys/class/suministro_de_energía/batería

Estoy utilizando una aplicación llamada Límite de carga de la batería que actualmente está utilizando battery_charging_enabled archivo para activar la carga cuando se alcanza el límite preestablecido, pero aunque puedo ver que mi teléfono se está descargando (la aplicación detiene la carga del teléfono aunque el cable esté enchufado), la corriente de descarga es inusualmente muy pequeña en comparación con la descarga "normal" (sin la aplicación). ¿Por qué ocurre esto? ¿De dónde se obtiene la energía extra (si no es de la batería) para mantener el ritmo de las actividades realizadas en el teléfono.

Me preguntaba si la condición de carga completa (la capacidad del teléfono de funcionar directamente con la fuente de alimentación enchufada en lugar de la batería después de que se cargue al 100%) se estaba aplicando al 90% (que he establecido como límite de carga máxima en la aplicación).

También he comprobado el estado de charging_enabled mientras la aplicación estaba activada y era 1, lo que significa que no estaba afectada por la aplicación (lo que es obvio ya que el archivo de control utilizado por la aplicación es diferente).

Editar : Acabo de cambiar el archivo de control de la aplicación de battery_charging_enabled a charging_enabled y ahora el drenaje de la batería parece normal.

¿Puede alguien explicar la diferencia entre estos archivos de control?

Editar: Añadir fragmentos de códigos de dispositivo desde el archivo /android/lineage/kernel/oneplus/msm8994/drivers/power/qpnp-smbcharger.c . Espero que sea de ayuda.

case POWER_SUPPLY_PROP_BATTERY_CHARGING_ENABLED:
                smbchg_battchg_en(chip, val->intval,
                                REASON_BATTCHG_USER, &unused);
                pr_err("chg_en form userspace battery charging enable: %d\n",val->intval);
                break;
case POWER_SUPPLY_PROP_CHARGING_ENABLED:
                smbchg_usb_en(chip, val->intval, REASON_USER);
                smbchg_dc_en(chip, val->intval, REASON_USER);
                chip->chg_enabled = val->intval;
                pr_err("chg_en form userspace charging enable: %d\n",chip->chg_enabled);
                schedule_work(&chip->usb_set_online_work);
                break;
------------------------------------------------------------------------
case POWER_SUPPLY_PROP_BATTERY_CHARGING_ENABLED:
                val->intval = smcghg_is_battchg_en(chip, REASON_BATTCHG_USER);
                break;
case POWER_SUPPLY_PROP_CHARGING_ENABLED:
                val->intval = chip->chg_enabled;

0 votos

@beeshyams No pude encontrar nada en la red, excepto algunas diferencias en el código del dispositivo.

2voto

beeshyams Puntos 82

Le había enviado esto al desarrollador solicitando que respondiera aquí, en cambio él me respondió por correo. Citando textualmente

Tienes razón. Los diferentes archivos de control se comportan de manera diferente. battery_charging_enabled intenta mantener la carga. Toma la energía necesaria del cargador, y no carga/descarga la batería. Este comportamiento es ideal, y si funciona, entonces debería usarlo.

charging_enabled corta completamente la alimentación del cable. En este caso necesitamos el umbral límite para empezar a cargar de nuevo

Tengo un OnePlus 3, tengo los dos archivos, pero el primero no funciona. No me queda más remedio que usar el segundo.

0 votos

El caso es que lo primero funciona (es decir, deja de cargarse) en mi oneplus2 pero la descarga es muy lenta alrededor de 10-50mAh que es 20-40 veces menos de lo normal. Probablemente algún desarrollador de Android pueda ayudar con una respuesta más precisa.

0 votos

Parece lo esperado - está tomando energía del cargador por lo que la tasa de descarga es más lenta en comparación con el segundo caso en el que la batería está tomando la carga completa y descargando más rápido. Relacionado Android.stackexchange.com/q/130000/131553

0 votos

Parece que esta es una respuesta aceptable aunque me encantaría saber la función precisa de battery_charging_enabled . Gracias por su ayuda.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X