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
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 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); }
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.
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); }
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?
Partager