IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ubuntu Discussion :

Gestion port série


Sujet :

Ubuntu

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 75
    Points : 76
    Points
    76
    Par défaut Gestion port série
    Bonjour,
    J'ai un petit problème sous linux avec l'utilisation de la fonction select pour gérer un timeout dans la réception de données via un port série.
    En fait je veux pouvoir détecter le fait qu'il n'y a plus de données qui arrivent si t > timeout = 8s par exemple. Mais au lieu de cela, la lecture
    s'arrête au bout de 8 secondes...^^ il y a donc quelque chose que j'ai pas saisi...


    Voilà le pseudo-code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
     
    int port_com;
    fd_set read_port_timeout;
    struct timeval timeout;
     
    //Ouverture du port
    	if((port_com = open(nom_COM, O_RDONLY)) < 0){
    		//erreur
    	}
     
    // Gestion des paramètres
    	/*Lecture des parametres courants*/
    	tcgetattr(port_com, &termios_p);
    	/*On ignore les BREAK et les caracteres avec erreurs de parite*/
    	termios_p.c_iflag = IGNBRK | IGNPAR;
    	/*Pas de mode de sortie particulier*/
    	termios_p.c_oflag = 0;
     
     
    // Choix de la parité, Baudrate and co (paramètrage final de type 8N1)
    	/*...*/
     
    	/*Caracteres immediatement disponibles*/
    	termios_p.c_cc[VMIN] = 1;
    	termios_p.c_cc[VTIME] = 0;
    	/*Sauvegarde des nouveaux parametres*/
    	tcsetattr(port_com, TCSANOW, &termios_p);
     
     
     
     
    //Mise en place de timeouts
    	FD_ZERO(&read_port_timeout);
    	FD_SET(port_com, &read_port_timeout);
     
    	timeout.tv_sec = 8;
    	timeout.tv_usec = 0;
     
    // Lecture
    while(port_actif){
    	retval = select(port_com + 1, &read_port_timeout, NULL, NULL, &timeout);
    		if(retval != -1){
    			if(read(port_com,&Buff,1) == -1){
    				port_actif = 0;
    			}
    			else{
    				/*Traitement*/
    			}
    		}
    	}
    }
    Voilà, si qqn avait une idée de l'endroit où je m'emmêle les pinceaux...?

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 75
    Points : 76
    Points
    76
    Par défaut
    Oups je me suis planté d'endroit...Qqn pourrait-il le supprimer je l'ai reposté sur le forum C. Merci

Discussions similaires

  1. gestion de plusieurs ports série
    Par kouedic dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 15/02/2008, 08h58
  2. Api pour la gestion du port série et JRE sur un ancêtre
    Par Orian dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 29/01/2007, 18h22
  3. Gestion Port Série
    Par Tocraz dans le forum Qt
    Réponses: 2
    Dernier message: 18/11/2006, 19h15
  4. [CCom] Gestion du port série
    Par Marthym dans le forum MFC
    Réponses: 6
    Dernier message: 23/11/2005, 09h53
  5. Gestion du port série
    Par Aradesh dans le forum MFC
    Réponses: 5
    Dernier message: 18/10/2005, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo