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

GTK+ avec C & C++ Discussion :

gtk port série com ou tty


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2004
    Messages : 53
    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 éclairé 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
    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
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    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.

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2004
    Messages : 53
    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 éclairé 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
    Par défaut
    Y'a pas une histoire de cable croisé ?

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2004
    Messages : 53
    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 actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2004
    Messages : 53
    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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/11/2013, 17h16
  2. Réponses: 3
    Dernier message: 19/12/2012, 15h19
  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, 13h29
  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, 17h11
  5. [Port Série] Redirection d'un port COM
    Par goddet dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 02/05/2007, 09h00

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