1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    juin 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juin 2004
    Messages : 39
    Points : 24
    Points
    24

    Par défaut gtk port série com ou tty

    Bonjour
    Je dois faire un programme pour linux/windows du genre hyperterminal, putty, etc ... mais en beaucoup plus simple.
    Par contre il faudrait que l'utilisateur puisse ouvrir le port série de façon graphique (bref via gtk)
    Mais je n'arrive pas a trouver de doc explicite pour permettre d'utiliser une périphérique de bloc tel que /dev/ttyUSB0 en gtk+
    Connaîtriez vous une doc, ou un exemple concret et documenté ?

    Merci d'avance.

  2. #2
    Membre régulier Avatar de Persistant
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    septembre 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : septembre 2016
    Messages : 50
    Points : 73
    Points
    73

    Par défaut

    Bonjour fgh39,

    As tu vu ce "howto": Serial-Programming-HOWTO

    Pour windows, il me semble que l'accès au port est différent, voir compliqué...

  3. #3
    Membre expert
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    février 2008
    Messages
    1 923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : février 2008
    Messages : 1 923
    Points : 3 633
    Points
    3 633
    Billets dans le blog
    3

    Par défaut

    Bonjour.

    Je complète la réponse de Persistant.

    Sous Linux tout est vu comme un fichier. Le paragraphe 2.2 précise comment sont nommés les ports séries :
    The devices /dev/ttyS* are intended to hook up terminals to your Linux box, and are configured for this use after startup.
    Donc le premier port série devrait être /dev/ttyS0. ttyS0 est vu comme un fichier. Tu dois pouvoir l'ouvrir, le lire et y écrire comme dans tout fichier.
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    juin 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juin 2004
    Messages : 39
    Points : 24
    Points
    24

    Par défaut

    Bonjour et merci a vous
    J'ai essayé le 1er programme de cette page http://tldp.org/HOWTO/Serial-Program...OWTO/x115.html mais je n'ai pas l'impression de retrouver les données que j'envoie (je suis sûr des info que j'envoie) ... cutecom, etc les affiches biens

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                res = read(fd,buf,255);
                buf[res]=0;
                printf(":%s:%d\n", buf, res);
                if (buf[0]=='z') STOP=TRUE;
    Je ne sais pas si j'ai bien compris le programme mai j'ai l'impression qu'il n'affiche pas les données du port com mais plutôt le buffer (buf) et des variables de contrôle (res)
    J'ai essayé (fd) mais ça me semble être une variable de contrôle.
    Dans mon cas je voudrais lire le infos de données (les datas) en sortie du port com, c'est tout pour l'instant.

  5. #5
    Membre régulier Avatar de Persistant
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    septembre 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : septembre 2016
    Messages : 50
    Points : 73
    Points
    73

    Par défaut

    Y'a pas une histoire de cable croisé ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    juin 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juin 2004
    Messages : 39
    Points : 24
    Points
    24

    Par défaut

    Non il s'agit d'un port USB Serial Device converter now attached to ttyUSB0

    Le programme que j'ai essayé devrait afficher les données ? Ou bien alors devrait il afficher une chaîne de données ?

    Sinon j'ai trouvé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <stdio.h>
    #include <unistd.h>
    #include <fcntl.h>    
    int main() {
        char byte;
        int fd = open("/dev/pts/3", O_RDWR);
        write(fd, "X", 1);
        ssize_t size = read(fd, &byte, 1);
        printf("Read byte %c\n", byte);
        return 0;
    }

    ça fonctionne mais il faut que je vérifie qu'il n'ay ai pas de pertes d'info vu que la vitesse du port série est presque au maximum de ses capacités.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    juin 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juin 2004
    Messages : 39
    Points : 24
    Points
    24

    Par défaut

    Bonjour

    je ne comprend pas la ligne pourquoi le mot 'write' ?

    et la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ssize_t size = read(fd, &byte, 1);
    Aussi je vais recevoir via le port com des octets ordonnés mais ils varient dans le temps.
    Comment puis je faire pour les synchroniser ?
    Est ce que la méthode d'utiliser des octets fixes et de procéder par masque serait bonne ?

    Merci

  8. #8
    Membre régulier Avatar de Persistant
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    septembre 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : septembre 2016
    Messages : 50
    Points : 73
    Points
    73

    Par défaut

    fgh39,

    Je te sens un peu perdu. Je te propose de reprendre tout depuis le début et de mettre de coté Gtk+ pour le moment.

    Il faut que tu donne plus d'information.
    Quel niveau en informatique as tu ?
    Dans quel cadre dois tu faire ce programme ?
    Quel est le materiel à ta disposition ?
    Quel montage utilise tu ?
    Sous quel Systeme d'exploitation ton programme doit-il tourner ?
    etc...

    Pour étancher ta souaffe de connaissance:
    pourquoi le mot 'write' ?
    ''write' est le nom de la fonction(routine systeme de bas niveau) qui permet d'écrire dans un fichier (relis le message de gerald3d) cette fonction est déclaré dans le fichier stdio.h

    Je te propose d'essayer de créer un programme en C qui permet de manipuler un fichier text en 4 étape (CREATE, READ, UPDATE, DELETE)
    -La premiere étape serrai de créer un fichier sur ton disque dur
    -La deuxieme étape serrai d'afficher le contenu du fichier
    -La troisieme étape serrai de modifier le contenue du fichier
    -La quatrieme étape serrai de supprimer le fichier

    Bonne lecture: TUTORIAL

    PS: Ca me rappel que : CREATE=> internet est née, READ=>l'avenement d'internet dans les foyé, UPDATE=>Le Web 2.0 est née, DELETE=>Web 3.0

  9. #9
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    juin 2010
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : juin 2010
    Messages : 1 065
    Points : 1 733
    Points
    1 733

    Par défaut

    Peut être utiliser le widget de terminal GTK libvte-2.91.

    C'est la library que je utilise dans mon éditeur it-edit codé avec Gtk-3 et mon générateur de projets mk-project.

    Mais c'est peut être pas permis ?
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    juin 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juin 2004
    Messages : 39
    Points : 24
    Points
    24

    Par défaut

    Merci Luke spywoker
    je vais voir

  11. #11
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    juin 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juin 2004
    Messages : 39
    Points : 24
    Points
    24

    Par défaut

    Bonjour




    En effet l'ouverture d'un port com/tty ne se fait pas directement en GTK (veuillez excuser ma confusion ) mais avec d'autre langages comme le c++, le c#, python, etc ...
    Une fois qu'on arrive a dialoguer et configurer un port serie, on peut ensuite ajouter la librairie gtk pour rendre son projet "graphiques"
    Enfin pour celles et ceux qui sont intéressés par l'échange de données et la configuration d'un port tty ou ttyUSBxx il faut rechercher des info avec le mot clef "termios" il peut y en avoir d'autres.


Discussions similaires

  1. Réponses: 2
    Dernier message: 08/11/2013, 18h16
  2. Réponses: 3
    Dernier message: 19/12/2012, 16h19
  3. [Langage C] Détection périphérique sur port COM
    Par ncurses dans le forum Embarqué
    Réponses: 5
    Dernier message: 19/12/2011, 14h29
  4. port com et réception de données série
    Par moustiqu3 dans le forum C#
    Réponses: 1
    Dernier message: 15/03/2010, 18h11
  5. [Port Série] Redirection d'un port COM
    Par goddet dans le forum IO
    Réponses: 7
    Dernier message: 02/05/2007, 10h00

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