Aller au contenu

Sleepytux : Gestion de profil automatiques. :) (OpenSource) V3 OUT!


Recommended Posts

Je venais juste de me rappeler de ton problème avec 00H, je vais quand même tester ça pour comprendre dès que j'ai un peu de temps parce qu'il n'y a aucune raison que cela ne marche pas pour 00h et que ça marche pour les autres heures.

Si jamais je n'arrive pas à reproduire la chose il va falloir que tu arrives à récupérer des logs pour je puisse comprendre ce qui se passe.

Modifié par Burn2
Lien vers le commentaire
Partager sur d’autres sites

Merci, je vais essayer ça ;)

(Etrange ce pb dans le plage 00h -> 2h !!)

En fait pas si étrange que ça, il faut que je trouve une autre méthode pour stocker l'heure dans la bd, c'est à cause de ma manière de faire, c'est assez compliquer à expliquer. :/

J'avoue que java m'énerve quand même au plus haut point de ne pas avoir d'objet simple à utiliser quand on veut juste stocker une heure en bd et pas une date complète. :/

Pour tout vous expliquer, 0h00 = -3600000ms :/

Vu que mon objet initialisé était à 0, tout ce qui était inférieur à 1H01 ne passait pas. (requête qui cherche tout ce qui est > à 0 donc forcément...)

Pourquoi ça c'est là ou c'est assez flou, la date initiale se base sur le 1er janvier 1970 à 00H donc je ne comprends pas pourquoi je tombe sur un chiffre négatif quand je stocke 00h à partir de cette date. :/

Modifié par Burn2
Lien vers le commentaire
Partager sur d’autres sites

Oui je stocke en ms, mais si tu veux, je suis obligé d'utiliser un objet "Time" de java.

ET pour une raison inconnue de moi 0h= - 3 600 000 ms par rapport à la date de référence. :/ Je ne sais pas du tout mais alors pas du tout pourquoi. :/

Donc j'ai grugé en initialisant mon objet time par défaut à -9999 999 ce qui fait que tout marche bien, mais je vais essayer de chercher à comprendre pourquoi 00h = -3 600 000 selon les objets de base de java. :mad:

EDIT: je crois que j'entrevoie une idée de réponse! A tous les coups c'est à cause du fuseau horaire, le 0 par défaut correspond à 1h pour nous donc je parie que le problème provient du fuseau horaire le 0 absolue doit être sur un autre fuseau horaire, mais ça n'empêche que c'est vraiment du grand n'importe quoi, j'ai juste besoin d'un objet pour manipuler des heures et que je puisse stocker en ms et ça n' a pas l'air d'exister en java!

Modifié par Burn2
Lien vers le commentaire
Partager sur d’autres sites

Tu le stocks en varchar et terminé :D

Apparement le Time de Java est de type Long, soit 32b, tu dépasses peut être la limite ? (pas envie de me lancer dans des calculs ce soir...)

Edit: http://geeketfier.free.fr/index.php/bien-utiliser-la-date-et-lheure-en-java/ << ça parle de fuseau là :)

Modifié par spamoi
Lien vers le commentaire
Partager sur d’autres sites

Ben pas possible, ce qui pose problème c'est uniquement 0h et 01h. Pour lui par rapport à la date de référence c'est négatif. (je ne sais plus si le 0 était 2h ou 1h du mat je ne me rappelle plus mes tests).

je suis sûr que c'est à cause du fuseau horaire par rapport à la date de référence. C'est quand même bien chiant cette histoire...

Je vais voir pour le fixer dans l'objet au même fuseau horaire que la date de référence, ça règlera le problème proprement.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

Utilisateur de SleepyTux depuis 1 semaine, et le logiciel correspond à mes attentes.

Je rencontre tout de même un problème.

Mon profil est configuré pour passer en mode Avion, et couper le son à 22h30 du lundi au vendredi (merci au copier-coller ;) ),

puis de réactiver à 4h30 du matin le lendemain lle son et de sortir du mode avion, et c'est la que j'ai un problème.

A 4H30 rien ne se passe, et je suis obligé de lancer sleepytux, et valider le profil pour que tous se réactive comme demandé.

Mon téléphone est un HTC Desire avec une ROM officielle 2.2.

J'ai essayé avec et sans TaskKiller, le problème est toujours présent. Si je peux aider à comprendre le problème, n'hésite pas.

