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

MFC Discussion :

Probl�me en sortie de OnTimer


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2007
    Messages
    246
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 246
    Par d�faut Probl�me en sortie de OnTimer
    Bonjour � tous,

    J'ai un probl�me en sortie du OnTimer il m'envoie vers ce code

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /* These methods don't need a separate
       wchar version. Hence they need to be compiled only once from
       the original file */
     
    _CRTIMP void _cdecl _CrtDbgBreak(
        void
        )
    {
        DebugBreak();
    }
    La fl�che sur DebugBreak();

    voici mon code du OnTimer et du Settimer

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    IMPLEMENT_DYNCREATE(CGAB_PDAView, CFormView)
     
    BEGIN_MESSAGE_MAP(CGAB_PDAView, CFormView)
    	ON_BN_CLICKED(IDC_BUTTON1, &CGAB_PDAView::OnBnClickedButton1)
    	ON_BN_CLICKED(IDC_BUTTON3, &CGAB_PDAView::OnBnClickedButton3)
    	ON_BN_CLICKED(IDC_BUTTON2, &CGAB_PDAView::OnBnClickedButton2)
    	ON_COMMAND(ID_MENU_PARAM32771, &CGAB_PDAView::OnMenuParam32771)
    	ON_WM_TIMER()
    END_MESSAGE_MAP()
     
                                 ....................
     
    void CGAB_PDAView::OnBnClickedButton1()
        /* Appuie sur le bouton Départ */
    {pause=0;
     surface_traitée=0.0;
    try
       {
         nIDEvent = SetTimer(1, 1000, NULL);
       }
    catch (char* Err)
       {if (strcmp (Err,"Erreur #003")==0)
         {MessageBox(TEXT("Impossible de lire sur le port com"),TEXT("Erreur #003"),MB_ICONSTOP);
         }
       }
    }
     
     
    void CGAB_PDAView::OnTimer(UINT nIDEvent) 
    		/* Action du timer chaque seconde */
    {CString tmp;  
    	 if (nIDEvent == 1)	
    	    {try
    	      {
                 if (pause==0)
    	          {pApp->NMEA183.recupTRAME();
    		       pApp->NMEA183.Calcul_surface(1.00,&surface_traitée);
    		       tmp.Format(__T("%.2f"),surface_traitée);
    		       SetDlgItemText(IDC_STATIC1,tmp);
    		      }
    		     else
    			 {surface_traitée=surface_traitée+0.0;
    		       tmp.Format(__T("%.2f"),surface_traitée);
    		       SetDlgItemText(IDC_STATIC1,tmp);
    	         }
    			}catch (char* Err)
    			{if (strcmp (Err,"Erreur #003")==0)
                   {MessageBox(TEXT("Impossible de lire sur le port com"),TEXT("Erreur #003"),MB_ICONSTOP);
                   }
                }
     
           }
     
    	CView::OnTimer(nIDEvent);
     
    }
     
    void CGAB_PDAView::OnBnClickedButton3()
    	/* Appuie sur le bouton Arret */
    {
     try
       {
    	pApp->NMEA183.Extraire_heure(heure);
        heureFR (heure);
        pApp->NMEA183.fermerGPS();
       }catch (char* Err)
       {if (strcmp (Err,"Erreur #005")==0)
         {MessageBox(TEXT("Impossible de fermer le port com"),TEXT("Erreur #005"),MB_ICONSTOP);
         }
       }
    	this->KillTimer(nIDEvent);
    }
    Je suis � la toute fin de mon projet. C'est le dernier probl�me � r�soudre.

    Merci d'avance

  2. #2
    Membre averti
    Inscrit en
    F�vrier 2007
    Messages
    33
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2007
    Messages : 33
    Par d�faut
    je sais pas ou est ton probleme, mais voici un exemeple de ontimer qui marche chez moi :

    dans le .h
    dans le .c
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    .
    .
    .
    m_nTimerId = SetTimer(1111 /* id */, 1000 /* ms */, NULL);
    }
    void CMainFrame::OnTimer(UINT nIDEvent) 
    {
     /*  code à executé tout les 1000 ms  */
    }

  3. #3
    Membre averti
    Inscrit en
    F�vrier 2007
    Messages
    33
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2007
    Messages : 33
    Par d�faut
    je cannais un probleme li� au ontimer avec les process multithread ou process duo.
    les codes du ontimer ne sont pas fini mais le second process apel � nouveau le ontimer. et certain ressource ne sont pas encore liberer et aussitot reutiliser.
    il faut utiliser des mutex pour regler ce probleme.

  4. #4
    Membre �clair�
    Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2007
    Messages
    246
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 246
    Par d�faut je pr�cise
    J'ai fait un module de test avec un timer. toute les secondes le timer incr�mente un float de 0.1 et l'affiche dans le static, je fais la meme chose dans ce programme sauf que le foat est un calcul de surface, avec le GPS. Le module de test fonctionne parfaitement et sur la m�me machine je mets mon appli GPS mais ca ne marche pas.

  5. #5
    Membre averti
    Inscrit en
    F�vrier 2007
    Messages
    33
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2007
    Messages : 33
    Par d�faut
    regard en mode d�bug ou est arreter le d�bugeur dans la fenetre "Call strack".
    et remont dans une fonction de tes codes, et cela que tu aurai plus de precision sur le bug de ton programme.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me Entr�e-Sortie standards
    Par rajuto dans le forum Entr�e/Sortie
    R�ponses: 10
    Dernier message: 11/06/2007, 15h37
  2. Probl�me de sortie dans un programme.
    Par IDE dans le forum C
    R�ponses: 8
    Dernier message: 20/05/2007, 18h21
  3. [MySQL] Probl�me unicode sortie BD (MySQL 5)
    Par bractar dans le forum PHP & Base de donn�es
    R�ponses: 4
    Dernier message: 19/05/2007, 08h34
  4. Probl�me unicode sortie BD
    Par bractar dans le forum SQL Proc�dural
    R�ponses: 1
    Dernier message: 18/05/2007, 16h20
  5. petit probl�me de sortie de programme
    Par clampin dans le forum C
    R�ponses: 2
    Dernier message: 17/06/2006, 11h51

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