[win32] CommTimeouts et port parallèle (suite)
Bonjour à tous,
je bloque depuis quelque temps sur un problème, et je commence à me demander si je vais réussir à trouver une solution. Je vais donc vous exposer mon problème proprement:
système: windows 2000 pro.
IDE: visualC++ 7.1
J'ouvre le port parallèle vie un CreateFile:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| m_hPortHandle = CreateFile("LPT1", // device name
GENERIC_READ|GENERIC_WRITE, // access mode
0, // share mode
0, // security attributes
OPEN_EXISTING, // creation dispositions
FILE_ATTRIBUTE_NORMAL, // flags and attributes
NULL); // template file
if (m_hPortHandle==INVALID_HANDLE_VALUE)
{
ReportLastError("CreateFile"); //excellente fonction de debuggage récupérée sur codeguru.com
return FALSE;
} |
Le FileCreate() fonctionne et je n'obtiens pas de message d'erreur. Mon m_hPortHandle est valide.
Ensuite, j'essaie d'appliquer les timeouts:
Code:
1 2 3 4 5 6 7 8 9 10 11
| COMMTIMEOUTS cto;
cto.ReadIntervalTimeout = 2000;
cto.ReadTotalTimeoutConstant = 0;
cto.ReadTotalTimeoutMultiplier = 0;
cto.WriteTotalTimeoutConstant = 0;
cto.WriteTotalTimeoutMultiplier = 0;
if (0==SetCommTimeouts(m_hPortHandle, &cto))
{
ReportLastError("SetCommTimeouts");
return FALSE;
} |
Et là, à l'appel de SetCommTimeouts j'obtiens: error 87: paramètre invalide (j'aimerais bien savoir lequel. J'ai essayé de rentrer en pas à pas dans la fonctio SetCommTimeouts <F11>, mais ça ne marche pas).
J'ai essayé différentes ruses pour me passer de ces timeouts, mais rien n'y fait. Si ces timeouts ne sont pas correctements configurés, j'obtiens de gros soucis par la suite sur les ReadFile().
Que se passe-t-il? Oublie-je quelque chose? Mon problème n'a-t-il donc point de solution?