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

Visual C++ Discussion :

différence entre executable et mode debug de visual


Sujet :

Visual C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut différence entre executable et mode debug de visual
    coucou à tous

    J’ai un souci avec un exécutable.

    J’ai commencé à développer une application sur Visual C++ 6 qui communique avec un port série.

    Pour vérifier que m'on application tourne correctement, j'ai utilisé la fonction "TRACE", puis j'ai lancé le mode débug(F5)(sans point d'arrêt);
    Tout s'est très bien déroulé. Il n'y a aucun problème d'écriture et de lecture sur le port.

    Cependant lorsque j'ai voulu utiliser directement l'exécutable, la communication avec le port série ce fait partiellement(ctrl+F5). Je peux envoyer de commander sans problème, mais en réception je ne reçois rein quand je demande à lire le port.

    Quelqu’un connaît-il les raisons de mon problème ou peut m’éclairer ?
    SVP

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    le mode debug n'a rien a voir la dedans..,la gestion des evénements oui.
    comment tu gères ta communication série ?
    tu as placé un evénement sur la réception ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut
    je suis en mode asynchrone
    oui j'ai placé un évenement sur la reception
    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
     
    	dwEvtMask = EV_RXCHAR ;
     
    	if(!SetCommMask( *INFO->m_hCom, dwEvtMask))
    	{
    		TRACE("problème lors de la selection du masque d'évènement %d\n",GetLastError());
    		CloseHandle( os.hEvent );
    		*INFO->m_testencour=false;
    		*INFO->m_lecturecorrect=false;
    		*INFO->m_testcorrect=false;
    		*INFO->m_threadID = 0 ;
    		*INFO->m_watchThread = NULL ;
    		return false;
    	}
     
    	dwEvtMask = 0 ;
     
    	if(!WaitCommEvent( *INFO->m_hCom, &dwEvtMask, NULL ))
    	{
    		TRACE("problème d'atente d'évènement\n%d evt:%d\n", GetLastError(),dwEvtMask);
    		CloseHandle( os.hEvent );
    		*INFO->m_testencour=false;
    		*INFO->m_lecturecorrect=false;
    		*INFO->m_testcorrect=false;
    		*INFO->m_threadID = 0 ;
    		*INFO->m_watchThread = NULL ;
    		return false;
     
    	}
    tu dit que c'est un problème d'évenement, mais la du coup je ne comprend pas pourquoi ça fonctionne en mode débug(meme sans point d'arrêt)

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    la gestion série n'est pas un sujet facile ,
    la mise en application sous windows est aussi délicate.
    dans ton cas le probleme est peut être lié à la gestion de flux .

    tu devrais regarder le post de la faq sur le sujet:
    http://c.developpez.com/faq/vc/?page...WithSerialPort

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut
    pour chaque envois de trame, je recois une trame de reception.

    j'ai vérifier la valeur de ma variable "dwEvtMask" lorsque je lance l'EXE.

    il semblerait quel reste toujour à 0. Sauf lorsque j'affiche une boite de dialogue pour indiquer que mon test est fini.

    En mode debug la variable "dwEvtMask" prend la valeur 1 à chaque envois de trame, se qui comfirme que j'ai bien reçu quel que chose.
    j'ai vérifier le contenu de la trame de réception et elle est correcte.

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Tout ça ok,
    mais ça ne me dis pas comment tu a géré physiquement ta connexion.
    Gestion de flux ? (xon/xoff, rts/cts)
    buffer de réception Windows dimensionné ? (Sinon perte d'informations possible).
    etc..
    ce n'est pas la peine de chercher l'erreur dans le mode debug ou non ,
    la différence entre les deux modes c'est le temps d'execution des traitements.



  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut
    Le problème est que physiquement, je ne gère que la Ligne RX et TX.
    Dès lors, je ne peux pas utiliser les gestions de flux habituel(CTS, RTS…).

    Le matériel se comporte de la manière suivant : des qu’il reçoit une trame, il la revoit au PC pour confirmer qu’il à bien reçu les instructions qu’il lui a été demandé.

    Pour ce qui est de l’initialisation des buffer d’entrer et de sortie, j’utilise la fonction « SetupComm(m_com.m_hCom, 4096, 4096) ».
    Je n’utilise les Tampons FIFO de Windows. J’ai laissé la configuration du port Com par défaut.

    Par contre détail qui a peut être son importance, j’utilise un PC portable qui n’a pas de Sortie série. J’utilise un port USB relier un adaptateur USB/Série. Bien sur j’ai les drivers de ce matériel.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Par défaut
    Ok c'est bon.

    J’ai résolu mon problème.

    Mon problème est que j'avais une condition mal placer et du coup je n'avais même pas encore reçu la réponse de l'émission précédente que j'avais déjà envoyé une autre trame.

    désolé et merci

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

Discussions similaires

  1. Différence entre execute et select
    Par Papy214 dans le forum SQL
    Réponses: 4
    Dernier message: 21/05/2014, 09h35
  2. Différences entre eclipse et eclipse -debug
    Par ManusDei dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 16/06/2011, 22h38
  3. Réponses: 14
    Dernier message: 05/02/2007, 17h04
  4. pb d'execution en mode debug
    Par couturier dans le forum MFC
    Réponses: 3
    Dernier message: 31/01/2006, 16h57
  5. Réponses: 8
    Dernier message: 23/07/2005, 10h24

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