Merci pour ton retour

Lien vers le commentaire
Partager sur d’autres sites

Bonjour, merci de ton utilisation et de ton retour, alors première chose, est tu de tahiti comme ton pseudo le laisse penser?

Si oui peux tu tester la RC5 voir si cela corrige ton problème? Dans le cas ou ça serait à la négative il me faudra des logs.

Si tu es à Tahiti comme le laisse à penser ton pseudo, je suppose fortement que notre histoire dont j'ai parlé plus haut soit en cause... Je parie que l'objet Time est initialisé au fuseau horaire du système.

Il faut vraiment que je trouve comment régler cette histoire là...

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ton retour.

En effet, mon pseudo suggère très fortement mon pays de résidence ;) (et donc je suis en GMT -10 si cela peut t'aider)

Je viens juste d'installer la RC5, et je te tiendrais informé demain matin pour moi.

Pour les logs, j'ai LOG COLLECTOR, mais à quelle email je devrais te faire parvenir le log si cela ne marche pas avec la RC5?

Merci, et je te tiens au courant.

Lien vers le commentaire
Partager sur d’autres sites

Ben pas possible, ce qui pose problème c'est uniquement 0h et 01h. Pour lui par rapport à la date de référence c'est négatif. (je ne sais plus si le 0 était 2h ou 1h du mat je ne me rappelle plus mes tests).

je suis sûr que c'est à cause du fuseau horaire par rapport à la date de référence. C'est quand même bien chiant cette histoire...

Je vais voir pour le fixer dans l'objet au même fuseau horaire que la date de référence, ça règlera le problème proprement.

C'est pas lié à l'heure d'été et l'heure d'hiver. Actuellement, on est en GMT+1.

Je suppose que tu créés ton objet Time avec une date au 1er janvier 1970 et tu rajoutes les heures. Si tu initialisais ton objet au 01/01/2010 par exemple, tu pourrais connaitre l'heure en millisecondes en faisant en retranchant à tes horaires le 01/01/2010:00:00:00.000

Je sais pas si j'ai bien compris ton problème, si tu comprends bien ma réponse et si ma réponse est d'une quelconque utilité mais bon ;)

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ton retour.

En effet, mon pseudo suggère très fortement mon pays de résidence ;) (et donc je suis en GMT -10 si cela peut t'aider)

Je viens juste d'installer la RC5, et je te tiendrais informé demain matin pour moi.

Pour les logs, j'ai LOG COLLECTOR, mais à quelle email je devrais te faire parvenir le log si cela ne marche pas avec la RC5?

Merci, et je te tiens au courant.

Si tu es à tahiti ne te prends pas la tête, je suis sûr à 90% que le problème est le même, il faut vraiment que je trouve une solution, je me penche dessus dès que j'ai du temps pour faire quelque chose de plus propre que ce que j'ai fais en work arround sur la RC5.

Modifié par Burn2
Lien vers le commentaire
Partager sur d’autres sites

On peut télécharger quelque part ton code source ?

Pour la V1 il est disponible dans le répertoire de la V1, pour la V2 il faut attendre jusqu'à la release de la version stable. ;)

(il faut que je nettoie le code de la V2 pour dégager des vielles lignes de codes qui sont commentées mais toujours là et qui gêne la lisibilité du code, et il faut que je commente bien tout mon code pour que ça soit bien clair aussi).

Mais pas de problème il le sera disponible. ;)

Lien vers le commentaire
Partager sur d’autres sites

Si tu es à tahiti ne te prends pas la tête, je suis sûr à 90% que le problème est le même, il faut vraiment que je trouve une solution, je me penche dessus dès que j'ai du temps pour faire quelque chose de plus propre que ce que j'ai fais en work arround sur la RC5.

Ok, je te confirme qu'avec la RC5 cela n'a pas mieux fonctionner.

Si tu as besoin d'infos supplémentaires, n'hésite pas.

Bon courage.

Lien vers le commentaire
Partager sur d’autres sites

Merci à toi de ta patience, et désolé de l'inconvénient. Dès que j'ai du temps de libre je me penche sur le sujet pour résoudre proprement cette histoire de fuseau horaire et si le problème est réglé mais pas chez toi alors il me faudra des logs.

Lien vers le commentaire
Partager sur d’autres sites

