Lire sur CTS

cs_Renko Messages postés 4 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 12 avril 2006 - 5 avril 2006 à 13:58
cs_Renko Messages postés 4 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 12 avril 2006 - 11 avril 2006 à 11:39
Bonjour. Voila je suis sur un projet qui consiste enfin pour ma tâche à un controle d'accès avec carte a puce.

J'utilise une liaison i2c su rle port série pour communiquer avec ma cible arcom. Et oui je suis sous linux :(

Donc mon problème consiste à lire sur l'entrée CTS de la liason série.
J'utilise bien sûr les fonctions ioctl. En fait avec mon code je lit
sur le port et je fais un masque pour lire juste un bit ( celui de CTS)
mais le bit que je lit n'est pas bon (après verifiction sur le
matériel).



voici le code de ma fonction:



//Lire dans SDA (CTS)

int PortSerie::Get_SDA()

{

int SDA_lecture;



ioctl(fd, TIOCMGET, &s);

verif("Get_SDA");

SDA_lecture = s & 0x10;



if (s & TIOCM_CTS)

{

cout << "Le contenu de CTS est " << SDA_lecture << "\n";

return(1);

}

else

{

cout << "Le contenu de CTS est " << SDA_lecture << "\n";

return(0);

}

}



--> le variable s est défini dans mon .h comme étant un unsigned char

Ps : je code en C++ sur éclipse sous linux.



Merci pour l'attention porté au message.

Amicalement...

2 réponses

cs_Renko Messages postés 4 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 12 avril 2006
5 avril 2006 à 14:16
Oups. Alors quand je complie se que j'ai mi il me met que CTS est = a 0.

Alors que quand je remplace 0x10 par TIOCM_CTS pour que le masque soit éffectif sur CTS il me redonne comme valeur -> 32



Pour moi se serais plus logique de remplacer 0x10 par TIOCM_CTS.

Vous en penser quoi?
cs_Renko Messages postés 4 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 12 avril 2006
11 avril 2006 à 11:39
En fait le réponse de celui-ci est normal. Il renvoie la valeur de 32 pour une mise a 1.
Rejoignez-nous