J'essaie de programmer une communication série à l'aide de la liaison matérielle dans Linux en utilisant C/C++. Les signaux qui implémentent le handshake sont CTS (Clear to send) et RTS (Request to send). À l'heure actuelle ma fonction de réglage du signal CTS se présente comme suit:Programmation série (établissement de liaison matérielle)
int setCTS(int fd, int value) {
int status;
ioctl(fd, TIOCMGET, &status); // get the current port status
if (value)
status |= TIOCM_CTS; // rise the CTS bit
else
status &= ~TIOCM_CTS; // drop the CTS bit
ioctl(fd, TIOCMSET, $status); // set the modified status
return 0;
}
où fd est le descripteur de fichier pour le port et valeur est la valeur à régler pour le signal. Pour coder cette fonction, je me base sur http://www.easysw.com/~mike/serial/serial.html#5_1.
Le problème est que gcc ne reconnaît aucune des constantes utilisées dans l'exemple. Aucune suggestion?
- Mise à jour -
J'ai trouvé une réponse. En regardant un autre exemple, sys/ioctl.h
déclare les constantes.
Je trouve grep utile pour répondre à ce genre de questions - il suffit de rechercher tous les fichiers dans le chemin d'inclusion. –