Bonjour,
Puisque nous sommes sur le forum français, je vous répondrai donc dans cette langue.
La valeur du "timeout" correspond :
- pour les opérations de lecture, au temps d'attente maximum autorisé entre l'appel d'une fonction de lecture et la présence de données à lire dans le buffer d'entrée du port (le buffer d'entrée est alors vide);
- pour les opérations d'écriture, au temps d'attente maximum autorisé entre l'appel d'une fonction d'écriture et l'écriture de données dans le buffer de sortie du port (le buffer de sortie est alors plein).
Au delà de cette limite de temps, une erreur de "timeout" est générée.
Pour autant que je sache, il n'y a pas de valeur minimale au "timeout". La fonction SetComTime() accepte toutes les nombres réels.
Néanmoins, pour déterminer la valeur minimale du "timeout" dans le cadre de votre application, deux choses sont à considérer :
1. La vitesse de communication (bauds rate):
Si vous configurez une communication à 110 bauds, chaque état logique dure 9.1 ms. Dans ces conditions, fixer un timeout de l'ordre de ce temps n'aurait pas beaucoup de sens.
2. Votre système d'exploitation:
Si utilisez un sytème d'exploitation non temps réel, tel que Windows 98/NT/2000/XP, l'OS attribue tour à tour du temps processeur à chaque tâche active. Ceci suffisamment rapidement pour avoir "l'illusion" que toutes les tâches s'exécutent en parallèle de manière indépendante : c'est le principe du multitâche. Dans ces conditions, votre application peut être interrompue à tout moment pendant quelques millisecondes pour permettre aux autres tâches de s'exécuter. Ce temps peut être très variable en fonction du nombre de tâches actives et des évènements qui surviennent sur le système. Vous n'avez donc aucun déterminisme (en tout cas à l'ordre de la milliseconde ou plus) quant au moment où une fonction (de lecture du port série par exemple) sera appelée. Dans ces conditions, une valeur de "timeout" de l'ordre de la milliseconde n'a pas plus de sens.
Il n’y a donc pas de réponse précise à votre question. Tout dépend de votre application et de l’environnement dans lequel elle tourne. Toutefois, les informations que je vous ai communiquées devraient vous guider dans un choix de « timeout » approprié.
Cordialement,
Benjamin CHARLES
Ingénieur d'Application
National Instruments France