|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 73 ![]() |
Bonjour,
Je souhaite faire communiquer deux système Linux sur un lien UART. J'utilise pour cela un descripteur et la fonction select(). Voila mon code: Code :
J'ai fait le test en faisant un echo depuis le Linux distant, je sors bien du select(). Par contre en envoyant un buffer autre, le programme reste dans le select(), jusqu’à recevoir un retour à la ligne. Comment faire pour que le select() retourne quelque chose dès réception d'octets? Ou alors faut il que j'utilise d'autres fonctions? Merci de votre aide |
||
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Inscription : février 2009 Messages : 568 ![]() |
Salut,
en fait il se peut que le problème soit ailleurs, c'est plutôt lors de l'envoi que j'ai un doute. Est-ce que tu es sur que lors de l'envoi, le buffer n'attend pas d'être vider par le caractère spécial \n. Parce que je ne vois aucune raison pour laquelle select attendrait |
|
|
10
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 73 ![]() |
En fait, c'est bien sur la réception qu'il y a un problème. Le problème ne vient pas de la fonction, mais du mode de fonctionnement du device tty, qui fonctionne sur le mode "terminal line discipline" qui attends d'avoir une ligne correctement formée avant d'envoyer les données. Une solution serait de faire entrer le terminal en mode non canonique afin que les données soit directement transmises
J'ai trouvé cette info ailleurs. En mettant le tty de réception en mode non canonique, et plus de problème! Mais merci de ton aide. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com