La programmation des liaisons série s'opère de façon similaire à celle des fichiers. Vous ouvrez la liaison par CreateFile, puis vous pouvez lire ou écrire sur la ligne par ReadFile ou WriteFile. (ex NumCom = CreateFile("COM1", GENERIC_READ+GENERIC_WRITE, 0, // non
partagé La fonction WaitComEvent permet une action plus fine en étant déclenchée à chaque caractère. Attention toutefois à sélectionner dans votre application les paramètres voulus car ceux sélectionnés dans le panneau de contrôle ne sont pas actifs. D'après la doc, NT mémorise automatiquement les derniers paramètres sélectionnés par une application pour assurer la compatibilité MSDOS. Il vaut mieux lire les paramètres en cours par GetCommState( NumCom,&dcb), positionner les paramètres souhaités (ex dcb.BaudRate = CB56000.dcb.fParity = 0;dcb.ByteSize = 8;dcb.Parity = NOPARITY), et les positionner par SetCommState( NumCom,&dcb) Attention toutefois au compte-rendu, mon P.C. refusant les vitesses au dessus de 115200 bauds. A cette vitesse j'arrive à transmettre et recevoir par rebouclage des trames de 10 octets à la cadence de 1 ms. Cela nécessite de décocher la case FIFO validé du bouton avancé des paramètres du port du panneau de configuration. Cette case dont la documentation indique qu'elle autorise l'usage du tampon matériel. Sinon à cette cadence, seules les trames de 1 octet passent. Je suppose que cette case permet de ne déclencher des interruptions que lorsque le tampon est plein, ce qui doit être moins gourmand en occupation CPU mais retarde les acquisitions.
|
|