Bon j'ai une idée sur comment régler ça convenablement.

Par contre, ce défaut, soulève un vrais problème. Si je règle le problème comme je le vois, tous vos profiles ne marcheront pas si vous changez de fuseau horaire!

Heure d'été/hiver pas de problème je pense (à confirmer) mais si vous changez de pays par exemple et donc de fuseau horaire, on va retomber dans le cas ou tout ce qui est stocké dans la bd ne correspond pas avec votre fuseau horaire!

C'est vraiment soulant cette histoire là! Moi je ne veux pas manipuler des dates, je veux juste stocker des horaires! Je sens qu'un grand travail de fond va devoir se faire et que je vais devoir casser pas mal de chose. ça me soule vraiment le java mais d'une force... :emo_im_foot_in_mouth:

EDIT: bon je pense que je vois comment le faire, il faut que je me créais un objet particulier qui contiendra l'horaire en ms, sauf qu'au lieu de passer par l'objet time (qui me semblait pourtant judicieux...), qui lui dépend du fuseau horaire, se base sur la date de référence de 1970 tout ça, moi je vais juste faire un objet qui contiendra l'horaire en ms point!

Comme ça raf des fuseaux horaires etc! Non mais oh!

Modifié par Burn2
Lien vers le commentaire
Partager sur d’autres sites

Je vais surement dire un bêtise, mais pourquoi ne pas stocker la date en String et faire une comparaison à l'arrache avec l'heure actuelle ?

genre:

SI datesys(hhmm) == $dateBdd ALORS

exeActions()

FIN SI

Le service de sleepytux s'occupe bien de tester l'heure actuelle avec des actions programmées ?

Lien vers le commentaire
Partager sur d’autres sites

tout simplement parce que en char lorsque tu fais une requête du style supérieur à telle horaire seul un int marche (char il faudrait stocker l'horraire en sens inverse). le problème ne provient pas de la bd mais uniquement de ma conversion dans le panneau ou tu choisis l'heure, là j'utilise un objet time et c'est lui qui fou la zone c'est le cas de le dire lol. je règle ça dès samedi si j'ai le temps

Donc en gros j'ai deux solutions: initialiser lors du changement de jour mon objet de la même valeur que le l'objet time à -1, ou changer ces times pour un objet fait maison sans fuseau horaire. Je penche pour la deuxième solution, je vais vérifier que ça ne pose pas de problème pour l'alarme, et si tout est ok alors je bascule sur cette méthode.

Par contre si ce n'est pas ok, ça veut dire que sleepytux ne marchera plus si vous changez de fuseau horaire...

Modifié par Burn2
Lien vers le commentaire
Partager sur d’autres sites

Bon, je ne peux pas utiliser mon objet maison à cause de la planification du réveil, qui elle dépend d'un objet time et du fuseau horaire donc pas le choix, il me faut plutôt trouver comment trouver l'heure 0 de référence lors du changement de jour, sachant que ladite heure 0 dépend du fuseau horaire et c'est ça qui est galère.

Lien vers le commentaire
Partager sur d’autres sites

Je vais voir j'ai une idée, mais c'est vraiment le bordel, le problème est le suivant:

L'objet time prend une valeur en ms, valeur qui est le nombre de ms par rapport à la date du January 1, 1970, 00:00:00 GMT; a negative number is milliseconds before January 1, 1970, 00:00:00 GMT.

La solution que je vois qui est miraculeuse, c'est de faire un petit setYear pour que tous mes horaires soient positives, du coup je peux initialiser mon heure à 0ms ça doit logiquement marcher!

EDIT bon ben pas possible, tout le problème vient du timepicker à cause de ça:


		Time time= new Time(0);
		time.setHours(m_timePicker.getCurrentHour());
		time.setMinutes(m_timePicker.getCurrentMinute());
		m_mtime.setTime(time.getTime());

Je vais tenter une autre méthode pour voir si ça passe!

EDIT2: je craque mais je craque put*** Mais c'est quoi cet objet Time de M$$$$!

J'ai grillé pratiquement toutes mes cartouches je ne vois vraiment pas comment faire, si je fais mon propre objet time je vais être bloqué dans les conversions ms vers heures + minutes etc; c'est vraiment le bordel. :'(

Je sature mais complet!

Modifié par Burn2
Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...