Reconditionner une batterie....

cs_SooL Messages postés 2 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 29 mars 2006 - 17 oct. 2004 à 16:46
dicky33bx Messages postés 14 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 13 juillet 2012 - 2 avril 2005 à 16:48
:-p SooL :-p

salut a tous,
voila, je voudrai savoir s'il etait possible de créer un programme en C++ qui permet de controler l'etat d'une batterie de PC afin de gerer automatiquement la source de courrant: ce programme devrai choisir entre secteur ou batterie en fonction du pourcentage de la batterie.(ex: utiliser la batterie des que sont etat est supperieur a 5 %, meme si le secteur est branché !!)

cela devrai permettre de reconditionner une batterie.

merci d'avance pour l'aide que vous pourrez m'apporter.

1 réponse

dicky33bx Messages postés 14 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 13 juillet 2012 1
2 avril 2005 à 16:48
Salut Sool !

Voici comment faire pour savoir si le PC est sur batterie ou pas :

1. D'abord déclare la variable "PowerStatus" de type "SYSTEM_POWER_STATUS" comme suit :

SYSTEM_POWER_STATUS PowerStatus;

2. Ensuite, la fonction pour vérifier si sur secteur ou sur baterre et la charge de la

batterie :

GetSystemPowerStatus(&PowerStatus);

3. Puis tu regardes la valeur des différentes variables de PowerStatus :

* PowerStatus.ACLineStatus (indique si batterie sur secteur ou batterie)
=0 : Sur batterie
=1 : Sur secteur
=255 : Statut inconnu

* PowerStatus.BatteryFlag (indique si le niveau de la batterie est critique, bas, en cours

de chargement : c'est une association de valeur. Par exemple, si la batterie est basse et en

cours de chargement, BatteryFlag te renverras 10 [ 2 + 8] : Low et Charging)
=1 : Haut (High)
=2 : Bas (Low)
=4 : Critique (Critical)
=8 : En cours de chargement (Charging)
=128 : Aucun système de batterie (PC de bureau) (No system battery)
=255 : Statut inconnu (Unknown status)

* PowerStatus.BatteryLifePercent (indique le pourcentage de batterie de 0 à 100%)

* PowerStatus.BatteryLifeTime (indique le nombre de secondes restantes sur la batterie.

Perso sur mon PC, ça ne donne rien)

* PowerStatus.BatteryFullLifeTime (indique le nombre de secondes totales de batterie. Perso

sur mon PC, ça ne donne rien non plus)

* PowerStatus.Reserved1 : réservé, doit être égal à 0

En espérant que ceci puisse te dépanner.

------------------------------------------------------------
Pour dernière info, la doc du C++ :

The SYSTEM_POWER_STATUS structure contains information about the power status of the system.

typedef struct _SYSTEM_POWER_STATUS {
BYTE ACLineStatus;
BYTE BatteryFlag;
BYTE BatteryLifePercent;
BYTE Reserved1;
DWORD BatteryLifeTime;
DWORD BatteryFullLifeTime;
} SYSTEM_POWER_STATUS;
typedef struct SYSTEM_POWER_STATUS *LPSYSTEM_POWER_STATUS;

Members
----------
* ACLineStatus : AC power status. This parameter can be one of the following values:
Value Meaning
0 Offline
1 Online
255 Unknown status.
All other values are reserved.

* BatteryFlag : Battery charge status. This parameter can be a combination of the following values:
Value Meaning
1 High
2 Low
4 Critical
8 Charging
128 No system battery
255 Unknown status
All other values are reserved.

* BatteryLifePercent : Percentage of full battery charge remaining. This member can be a value in the range 0 to 100, or 255 if status is unknown. All other values are reserved.

* Reserved1 : Reserved ; must be zero.

* BatteryLifeTime : Number of seconds of battery life remaining, or 0xFFFFFFFF if remaining seconds are unknown.

* BatteryFullLifeTime : Number of seconds of battery life when at full charge, or 0xFFFFFFFF if full lifetime is unknown.

Remarks
----------
Windows 95 is only capable of estimating BatteryFullTime based on calculations on BatteryLifeTime and BatteryLifePercent. Without smart battery subsystems, this value may not be accurate enough to be useful.

Bon courage

@+

Dicky33bx
0
Rejoignez-nous