begin process at 2012 05 27 14:28:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Périphériques

 > CLASSE DE CONTRÔLE DES PORTS COM

CLASSE DE CONTRÔLE DES PORTS COM


 Information sur la source

Note :
Aucune note
Catégorie :Périphériques Classé sous :rs232, com, série, port, communication Niveau :Débutant Date de création :15/02/2007 Vu / téléchargé :12 184 / 1 419

Auteur : gergalp

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

J'ai eu besoin de faire des mesures de RSSI sur des interfaces ZigBee branchées sur des microcontrôleurs n'ayant qu'une interface série RS232, et après pas mal de rercherche, je n'ai rien trouvé qui faisait ce que je voulais, donc je l'ai refait, et c'est beaucoup plus simple que je l'aurais immaginé.

La classe permet d'ouvrir un port COM avec les appels systèmes windows, elle configure le port, les buffers et les timeouts.

Source

  • /**
  • * Redirection simple d'un port COM(RS232) vers la sortie standard sous Windows.
  • *
  • * @filename redir.cpp
  • * @version 1.1
  • */
  • #include <cstdio>
  • #include <COMPort.h>
  • /**
  • * Macro de transformation du texte pour les vesrions de windows UNICODE
  • * i.e: XP, 2003, Vista
  • */
  • #ifdef UNICODE
  • #define _T(x) (L##x)
  • #else
  • #define _T(x) (x)
  • #endif
  • void usage(int argc, const char * const * argv)
  • {
  • ::printf("Usage: %s <port>\nWhere <port> is a COM port name,"
  • "from COM1 to COM15, depending on your system hardware.\n", argv[0]);
  • }
  • int main(int argc, const char * const * argv)
  • {
  • COMPort pCom;
  • CHAR lpBuff[1024];
  • if(argc < 2)
  • {
  • usage(argc, argv);
  • return 0;
  • }
  • pCom.open(argv[1]);
  • if(!(pCom.isOpened()))
  • {
  • ::printf("Opening error\n");
  • return 0;
  • }
  • pCom.setTimeOut(1, 1, 1);
  • pCom.setCommunication(CBR_19200, 8, NOPARITY, ONESTOPBIT);
  • pCom.setBufferSize(4096, 128);
  • for(;;)
  • {
  • if(pCom.read(lpBuff, sizeof(*lpBuff), 1023))
  • printf("%s", lpBuff);
  • }
  • return 0;
  • }
/**
 * Redirection simple d'un port COM(RS232) vers la sortie standard sous Windows.
 *
 * @filename redir.cpp
 * @version 1.1
 */
#include <cstdio>

#include <COMPort.h>

/**
 * Macro de transformation du texte pour les vesrions de windows UNICODE
 * i.e: XP, 2003, Vista
 */
#ifdef UNICODE
#define _T(x) (L##x)
#else
#define _T(x) (x)
#endif

void usage(int argc, const char * const * argv)
{
    ::printf("Usage: %s <port>\nWhere <port> is a COM port name,"
        "from COM1 to COM15, depending on your system hardware.\n", argv[0]);
}

int main(int argc, const char * const * argv)
{
    COMPort pCom;
    CHAR lpBuff[1024];

    if(argc < 2)
    {
        usage(argc, argv);
        return 0;
    }

    pCom.open(argv[1]);

    if(!(pCom.isOpened()))
    {
        ::printf("Opening error\n");
        return 0;
    }
    pCom.setTimeOut(1, 1, 1);
    pCom.setCommunication(CBR_19200, 8, NOPARITY, ONESTOPBIT);
    pCom.setBufferSize(4096, 128);

    for(;;)
    {
        if(pCom.read(lpBuff, sizeof(*lpBuff), 1023))
            printf("%s", lpBuff);
    }

    return 0;
}

 Conclusion

Je l'ai testée avec succès sur des convertisseurs USB vers RS232 et je suis à l'écoute de toute remarque intéressante.

