Bonjour,
Je suis en charge de la reprise d'un soft qui doit être synchro avec un peripherique USB.
Après qu'une connexion ait été initiée, si pour une raison ou une autre le periph USB perd cette connexion, le soft continu à attendre des infos. A ce moment la, il faudrait que je remette en place la connexion avec le peripherique USB mais pour ca il faudrait que j'ai un timeout sur la fonction ReadFileEx que j'utilise.
Apres quelques recherches sur le net j'ai trouvé une méthode pour mettre en place un timeout sur cette fonction mais à priori j'ai beau spécifié un timeout celui ci n'est pas pris en compte.
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 ... COMMTIMEOUTS m_ComTimeouts; GetCommTimeouts( DeviceHandle, &m_ComTimeouts ); m_ComTimeouts.ReadIntervalTimeout = 1000; m_ComTimeouts.ReadTotalTimeoutMultiplier = 1000; m_ComTimeouts.ReadTotalTimeoutConstant = 1000; m_ComTimeouts.WriteTotalTimeoutMultiplier = 1000; m_ComTimeouts.WriteTotalTimeoutConstant = 1000; SetCommTimeouts( DeviceHandle, &m_ComTimeouts ); char reportBuffer[NUM_INPUTS+1] = {0}; result = ReadFileEx(DeviceHandle, reportBuffer, sizeof(reportBuffer), &overLap, NULL);
Partager