[langage c] Pourcentage batterie et temps restant
-
- Elfe
- Messages : 623
- Inscription : dim. 27 avr. 2014, 09:32
[langage c] Pourcentage batterie et temps restant
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
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
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [langage c] Pourcentage batterie et temps restant
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
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
-
- Elfe
- Messages : 623
- Inscription : dim. 27 avr. 2014, 09:32
Re: [langage c] Pourcentage batterie et temps restant
En shell ok, mais en C ?
Je fais comment pour récupérer le contenu de acpi -b ?
Je fais comment pour récupérer le contenu de acpi -b ?
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [langage c] Pourcentage batterie et temps restant
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
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
-
- Elfe
- Messages : 623
- Inscription : dim. 27 avr. 2014, 09:32
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [langage c] Pourcentage batterie et temps restant
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/
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
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
-
- Elfe
- Messages : 623
- Inscription : dim. 27 avr. 2014, 09:32
Re: [langage c] Pourcentage batterie et temps restant
A oui, beaucoup d'info se trouvent dans /sys/class/power_supply/BAT0
Mais je ne trouve pas le temps restant.
Mais je ne trouve pas le temps restant.
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [langage c] Pourcentage batterie et temps restant
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...
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
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
-
- Elfe
- Messages : 623
- Inscription : dim. 27 avr. 2014, 09:32
Re: [langage c] Pourcentage batterie et temps restant
Et on le calcul comment le temps restant ? J'ai cherché, mais pas trouvé
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [langage c] Pourcentage batterie et temps restant
Dis plutôt que tu n'as pas cherché !!!! Ce n'est pas en 5 minutes que tu vas trouver...
https://www.archlinux.org/packages/comm ... 6_64/acpi/ -> https://sourceforge.net/p/acpiclient/co ... ree/acpi.c
Et https://www.archlinux.org/packages/comm ... 6/libacpi/ -> http://www.ngolde.de/libacpi/doc/html/libacpi_8c.html
https://www.archlinux.org/packages/comm ... 6_64/acpi/ -> https://sourceforge.net/p/acpiclient/co ... ree/acpi.c
Et https://www.archlinux.org/packages/comm ... 6/libacpi/ -> http://www.ngolde.de/libacpi/doc/html/libacpi_8c.html
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
-
- Elfe
- Messages : 623
- Inscription : dim. 27 avr. 2014, 09:32
Re: [langage c] Pourcentage batterie et temps restant
7.9/(POWER_SUPPLY_ENERGY_NOW / POWER_SUPPLY_VOLTAGE_NOW) ?
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [langage c] Pourcentage batterie et temps restant
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
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
-
- Elfe
- Messages : 623
- Inscription : dim. 27 avr. 2014, 09:32
Re: [langage c] Pourcentage batterie et temps restant
Ben... il y en a beaucoup, et je ne trouve pasbenjarobin a écrit :tu ne veux quand même pas la ligne...

-
- Elfe
- Messages : 623
- Inscription : dim. 27 avr. 2014, 09:32
Re: [langage c] Pourcentage batterie et temps restant
ca :
?
C'est quoi remaining_cap et present_rate ?
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 ?
-
- Elfe
- Messages : 623
- Inscription : dim. 27 avr. 2014, 09:32
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [langage c] Pourcentage batterie et temps restant
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
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
-
- 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
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.
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
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [langage c] Pourcentage batterie et temps restant
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
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
-
- 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
Je me suis servi de tes informations pour m'y retrouver.
avec ce /sys/class/power_supply/BAT0/uevent :
la formule est :
seconds = 3600 * ENERGY_NOW / POWER_NOW
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=
seconds = 3600 * ENERGY_NOW / POWER_NOW
Je suis sur devuan avec sysvinit et kbwm
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [langage c] Pourcentage batterie et temps restant
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
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum