[langage c] Pourcentage batterie et temps restant

Applications, problèmes de configuration réseau
AchilleFraisse
Elfe
Messages : 623
Inscription : dim. 27 avr. 2014, 09:32

[langage c] Pourcentage batterie et temps restant

Message par AchilleFraisse »

Bonjour,

Existe t-il une bibliothèque (structure) donnant le pourcentage et le temps de batterie restant (et si la batterie est en charge ou en décharge) ?

Par exemple dans /usr/include/sys, il y a utsname.h qui a une structure avec plein de variable donnant le nom de la machine, l'os, la version, etc : http://pubs.opengroup.org/onlinepubs/79 ... ame.h.html

Ben je cherche la même chose, mais pour la batterie
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [langage c] Pourcentage batterie et temps restant

Message par benjarobin »

Le programme acpi fournit une telle chsoe
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
AchilleFraisse
Elfe
Messages : 623
Inscription : dim. 27 avr. 2014, 09:32

Re: [langage c] Pourcentage batterie et temps restant

Message par AchilleFraisse »

En shell ok, mais en C ?
Je fais comment pour récupérer le contenu de acpi -b ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [langage c] Pourcentage batterie et temps restant

Message par benjarobin »

Il suffit de regarder le code source...
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
AchilleFraisse
Elfe
Messages : 623
Inscription : dim. 27 avr. 2014, 09:32

Re: [langage c] Pourcentage batterie et temps restant

Message par AchilleFraisse »

??
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [langage c] Pourcentage batterie et temps restant

Message par benjarobin »

Tu regardes le code source de l'application acpi... Et tu verras et comprendras comment on obtient ces informations.

Ou tu peux regarder du côté de libacpi https://www.archlinux.org/packages/comm ... 4/libacpi/
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
AchilleFraisse
Elfe
Messages : 623
Inscription : dim. 27 avr. 2014, 09:32

Re: [langage c] Pourcentage batterie et temps restant

Message par AchilleFraisse »

A oui, beaucoup d'info se trouvent dans /sys/class/power_supply/BAT0
Mais je ne trouve pas le temps restant.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [langage c] Pourcentage batterie et temps restant

Message par benjarobin »

Car il n'existe pas, il est calculé... As tu au moins regardé le code ?
Il existe même une lib (libacpi) pour faire une telle chose, bien que je n'aime pas du tout son design, quelle horreur...
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
AchilleFraisse
Elfe
Messages : 623
Inscription : dim. 27 avr. 2014, 09:32

Re: [langage c] Pourcentage batterie et temps restant

Message par AchilleFraisse »

Et on le calcul comment le temps restant ? J'ai cherché, mais pas trouvé
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [langage c] Pourcentage batterie et temps restant

Message par benjarobin »

Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
AchilleFraisse
Elfe
Messages : 623
Inscription : dim. 27 avr. 2014, 09:32

Re: [langage c] Pourcentage batterie et temps restant

Message par AchilleFraisse »

7.9/(POWER_SUPPLY_ENERGY_NOW / POWER_SUPPLY_VOLTAGE_NOW) ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [langage c] Pourcentage batterie et temps restant

Message par benjarobin »

Hein ? Tu as trouvé cela où ? Mathématiquement cela n'a aucun sens en plus... Sérieusement je t'ai donné le lien vers le code source, tu ne veux quand même pas la ligne...
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
AchilleFraisse
Elfe
Messages : 623
Inscription : dim. 27 avr. 2014, 09:32

Re: [langage c] Pourcentage batterie et temps restant

Message par AchilleFraisse »

benjarobin a écrit :tu ne veux quand même pas la ligne...
Ben... il y en a beaucoup, et je ne trouve pas :o
AchilleFraisse
Elfe
Messages : 623
Inscription : dim. 27 avr. 2014, 09:32

Re: [langage c] Pourcentage batterie et temps restant

Message par AchilleFraisse »

ca :

Code : Tout sélectionner

/* calculate remaining time for battery num */
 static void
 calc_remain_time(const int num){
         battery_t *info = &batteries[num];
 
         if(info->present_rate < 0 || info->charge_state != C_DISCHARGE){
                 info->remaining_time = 0;
                 return;
         }
         info->remaining_time = (int) (((float)info->remaining_cap / (float)info->present_rate) * 60.0);
}
?

C'est quoi remaining_cap et present_rate ?
AchilleFraisse
Elfe
Messages : 623
Inscription : dim. 27 avr. 2014, 09:32

Re: [langage c] Pourcentage batterie et temps restant

Message par AchilleFraisse »

Personne ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [langage c] Pourcentage batterie et temps restant

Message par benjarobin »

Tu as toutes les réponses, prends juste 1h pour comprendre le code si tu en as besoin... Sinon tu as même une librairie, il suffit de l'utiliser...
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
avi3000
Chu Ko Nu
Messages : 405
Inscription : dim. 19 juin 2011, 18:53
Localisation : dans le neuf trois

Re: [langage c] Pourcentage batterie et temps restant

Message par avi3000 »

Salut,

Achille essaye de comprendre la chose à partir de libacpi.c, ce qui est pertinent si sur son ordi acpi gère la batterie dans /proc/acpi.
Ce qui est du plus en plus rare me semble-t-il.

Si le répertoire BATn est dans /sys/class/power_supply, le paquet libacpi est obsolète (en tout cas, inopérant sur mon asus).
il faut se servir du paquet acpi et de ses sources.
Ce paquet acpi trouve les informations dans /proc/acpi ou dans /sys/class/power_supply selon l'installation.
Je suis sur devuan avec sysvinit et kbwm
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [langage c] Pourcentage batterie et temps restant

Message par benjarobin »

En effet, je n'avais pas fait attention, mais comme j'avais donné toutes les informations... Cela prenait 5s pour se rendre compte que le code de libacpi n'était plus valide (en plus d'avoir un design de code assez horrible)
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
avi3000
Chu Ko Nu
Messages : 405
Inscription : dim. 19 juin 2011, 18:53
Localisation : dans le neuf trois

Re: [langage c] Pourcentage batterie et temps restant

Message par avi3000 »

Je me suis servi de tes informations pour m'y retrouver.

avec ce /sys/class/power_supply/BAT0/uevent :

Code : Tout sélectionner

POWER_SUPPLY_NAME=BAT0
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CYCLE_COUNT=503
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=7400000
POWER_SUPPLY_VOLTAGE_NOW=7400000
POWER_SUPPLY_POWER_NOW=12313000
POWER_SUPPLY_ENERGY_FULL_DESIGN=50616000
POWER_SUPPLY_ENERGY_FULL=44163000
POWER_SUPPLY_ENERGY_NOW=7888000
POWER_SUPPLY_CAPACITY=17
POWER_SUPPLY_CAPACITY_LEVEL=Normal
POWER_SUPPLY_MODEL_NAME=UX31-35
POWER_SUPPLY_MANUFACTURER=ASUSTeK
POWER_SUPPLY_SERIAL_NUMBER= 
la formule est :
seconds = 3600 * ENERGY_NOW / POWER_NOW
Je suis sur devuan avec sysvinit et kbwm
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [langage c] Pourcentage batterie et temps restant

Message par benjarobin »

Sauf que lire le fichier uevent en c c'est un peu chiant... Il y a tellement plus simple, voir le code d'acpi
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Répondre