1 votes

Différence entre les fichiers système charging_enabled et battery_charging_enabled

J'ai un oneplus2 et j'ai besoin de savoir la différence entre charging_enabled vs battery_charging_enabled présents dans /sys/class/power_supply/battery

J'utilise une application appelée Limite de charge de la batterie qui utilise actuellement battery_charging_enabled J'ai créé un fichier pour basculer la charge lorsque la limite prédéfinie est atteinte, mais même si je peux voir que mon téléphone se décharge (l'application arrête la charge du téléphone même si le câble est branché), le courant de décharge est anormalement très faible par rapport à une décharge "normale" (sans l'application). Pourquoi cela se produit-il ? D'où vient l'énergie supplémentaire (si ce n'est de la batterie) pour suivre les activités du téléphone ?

Je me demandais si la condition de charge complète (la capacité du téléphone à fonctionner directement sur une source d'alimentation branchée au lieu de la batterie après avoir été chargé à 100%) était appliquée à 90% (ce que j'ai défini comme la limite de charge maximale dans l'application).

J'ai également vérifié le statut de charging_enabled pendant que l'application était activée et il était de 1, ce qui signifie qu'il n'a pas été affecté par l'application (ce qui est évident puisque le fichier de contrôle utilisé par l'application est différent).

Modifier : Je viens de changer le fichier de contrôle de l'application de . battery_charging_enabled à charging_enabled et maintenant la décharge de la batterie semble normale.

Quelqu'un peut-il expliquer la différence entre ces fichiers de contrôle ?

Editar: Ajouter des extraits de codes de dispositifs à partir du fichier /android/lineage/kernel/oneplus/msm8994/drivers/power/qpnp-smbcharger.c . J'espère que cela vous aidera.

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;

2voto

beeshyams Points 37355

J'avais envoyé un mail au développeur en lui demandant de répondre ici, mais il m'a répondu par mail. Je cite textuellement

Vous avez raison. Les différents fichiers de contrôle se comportent différemment. battery_charging_enabled essaie de maintenir la charge. Il prend la puissance requise du chargeur, et il ne charge/décharge pas la batterie. Ce comportement est idéal, et s'il fonctionne, alors vous devriez l'utiliser.

charging_enabled coupe complètement l'alimentation du câble. Dans ce cas, nous avons besoin du seuil limite pour relancer la charge.

J'ai un OnePlus 3, j'ai les deux fichiers, mais le premier ne fonctionne pas. Je n'ai pas d'autre choix que d'utiliser le second.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X