PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile 2025 → HP IPAQ 6515  mise en veille / economisseur ecran
HP IPAQ 6515 mise en veille / economisseur ecran
Iniciado por s.brackez, 01,dic. 2005 09:43 - 7 respuestas
Publicado el 01,diciembre 2005 - 09:43
Plusieurs probleme avec le périphérique,
mon application doit fonctionner en boucle pour acquerir les données GPS.

Quand l'économiseur d'écran du HP s'active, il est impossible de reprendre la main
sur l'application -> gele de l'appli, seul la barre "démarrer" de windows fonctionne
Comment avez vous fait pour contourner ce probleme... ???

Tjs dans les probleme de veille, lorsque que le hp n'est pas alimenté par secteur et donc alimentation sur batterie, mon appli fonction puis au bout de 10mn,
j'ai l'impression que le HP passe en veille et tue les timerssys ()...
de mon appli, la aussi si vous avez une experience à ce sujet, je l'étudie volontier....

Merci de partager vos experiences sur ce device.
Publicado el 01,diciembre 2005 - 10:22
Voila le code que m'avait transmis Julien (merci au passage) pour résoudre le problème de la mise en veille.
L'astuce est qu'au démarrage de ton appli, la lmse en veille soit "désactivée" (Attention : Mise en veille. Pas rétroéclairage!)
Code de Julien :
1°) Déclarer une variable globale au projet :
gbsLockScreenSaver is boolean

2°) Dans le code d'initialisation du projet, tu lis la valeur de la clef dans la base de registre
gbLockScreenSaver = RegistreLit("HKEY_LOCAL_MACHINE\SOFTWARE\MonLogiciel\Sett
ings","ScreenSaver")
NB : Cette clef a initialisée dans une fenêtre de paramétrage (voir point 4)

3°) Toujours dans l'initialisation du projet , tu déclenches ton timer si gbLockScreenSaver = True. Je l'ai mis au niveau de l'init du projet afin qu'il s'applique à l'ensemble de mes fenêtres :
IF gbLockScreenSaver = True THEN
// Permet d'éviter que le Pocket se mette en shutdown
TimerSys("gProc_CancelAutoShutdown",2500,2)
END
NB: La procédure "gProc_CancelAutoShutdown" est une procédure globale (déjà expliqué précédement)

4°) Faire une fenêtre de paramétrage avec un interupteur "Bloquer la mise en veille" (nommé "INT_SCREENSAVER") :
//*******************************
// A l'ouverture de la fenêtre
//*******************************
INT_SCREENSAVER = gbLockScreenSaver

//**********************************
// A la validation ou fermeture de la fenêtre
//***********************************
IF gbLockScreenSaver <> INT_SCREENSAVER THEN
IF INT_SCREENSAVER = True THEN
TimerSys("gProc_CancelAutoShutdown",2500,2)
ELSE
FinTimerSys(2)
END
RegistreEcrit "HKEY_LOCAL_MACHINE\SOFTWARE\MonLogiciel\Settings","ScreenSave
r",NumToString(INT_SCREENSAVER))
END

Bien sur, le nom de la clef que j'ai utilisée peut être changée ;-)

En suivant cette logique, tout devrait rentrer dans l'ordre...

Cordialement,

Julien

Moi, j'ai utilisé un champ dans un fichier Hyper file plutôt que de manipuler la base de registre. Ca marche très bien et ça simplifie le code.
Pour ce qui est des fichiers de données, j'ai opté pour une base CDB (Access sur Pc). Nettement plus facile à gérer au niveau de la synchro ActiveSync. C'est un choix.
Amitiés
JPM
Publicado el 01,diciembre 2005 - 10:29
JPM merci de ta réponse plus qu'explicite ! et rapide,

je teste !!!

CDL
stéf
Publicado el 01,diciembre 2005 - 12:14
OK,
apres test de cette astuce,
effectivement la mise en veille est suspendu... à l'écran.

mais le GPS du HP se mets en veille lui aussi au bout de 15mn.... ????
(afin de controler l'acquisition des trames mon appli creer un ficher ou sont inscrit les frames NMEA capturé toutes les 2 secondes...-> au bout de 15mn le fichier n'est plus incrémenté...)

autres choses aussi, j'ai rajouter un BIP() dans l'appelle de la procedure :
donc a chaque appelle de cette procedure gProc_CancelAutoShutdown() ,
un bip est émis afin de controler rapidement de maniere auditive que les appelles des timersys sont encore actif dans l'appli.

passé 10mn les bips ne sont plus réguliers (de 25 sec on passe un bip toutes les 2mn...)

bref je sens que ca ne va pas etre simple.....
Publicado el 01,diciembre 2005 - 14:26
Bonjour,

Question : Quand vous dites votre application crée un fichier. C'est quoi comme fichier ? Hyperfile, Texte,...
J'ai remarqué que dans WinCE 4.2 ou Pocket 2003SE, remplir ou modifier régulièrement, comme vous le faites, un fichier de type TEXTE ou INI, charge doucement mais sûrement la mémoire.
Résultante : Un ralentissement progressif du fonctionnement du système allant à la fin au crash (Freeze de l'application, voir freeze de l'écran).
La solution retenue : Ecrire les paramètres lus très régulièrement ainsi que les données dans une base de données type Hyperfile ou CEDB. Cela parrait pas forcément logique, mais bon plus de problème.

NOTA : Pour éviter, quand il y a des paramètres qui se rajoute, de devoir à chaque fois modifier l'analyse, notre fichier "PARAMETRES" contient uniquement deux colonnes : CLES et VALEUR

Exemple :
CLES VALEUR
CHEMIN \StorageCard\...
IMAGE \MaPhoto.jpg
CYCLE_LECTURE 10
COMMANDE_ENCOURS 1234567890
....

Salutations.

ATGD.
Publicado el 01,diciembre 2005 - 16:07
Merci de votre experience ATGD.

J'ai viré le "fichier texte" pour le remplacer par un fichier Hyperfile qui s'incremente toutes les 2 sec.

Même probleme l'application fonctionne pendant une dizaine de minute
puis Freeze....

Je contact le ST...je vous ferais part du retour.

Cordialement
Stef
Publicado el 01,diciembre 2005 - 21:11
Faites-vous un "HForceEcriture" de temps en temps ?
J'ai oublié de le préciser, nous le faisons également régulièrement.

Salutations.

ATGD.
Publicado el 02,diciembre 2005 - 10:27
probleme de gele ; "freeze" de l'application contourné :

j'ai installé l'application sur la carte mémoire externe SD CARD
et plus de blocage de l'application, les timersys fonctionne en continu, les ecritures hyperfiles aussi ;
par contre toujours un probleme de fond sur l'acquisition serie GPS,
j'ouvre un nouveau post.