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 :

Probléme avec createfile et affichage d'erreur


Sujet :

C++

  1. #1
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut Probléme avec createfile et affichage d'erreur
    Salut à tous,

    j'ai un petit programme qui communique par liaison série avec des appareils, jusque là j'avais aucun probléme. J'ai donc rajouter un switch USB série pour avoir plus de port disponible les 4 nouveaux port s'appelle COM8, COM9, COM10, COM11
    Je peux me connecter sur tout mes ports de 1 à 9 sans probléme mais impossible sur les port 10 et 11.

    Voila un peut de code pour vous montrer comment je procéde:

    j'ouvre mon port
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    hSerie=CreateFileA((port.c_str()),		//Name of serial port					 GENERIC_READ|GENERIC_WRITE,	//to write and read on the port
    			 0,	//Share mode
    			 NULL,	// no security attributes
    			 OPEN_EXISTING,				
    			 0,	//NULL=synchronous, else asynchronous
    			 NULL);						// hTemplate must be NULL for comm devices
     
    CheckInit=init_serie(); //to initialize serial port
    	if (CheckInit==0)
    	{
    		Carte=2;//impossible connection at port 
    		return(0);
    	}
    J'ai toujours Carte=2 donc on passe au test et là 2e probléme

    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
    int init_serie()
    {
    	DCB dcb;		
    	DWORD N_ERROR;	
    	BOOL Success;
    	char *errorMessage;
     
    	//checking of opening
    	if(hSerie==INVALID_HANDLE_VALUE)
    	{
    		//file not create
    		N_ERROR=GetLastError();			
    				FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,NULL,GetLastError(),
                        0,(LPTSTR)&errorMessage,0,NULL);
    				MessageBoxA(0, errorMessage, "Erreur", MB_ICONERROR | MB_OK);
     
    	}
     
    	Success=GetCommState(hSerie,&dcb);
    	if(!Success)
    	{
    		return(0);		
    	}
     
    	dcb.BaudRate=CBR_19200;		// set the baud rate
    	dcb.ByteSize=8;				// data size, xmit, and rcv
    	dcb.Parity=NOPARITY;		// no parity bit
    	dcb.StopBits=ONESTOPBIT;	// one stop bit	
    	dcb.XonLim=100;
    	dcb.XoffLim=100;
    	dcb.fOutxCtsFlow=FALSE;
    	dcb.fOutxDsrFlow=FALSE;
    	GetCommState(hSerie,&dcb);
    	SetCommState(hSerie,&dcb);
     
    	return (1);
    }
    Comme vous le voyez j'ai mis un MessageBox pour afficher le numéro d'erreur mais le probléme c'est que je récupére "L" donc ça m'avance pas beaucoup.
    Est-ce que quelqu'un a une solution pour afficher ce numéro? ou savez vous pourquoi je peux pas me connecter à tout les ports?

  2. #2
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    j'ai finalement trouvé le probléme pour me conecter au port il faut rajouter "\\\\.\\" devant le nom du port car la fonction CreateFile accepte par defaut que:

    CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/11/2012, 15h50
  2. [AC-2003] Problème avec oDB.Execute"Insert into" erreur 3061
    Par SIGER_971 dans le forum Access
    Réponses: 5
    Dernier message: 08/07/2009, 11h54
  3. Problème avec cmake : signification d'une erreur
    Par G3G3 dans le forum Systèmes de compilation
    Réponses: 0
    Dernier message: 25/10/2007, 11h24
  4. Problème avec createFile()
    Par sanatou dans le forum Windows
    Réponses: 6
    Dernier message: 02/11/2006, 15h19
  5. un problème avec un tableau d'objet, erreur bete ?
    Par Heero_2040 dans le forum C++
    Réponses: 12
    Dernier message: 13/07/2006, 13h20

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