Le premier site francophone dédié au développement Pocket PC


 
   

Comment lire les informations concernant l'état des batteries depuis eVB ?

Nos braves Pocket PC sont des machines qui fonctionnent sur batterie. La gestion de l'énergie est donc un sujet très important à prendre parfois en compte dans nos programmes eVB.

Le modèle Pocket PC

Les Pocket PC savent gérer 2 batteries, la batterie principale et la batterie de sauvegarde (celle qui sauve vos données à la dernière minute lorsque vous avez complètement oublié de recharger la batterie principale).

La lecture des informations

Dans un article eVB précédent (Comment lire la charge de la batterie principale avec eVB ?) nous avons utilisé une API qui retourne des informations concernant l'état des batteries de votre Pocket PC. Le problème, est que cette fonction travaille avec des structures, chose que eVB ne sait pas faire. Nous étions alors obligé de ne récupérer qu'une petite partie des informations retrounées.

La DLL VBPowerMan

Nous avons donc créé une DLL pour eVB qui retourne toutes les infos de gestion de l'énergie. Cette DLL ne publie qu'une seule fonction "VBGetPowerStatus" qui est déclarée en eVB de la manière suivante :

Declare Function VBGetPowerStatus Lib "VBPowerMan" (ByRef ACLineStatus As Integer, ByRef BatteryLifePercent As Integer, ByRef BatteryFlag As Integer, ByRef BackupBatteryLifePercent As Integer, ByRef BackupBatteryFlag As Integer) As Boolean

Cette fonction retourne Vrai (True) si la lecture s'est bien passée, et Faux (False) dans le cas contraire. Vous devez créer 5 variables de type Integer qui seront passées en paramètre et qui recueilleront les valeurs suivantes :

ACLineStatus

Retourne l'état du branchement sur le secteur :
0 = Pas branché (offline)
1 = Branché (online)
255 = Etat inconnu pour le moment

BatteryLifePercent

Retourne le % d'énergie restant pour la batterie principale (0 à 100).
Retoune 255 en cas de valeur inconnue ou sans objet (lors de la recharge pas exemple)

BatteryFlag

Retourne un état général de la batterie principale :
1 = Fort (Hight)
2 = Faible (low)
4 = Critique (critical)
8 = En charge (charging)
128 = No system battery (?)
255 = Etat inconnu pour le moment

BackupBatteryLifePercent Retourne le % d'énergie restant pour la batterie de secours (0 à 100)
Retourne 255 en cas de valeur inconnue ou sans objet
BackupBatteryFlag Retourne un état général de la batterie de secours. Les valeurs possibles sont les mêmes que pour BatteryFlag.

Exemple d'appel :

Dim wACLineStatus as integer
Dim wBatteryLifePercent as integer
Dim wBatteryFlag as integer
Dim wBackupBatteryLifePercent as integer
Dim wBackupBatteryFlag as integer

If VBGetPowerStatus(wACLineStatus, wBatteryLifPercent, wBatteryFlag, wBackupBatteryLifePercent, wBackupBatteryFlag) Then
Msgbox "Lecture OK, les valeurs sont dans les 5 variables définies."
Else
Msgbox "Mauvaise lecture les valeurs des variables ne sont pas significatives."
End If


Ecran du programme eVB de Test fourni en téléchargement.

 

Téléchargement

Sources eVC de VBPowerMan

Sources eVB du programme de test de VBPowerMan

vbpowerman.dll pour processeur ARM.

Si vous rencontrez des problèmes avec les sources ou la DLL elle même, n'hésitez pas à nous en faire part sur le forum, nous vous aiderons.

Stéphane Sibué

 

 
       
   
 
   
Copyright 2001-2004 - Tous droits réservés
 
   

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.