Bonjour,
Je développe une dll de gestion de port série en C++ sous VS2005.
Actuellement je suis bloqué avec le signal RTS.
Je veux mettre RTS au niveau haut juste avant d'envoyer une trame et le mettre au niveau bas juste après l'envoie de la trame (dans un temps minimum).
Ce procédé doit être opérationnel sans avoir de réponse du matériel qui reçoit cette trame, c'est à dire que si j'envoie ma trame sur un cable série même non connecté à un périphérique je veux aussi gérer le RTS. Et pour finir je ne veux pas utiliser le temps théorique en fonction de la vitesse pour considérer l'envoi comme terminé.
Après de nombreux essais en utilisant le buffer de sortie (COMSTAT.cbOutQue) ou bien l'évènement EV_TXEMPTY mon RTS redescends avant la fin de l'envoit de la trame...
Je me suis ensuite rendu compte que ces deux méthodes ne me renseignent que sur l'état du buffer de sortie alors que le buffer hardware est (à priori) innaccessible et continue à envoyer ma trame.
Quelqu'un saurait-il s'il existe un moyen de savoir si le buffer hardware s'est vidé complètement ? (évènements système, interruptions....)
Merci de votre aide !