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 régulier Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Points : 116
    Points
    116
    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 régulier Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Points : 116
    Points
    116
    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