IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

un timer dans un timer


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut un timer dans un timer
    Salut à tous,

    Mon problème est que je cherche à integrer un timer dans un timer...
    je m'explique : j'ai une fonction (ici un affichage) qui se déclenche toutes les 20 sec et en même temps une autre (ici un affichage aussi) qui se déclenche toutes les 5min...
    je n'arrive pas à faire en sorte que la boucle des 20 secondes s'arrête quand les 5min sont écoulé et recommence après (pour s'arrêter encore après 5min) et ceci dans une boucle infinie...

    Voici le bout de code en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    int fonction
    {
        time_t heure_depart;
        heure_depart = time(NULL);
        time_t actuel;
        actuel = time (NULL);
     
        time_t actuel_interne,heure_depart_interne; 
        actuel_interne = time (NULL);
        heure_depart_interne = time(NULL);	
     
        while(1)
    	{
    		while(difftime(actuel,heure_depart)<300)
    		{
     
    			time_t actuel_interne,heure_depart_interne;
    			actuel_interne = time (NULL);
    			heure_depart_interne = time(NULL);			
    			while(difftime( actuel_interne, heure_depart_interne)<20)
    			{
    				cout<<"affichage toutes les 20 secondes"<<endl;
                                                       actuel_interne = time(NULL);		
    			}
     
    	  cout<<"affichage toutes les 5 minutes"<<endl;
                    Beep(1000,300);
     
    	   heure_depart_interne = time(NULL);
    	   actuel_interne = time(NULL);
            }
     
           Envoi_System_Code_Sync();
           Beep(300,1000); 
           heure_depart = time(NULL); 
         actuel = time(NULL);
     
          }
    }
    quelqu'un saurait-il comment faire???

    Merci...

  2. #2
    Membre confirmé
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    53
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 53
    Par défaut
    5min ça fait 15 fois 20sec
    donc tu fais 15 boucles de 20sec, ensuite t recomences
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    int nb_loop=0;
     
        while(1)
    	{	
    			time_t actuel_interne,heure_depart_interne;
    			actuel_interne = time (NULL);
    			heure_depart_interne = time(NULL);			
    			while(difftime( actuel_interne, heure_depart_interne)<20)
    			{
    				cout<<"affichage toutes les 20 secondes"<<endl;
                                                       actuel_interne = time(NULL);		
    			}
                            nb_loop++;
     
    	  if(nb_loop==15) 
                           {
                                    cout<<"affichage toutes les 5 minutes"<<endl;
                                    Beep(1000,300);
     
    	                        heure_depart_interne = time(NULL);
    	                        actuel_interne = time(NULL);
                            }
            }
     
           Envoi_System_Code_Sync();
           Beep(300,1000); 
           heure_depart = time(NULL); 
         actuel = time(NULL);
     
          }
    }
    je crois que quelque chose comme ça irait mieux

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut
    Merci bp pour la réponse
    ça aurait du aller justement si les le nb de secondes pour chaque timer était prédéfini!!! malheuresement dans mon cas il est aléatoire

    Mais j'ai trouvé la solution je la poste au cas où ça intéresse qlq :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    void fonction()
    {
        time_t heure_depart;
        heure_depart = time(NULL);
        time_t actuel;
        actuel = time (NULL);
     
    	time_t actuel_interne,heure_depart_interne;
    	actuel_interne = time (NULL);
    	heure_depart_interne = time(NULL);	
     
        while(1)
    	{	
    		while(difftime( actuel, heure_depart)<nb_sec1)
    		{
    		        	while(difftime(actuel_interne,heure_depart_interne)<nb_sec2)
    					{
    						actuel_interne= time (NULL);
     
    					}
                                //traitement
                                 Beep(1000,300);
    	                heure_depart_interne = time(NULL);
    	                actuel_interne = time(NULL);
                                actuel = time(NULL);
    		}
     
          //traitement
            Beep(700,300);
            heure_depart = time(NULL);
    	    actuel= time(NULL);
    	}
    }
    Voilà!!
    Encore merci et très bonne journée!!

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    53
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 53
    Par défaut
    n'oublie pas de marquer reolu si la discussion n'as plus d'interet pour toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création du timer dans une Dll
    Par Hokagge dans le forum MFC
    Réponses: 13
    Dernier message: 14/03/2006, 18h04
  2. Bug dans mon timer
    Par FredKéKé dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 25/01/2006, 15h27
  3. Réponses: 4
    Dernier message: 08/07/2005, 17h37
  4. Utiliser un timer dans une application console
    Par chavers dans le forum Langage
    Réponses: 8
    Dernier message: 25/05/2005, 14h07
  5. Timer dans une feuille excel
    Par bbkenny dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 28/01/2005, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo