Lire les trames d'une e-dam à travers un port série (RS232) sous Linux (debian)
cs_cartapus
Messages postés2Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention13 janvier 2005
-
12 janv. 2005 à 15:14
cs_Nashua
Messages postés48Date d'inscriptionlundi 29 novembre 2004StatutMembreDernière intervention16 mars 2005
-
13 janv. 2005 à 19:10
Je suis en BTS informatique
industriel et mon projet consiste à lire les trames d'une e-dam à travers un port série (RS232) sous Linux (debian) .
En
utilisant le langage C, J'aimerai obtenir un exemple de source pour y
arriver car j'ai du mal et je ne c comment m'y prendre .
Merci d'avance de me répondre
cs_Nashua
Messages postés48Date d'inscriptionlundi 29 novembre 2004StatutMembreDernière intervention16 mars 2005 13 janv. 2005 à 06:40
ouvrir le port avec open(),
Il faut configurer le tty en mode Raw, avec la fonction ci-dessous.'il devient transparent.
Apres cela tu lis le port avec un read().
pour plus de precision fais un man termios ( pas termio!!)
Ci -dessous une fonction qui passe la ligne en mode "raw" . juste pour
ne pas rester bloque en attente apres avoir recu 1 caractere. VTIME et
VMIN sont expliques dans le man de termios. Dans mon code on
attend VMIN = 1 caractere et l'on retourne immediatement. il n'y
a pas de timeout VTIME.
cs_Nashua
Messages postés48Date d'inscriptionlundi 29 novembre 2004StatutMembreDernière intervention16 mars 2005 13 janv. 2005 à 19:10
Fais un man de fileno et tu auras la reponse a l'erreur de la ligne 15.
De meme fais un man de open ( int open(const char
*pathname, int flags); tu vois que le premier argument est un
pointeur sur chaine tu dois donc encadrer /dev/ttyS0 avec le " (doulbe
quote) pour que ce soit correct.
Ceci etant dit seule la fonction setraw est correcte et compilable, le
reste donne un exemple non fonctionnel d'utilisation que j'assimile a
une variante du pseudo code.