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

C Discussion :

Gestion de liaison série portable


Sujet :

C

  1. #1
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut Gestion de liaison série portable
    Bonsoir,


    Nouvel adepte de Code::Blocks, j'essaie de compiler du code PORTABLE pour gérer une liaison série

    L'exemple sur le lien suivant m'a paru pertinent:

    http://www-phase.c-strasbourg.fr/inf..._series.html#6


    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
     
    #include <stdio.h>
    #include <termios.h>
    #include <sys/fcntl.h>
     
    void main(void)
    {
    	int		fd;
    	char		c;
    	struct termios	termios_p;
     
    	/* Ouverture de la liaison serie */
    	if ( (fd=open("/dev/ttyS1",O_RDWR)) == -1 ) {
    		perror("open");
    		exit(-1);
    	}
     
    	/* Lecture des parametres courants */
    	tcgetattr(fd,&termios_p);
    	/* On ignore les BREAK et les caracteres avec erreurs de parite */
    	termios_p.c_iflag = IGNBRK | IGNPAR;
    Malheureusement, le fichier termios.h n'est pas trouvé.

    Quelqu'un a-t-il une idée ? Si possible autre chose que, "zy va prends du MFC ou du C++Builder". Je souhaite que cela soit portable.

    Je suis sous Windows XP, mais ceci ne doit pas être pris en compte.

    Merci
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Bayard
    Nouvel adepte de Code::Blocks, j'essaie de compiler du code PORTABLE pour gérer une liaison série
    Y'a pas vraiment moyen d'écrire du code 'série' portable, si ce n'est en créant une couche d'abstraction qui cache les détails non portables. Je ne sais pas si ça existe déjà, mais j'ai dû faire ceci dans ma jeunesse :

    Interface
    http://emmanuel-delahaye.developpez....com/inc/comm.h
    http://emmanuel-delahaye.developpez....c/comm_bds.itm
    http://emmanuel-delahaye.developpez....c/comm_bit.itm
    http://emmanuel-delahaye.developpez....c/comm_err.itm
    http://emmanuel-delahaye.developpez....c/comm_par.itm
    http://emmanuel-delahaye.developpez....c/comm_stp.itm

    Implémentations
    http://emmanuel-delahaye.developpez....c/linux/comm.c
    http://emmanuel-delahaye.developpez....c/win32/comm.c

    Test unitaire (ébauche)
    http://emmanuel-delahaye.developpez..../tu/src/main.c

    Ce qui manque est ici (fin de la page)

    http://emmanuel-delahaye.developpez.com/reseaux.htm

    et là

    http://emmanuel-delahaye.developpez.com/clib.htm
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut
    Les deux premiers liens sont "cassés".

    Il semble que ce soient les plus savoureux...
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Bayard
    Les deux premiers liens sont "cassés".

    Il semble que ce soient les plus savoureux...
    Je viens de tout vérifier, ils sont OK. Tu avais bien noté la remarque 'installation des fichiers en cours' ?
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut
    C'est OK

    Merci bien
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  6. #6
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut
    1) Bon, j'ai eu du mal à comprendre ce que signifier ed dans le chemin d'include.

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "ed/inc/sys.h"
    J'ai supposé qu'il s'agit des initiales de son iLLustre auteur. N'empèche sys.h n'est pas connu.

    2)

    Bref (toujours avec code::blocks) de nombreux fichiers ne sont pas trouvés.
    (types.h...)
    Parmi les nombreux fichiers non trouvés: termios.h !!!

    Est-ce que (pour code::blocks) je dois installer quelque chose ?
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Bayard
    1) Bon, j'ai eu du mal à comprendre ce que signifier ed dans le chemin d'include.

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "ed/inc/sys.h"
    J'ai supposé qu'il s'agit des initiales de son iLLustre auteur. N'empèche sys.h n'est pas connu.
    J'ai pourtant indiqué où se trouvaient les sources manquants...

    http://emmanuel-delahaye.developpez.com/clib.htm

    Si tu ne mis pas les articles cités, on ne va pas avancer. Il y a toutes les indications nécessaires pour installer le bousin.

    Je recommande de respecter mon arborescence, sachant que la racine (.../clib) peut être n'importe où (chez moi c'est en C:/ sous Windows et en /usr/moncompte/ sous linux.

    2)

    Bref (toujours avec code::blocks) de nombreux fichiers ne sont pas trouvés.
    (types.h...)
    Parmi les nombreux fichiers non trouvés: termios.h !!!

    Est-ce que (pour code::blocks) je dois installer quelque chose
    Il semble évident que sous Windows, il ne faut pas chercher à compiler le fichier

    http://emmanuel-delahaye.developpez....c/linux/comm.c

    de même que sous Linux, on ne compilera pas

    http://emmanuel-delahaye.developpez....c/win32/comm.c

    Parfois, il suffit de réfléchir un tout petit peu...
    Pas de Wi-Fi à la maison : CPL

  8. #8
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut
    Merci.

    Tout compile.

    C'est la caverne d'Ali Baba !

    J'ai du faire une petite modif dans comm.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //#include "types.h"
    #include "ed/inc/types.h"
    Merci bien.

    Bon, ben il faut que je teste...
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  9. #9
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Bayard
    J'ai du faire une petite modif dans comm.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //#include "types.h"
    #include "ed/inc/types.h"
    C'est possible... Mais si je reprends ce qui est sur mon site, c'est bien :
    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
     
    #ifndef H_ED_COMM_20050111160856
    #define H_ED_COMM_20050111160856
    /* ---------------------------------------------------------------------
       (c) ED 2006
       Project      : Portable serial asynchrone COMM for Windows and GNU/Linux
       Function     : Interface
       Module       : COMM
       File         : comm.c
       Created      : 11-01-2005
       Modified     : 11-01-2005
       --------------------------------------------------------------------- */
     
    /* ---------------------------------------------------------------------
       Log
     
       11-01-2005 Created
     
       --------------------------------------------------------------------- */
    #ifdef __cplusplus
    extern "C"
    {
    #endif
     
    #include <stdio.h>
    #include "ed/inc/types.h"
    C'est plutôt toi qui avait dû supprimer une partie du chemin par inadvertance, on va dire....
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Windev : Gestion de liaison série par événement série
    Par jurassic pork dans le forum Contribuez
    Réponses: 2
    Dernier message: 02/10/2023, 11h11
  2. gestion de la liaison série avec VBA
    Par riquet90 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 11/08/2008, 17h30
  3. Réponses: 4
    Dernier message: 30/03/2007, 16h27
  4. Pb avec classe CCOM (Gestion de liaison série)
    Par pdaniel dans le forum MFC
    Réponses: 7
    Dernier message: 08/03/2007, 10h09
  5. liaison série
    Par elodie escande dans le forum MFC
    Réponses: 13
    Dernier message: 14/01/2004, 17h57

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