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 :

[Win32 API] Récupération paramètres port via GetCommState


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 52
    Points : 40
    Points
    40
    Par défaut [Win32 API] Récupération paramètres port via GetCommState
    Bonjour,

    Je travaille sous Embedded Visual C++ 4.0 et j'essaie d'établir une connexion avec le port :COM2 en l'occurence.
    Le CreateFile() se passe bien puisque j'obtiens un Handle de fichier correct. Cependant, je ne comprends pas pourquoi quand je récupère les informations de ce port via la méthode GetCommState(hFile,lpDCB) je récupère des informations erronées au niveau du pointeur lpDCB sur la structure DCB.
    Voici la structure que je récupère en l'occurence.

    Pourquoi le port est mal configuré??C la question que je me pose???

    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
     
     
    DCB Structure 
     
    	DCBlength	2239791232
    	BaudRate	2156234112
    	fBinary	0
    	fParity	1
    	fOutxCtsFlow	0
    	fOutxDsrFlow	1
    	fDtrControl	3
    	fDsrSensitivity	1
    	fTXContinueOnXoff	0
    	fOutX	0
    	fInX	1
    	fErrorChar	0
    	fNull	1
    	fRtsControl	3
    	fAbortOnError	1
    	fDummy2	62708
    	wReserved	31354
    	XonLim	31354
    	XoffLim	31354
    	ByteSize	128 ''
    	Parity	128 ''
    	StopBits	128 ''
    	XonChar	-123 ''
    	XoffChar	-123 ''
    	ErrorChar	-123 ''
    	EofChar	-128 ''
    	EvtChar	-128 ''
    	wReserved1	32896
    Merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 755
    Points : 10 724
    Points
    10 724
    Billets dans le blog
    3
    Par défaut
    Tu as initialisé la struct passée ?
    DCBlength
    Length of the structure, in bytes. The caller must set this member to sizeof(DCB).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 52
    Points : 40
    Points
    40
    Par défaut
    désolé j'aurais du te mettre le code!!!!
    Oui je l'ai effectivment initialisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PortDCB.DCBlength = sizeof (DCB);
    Je ne comprends pas du tout!!!

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 755
    Points : 10 724
    Points
    10 724
    Billets dans le blog
    3
    Par défaut
    Donne le bout de code incriminé, et récupère la valeur de GetLastError.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 52
    Points : 40
    Points
    40
    Par défaut
    Voili Voila

    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
     
     
    	theApp->hPort = CreateFile (lpszPortName, // Pointer to the name of the port
    				  GENERIC_READ | GENERIC_WRITE,
    								// Access (read-write) mode
    				  0,            // Share mode
    				  NULL,         // Pointer to the security attribute
    				  OPEN_EXISTING,// How to open the serial port
    				  0,            // Port attributes
    				  NULL);        // Handle to port with attribute
    								// to copy
     
    	// If it fails to open the port, return FALSE.
    	if ( theApp->hPort == INVALID_HANDLE_VALUE ) 
    	{
    		dwError = GetLastError ();
    		return FALSE;
    	}
     
    	PortDCB.DCBlength = sizeof (DCB);     
     
    	// Get the default port setting information.
    	int returned = GetCommState (theApp->hPort, &PortDCB);
    la valeur returned est égale à 1

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    le probleme sous WinCe ,c'est que les fonctions:
    BuildCommDCB et GetOverlappedResult
    ne sont pas implementés ,du coup pour la gestion du port serie en asynchrone je ne vois pas comment faire (a cause du GetOverlappedResult).
    et l'utilsation en synchrone c'est pas terrible car bloquant.

Discussions similaires

  1. Réponses: 21
    Dernier message: 27/05/2010, 15h15
  2. [API Win32 sans MFC] Lecture port série: thread bloqué
    Par dacid dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 24/05/2006, 14h34
  3. Réponses: 2
    Dernier message: 15/03/2006, 11h13
  4. [win32]API d'analyse du fichier Host ?
    Par Laurent Dardenne dans le forum Développement
    Réponses: 2
    Dernier message: 02/11/2005, 22h20
  5. récupération des données via une liste déroulante
    Par rahan_dave dans le forum Access
    Réponses: 1
    Dernier message: 13/10/2005, 13h27

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