[C] SetCommTimeouts

Résolu/Fermé
skarsnick Messages postés 79 Date d'inscription jeudi 15 mars 2007 Statut Membre Dernière intervention 17 décembre 2009 - 26 avril 2007 à 14:45
skarsnick Messages postés 79 Date d'inscription jeudi 15 mars 2007 Statut Membre Dernière intervention 17 décembre 2009 - 27 avril 2007 à 11:10
Bonjour j'ai un soucis avec SetCommTimeouts:

Voici mon code:

void CS8Dlg::OffButton1() 
{
HANDLE hCom; 
TCHAR *pcCommPort = TEXT("COM1"); 
unsigned char value=0x00;
DWORD written;
COMMTIMEOUTS timeouts={0}; 

	OpenFile(pcCommPort,hCom); // l'ouverture se passe bien :)

timeouts.WriteTotalTimeoutMultiplier=550; 
timeouts.WriteTotalTimeoutConstant=550;
 
SetCommTimeouts(hCom,&timeouts); 
if(!SetCommTimeouts(hCom,&timeouts)) 
	{ 
	return; 		//ICI ça ne marche pas
	} 

while(1)
	{
	WriteFile(hCom,&value,1,&written,NULL);
	}

CloseHandle(hCom);


Le soucis est que je sors toujours au //ICI ça ne marche pas mon WriteFile n'a jamais été appellé, j'avoue avoir commenter le return après de if(!SetCommTimeouts(hCom,&timeouts)) mais mon WriteFile, bien qu'appellé, n'a pas l'air de marcher non plus...
Une idée?

3 réponses

mamiemando Messages postés 33433 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 décembre 2024 7 809
26 avril 2007 à 14:54
Tu aurais pu titrer ton messages [c++] plutôt que [c] (enfin bref...)
Avec juste un morceau de code sans rien autour on ne peut pas trop t'aider.
D'où sortent ces fonctions tu utilises une lib ou c'est du code à toi ?
Peux tu en gros nous fournir une sorte de code minimal mettant en évidence le bug ?

Bonne chance
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 622
26 avril 2007 à 14:55
SetCommTimeouts(hCom,&timeouts);
if(!SetCommTimeouts(hCom,&timeouts))

SetCommTimeouts est appelée 2 fois, peut être le problème ?

appeller GetLastError pour connaitre le problème:

If the function fails, the return value is zero. To get extended error information, call GetLastError.
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setcommtimeouts?redirectedfrom=MSDN
0
skarsnick Messages postés 79 Date d'inscription jeudi 15 mars 2007 Statut Membre Dernière intervention 17 décembre 2009 59
27 avril 2007 à 11:10
pfff en faite c'est moi qui suis un vrai boulet

OpenFile(pcCommPort,hCom); // l'ouverture se passe bien :)
marche bien certe mais après mon hCom était pas reconnu, j'a fait n'importe quoi :p
Bref merci pour vos réponses :)
0