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 :

Accès au port COM en C++


Sujet :

C++

  1. #1
    P.G
    P.G est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 158
    Points : 73
    Points
    73
    Par défaut Accès au port COM en C++
    Bonjour à tous,

    Débutant en C++, je cherche quelques pistes de départ pour créer du code accédant au port COM. Avec un exemple si possible. Après quelques recherche sur la toile j'ai trouvé deux pistes :

    => TComPort mais ou le récupérer et sa documentation ?

    => et la Form windows serialPort1, là aussi exemples et documentation ?

    J'utilise Visual C++ 2008 Express

    Merci de l'aide

    P.G

  2. #2
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Hello, regarde ICI
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  3. #3
    P.G
    P.G est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 158
    Points : 73
    Points
    73
    Par défaut Essai de port com suite
    Merci pour ta réponse,

    Bon étant débutant j'ai essayé de compiler la version proposée en .zip SerialDemo.zip.

    Le compilateur bute sur un fichier afxwin.h manquant et je bloque ??

    Mais peut être que je m'y prend mal.

    A +

    P.G

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    afxwin.h est un fichier d'en-tête lié aux versions payantes de Visual.
    TComPort est lié à C++Builder
    Qt et wxWidgets n'ont, à ma connaissance, rien de base pour le RS232 mais des projets existent (cf F.A.Q Qt par expl)
    Sinon, il faut attaquer l'API Win32 (CreateFile) ou Linux (open).

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 50
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    En utilisant les Winforms, ce n'est pas bien compliqué, et je n'ai pas vu de limitation concernant la version Express de visual Studio (mais je me trompe peut-être).

    Pour utiliser un port COM:

    1- Ajoute un bloc SerialPort dans le designer.

    2- Configures ton port série dans ton code d'initialisation, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    serialPort->BaudRate=38400;
    serialPort->PortName="COM3";
    3- Ouvre ton port COM en gérant les exceptions:
    4.
    Pour écrire, tu peux utiliser la méthode 'Write'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    serialPort->Write("coucou");
    Pour lire les données, c'est un peu différent. Tu peux ajouter l'événement "DataReceived", qui appellera une méthode sur réception de données sur le port COM.

    De mémoire, dans cette méthode, tu dois ensuite faire un "String^ chaine=serialPort->ReadExisting();" pour stocker les données entrantes dans une String.

    J'espère avoir pu t'aider un peu.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    IRIS
    Inscrit en
    Septembre 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : IRIS
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 55
    Points : 35
    Points
    35
    Par défaut
    J'en est eu besoin il y a très peu de temps, et j'en est toujours besoin, Malheureusement je ne l'ai pas sur moi. Si demain tu n'a pas la solution je poserais ici les .cpp & .h pour posix et windows, après à toi de bien lire les header pour comprendre comment ça fonctionne

    De mémoire il est préférable de traduire le message en ASCII et le stockant dans une variable string byte avant de l'envoyé par exemple en faisant :

    byte = Texte->ToASCII(); ( de mémoire c'est ça il me semble)

    puis un serialport->WriteData(byte.data(), byte.array());

    Je ne suis pas certain je pense qu'il y a des erreurs, mais c'est l'idée.

    Je te passe tout cela demain.

    Cordialement

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/10/2011, 13h46
  2. Accès port COM virtuel
    Par arbtec dans le forum C#
    Réponses: 5
    Dernier message: 29/09/2008, 14h41
  3. Réponses: 1
    Dernier message: 01/07/2008, 12h33
  4. port com
    Par jeremi dans le forum C
    Réponses: 12
    Dernier message: 16/09/2002, 11h37
  5. Accès au ports
    Par YéTeeh dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/07/2002, 14h54

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