J'ai créé le projet avec Visual C++ 2005 Express.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   COMPort
    •   bin
      • CMD.lnkTélécharger ce fichier [Réservé aux membres club]1 293 octets
    •   docs
      • COMPort.doxyTélécharger ce fichier [Réservé aux membres club]10 016 octets
    •   examples
    •   include
    • lib
    •   src
    • tmp
    •   Win32
      • COMPort.slnTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 774 octets
      • COMPort.vcprojTélécharger ce fichier [Réservé aux membres club]5 490 octets
      • redir.vcprojTélécharger ce fichier [Réservé aux membres club]4 559 octets
      • test.vcprojTélécharger ce fichier [Réservé aux membres club]4 458 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip BASE64 - ENCODAGE ET DÉCODAGE

 Sources de la même categorie

Source avec Zip Source avec une capture RS232 ET PORT // par morphixx
Source avec Zip Source avec une capture [DEV-C++] GESTION DU PORT PARALLÈLE par victorcoasne
Source avec Zip Source avec une capture FAIRE GLISSER LA SOURIS par shorzy
Source avec Zip COMMUNICATION RS232 VIA PORT COM par MadMax1024
Source avec Zip Source avec une capture EXTINCTION ET REDEMARRAGE DE VOTRE MONITEUR À UNE HEURE PRÉC... par Yost

 Sources en rapport avec celle ci

Source avec Zip GESTION DU PORT SÉRIE AVEC SURVEILLANCE DES PAQUETS POUR QT par samoura969
Source avec Zip Source avec une capture PORT COM ENUM par BruNews
Source avec Zip PORT COM (RS232) SUPER SIMPLE DANS UNE CLASSE par misterzinzin
Source avec Zip Source avec une capture CLASSE DE CONTRÔLE DU PORT SÉRIE RS232 AVEC LES API WINDOWS. par djlex03
Source avec Zip UTILISATION DU PORT COM ENTRE UN PC ET UN POCKET PC par PurpleHeart2

Commentaires et avis

Commentaire de zezitinho le 09/10/2007 11:53:33

hum, j'arrive pas a compiler...

ca me donne ca :
Compilation en cours...
redir.cpp
Édition des liens en cours...
LINK : fatal error LNK1104: cannot open file 'C:\Documents.obj'

Commentaire de gergalp le 10/10/2007 23:11:51

Places ton projet ailleurs que sur ton bureau ou Mes Documents, ca devrait fonctionner :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

communication port COM [ par nmeunier ] Bonjour à tous !Je suis actuellement en stage dans une entreprise ou personne ne peut vraiment m'aider...;-(J'ai récupéré des sources en turbo C d'un Communication hexa décimal sur un port série [ par briscard ] Bonjour à tous!j'ai un petit problème de communication avec le logiciel que je développe: je dois programmer un port série et ensuite l'utiliser pour Communication via le port série [ par michelouze ] Bonjour, j'ai vraiment besoin d'aide, ça fait 3 jours que je galère pour communiquer en RS232 avec un appareil de mesure. Ce que j'ai réussi à faire c Communication Port serie RS232 [ par freddy766 ] Bonjour, J'ai un petit probleme concernant la communication RS232 (port serie) en c++. Afin de tester mon programme sur des appareils et etablir des c Simulateur de communication RS232 [ par gordon13 ] Bonjour,Je dois réaliser un composant de communication avec un appareil connecté au PC via le port série. Comme j'ai pas l'appareil, je voudrais simul communication rs232 [ par sdisp ] Bonjour,J'ai fait un programme qui envoie des donn&#233;es ( trame de 12 octets ) sur un module de transmition wifi via le port com.Mon probleme est q Besoin d'un coup de main dans la rélisation d'une application Win32 en langage C [ par sim_richard286 ] &nbsp;&nbsp; Je suis actuellement &#233;tudiant en GEII 2i&#232;me ann&#233;e et je souhaiterais avoir une petite aide pour la r&#233;alisation d'une communication entre modem et port RS232 du PC [ par mustaphaham2005 ] &nbsp; <TD id=HB_Focus_Element vAlign=top width="100%" background="" height=250 UN RS232 en USB [ par sirdeneb ] Bonjour &#224; tous, J'ai un programme en cpp qui communique avec une carte d'acquisition sur le port s&#233;rie. Or &#233;tant oblig&#233; de change Conception d'un multiplexeur RS232 [ par CleFac ] Bonjour,J'ai une connexion RS232 en E/S. Les données entrantes sur ma connexion RS232 sont écrites sur une/des socket(s).Maintenant les données entran


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales