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 :

quel librairie pour controler l' usb rs232 en C++


Sujet :

C++

  1. #1
    Membre actif Avatar de buse974
    Homme Profil pro
    Développeur / Chef de projet informatique
    Inscrit en
    février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur / Chef de projet informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2007
    Messages : 117
    Points : 245
    Points
    245
    Par défaut quel librairie pour controler l' usb rs232 en C++
    salut
    je cherche des librairie pour pouvoir m'amuser avec mes port usb rs232 et autre meme cdrom ect en c++.

    je presise que je suis sous linux (kubuntu / kde) et mon ide et code:block.

    j'ai trouver ioctl.h mais je pense quil y doit y avoir des librairie toute prete pour communiquer mais je ne sais pas ou aller.

    donc je suis a la recherche de tuto sur le sujet ou des renseignement sur des librairies existantes.

    voila en gros je n'est pas de project particulier c'est juste pour m'amusé en c++ et mes peripherique de mon pc le tout bien sur sous ubuntu.

    merci d'avance

  2. #2
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2005
    Messages : 446
    Points : 495
    Points
    495
    Par défaut
    Je ne comprend pas exactement ce que tu veux faire.
    Le RS232 est normalement le port serie, parle tu un adaptateur USB/RS232 ?
    En tout cas si tu veux faire "joujou" avec RS232 ou l'USB il va falloir t'attaquer à la programmation de driver sous linux.
    liens http://lwn.net/Kernel/LDD3/
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

  3. #3
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Pour les ports séries, sous linux, il y a libserial qui est trés bien (on l'utilise en prod, tu peux y aller):
    http://sourceforge.net/projects/libserial/

    Ensuite, si tu veux utiliser un adaptateur, il te faut les drivers qui vont bien, et ici s'arêtent mes compétences sur le sujet.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  4. #4
    Membre actif Avatar de buse974
    Homme Profil pro
    Développeur / Chef de projet informatique
    Inscrit en
    février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur / Chef de projet informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2007
    Messages : 117
    Points : 245
    Points
    245
    Par défaut
    desoler de la reponse tardive

    sinon merci je t'esterais la librairie libserial c'est ce que je cherché.

    sinon pour l'usb il doit y avoir une librairie toute prete aussi.

    dapres ce que j'ai compris on ne parle pas dirrectement avec le port usbx on doit interroger le controleur.

    donc merci themadmax et r0d.

    et ci quelqu'un aurait une idee pour l'usb je suis preneur.

    @+

  5. #5
    Membre régulier
    Profil pro
    Responsable de projet
    Inscrit en
    décembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de projet

    Informations forums :
    Inscription : décembre 2005
    Messages : 97
    Points : 110
    Points
    110
    Par défaut
    Sujet qui m'interesse je plante ma tante.

    Bon, il me semble que pour l'usb il y a enormement de lecture a faire sur le protocol, faut que je m'y mette.

    http://acquier.developpez.com/cours/USB/

  6. #6
    Membre actif Avatar de buse974
    Homme Profil pro
    Développeur / Chef de projet informatique
    Inscrit en
    février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur / Chef de projet informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2007
    Messages : 117
    Points : 245
    Points
    245
    Par défaut
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    #include <stdio.h>
    #include <usb.h>
    #include <errno.h> // Bibliothèque des erreurs.
     
    struct usb_bus *busses;
    struct usb_bus *bus;
    struct usb_device *dev,*fdev;
    usb_dev_handle *device_handle = 0;
     
    char info[100];
    char tram[4] = {0};
    char name[20];
    char manu[100];
    char serial[100];
     
    void driver_init(void)
    {
        usb_init(); //Initialisation de la librairie (par example determine le chemin du repertoire des bus et peripheriques)
        usb_find_busses(); // Enumère tous les bus USB du systemes
        usb_find_devices(); // Enumère tous les peripheriques sur tous les Bus présents)
         // Parcours de la liste des bus et des périphériques
    }
     
    char usb_scan(void)
    {
    int r,ret,x,y,retour,ret2,num;
        for (bus = usb_busses; bus; bus = bus->next)
        {
            for (dev = bus->devices; dev; dev = dev->next)
            { for (x=0;x<4 && r>0;x++)
                printf("%d ",string[x]);
                if(dev->config->interface->altsetting->bInterfaceProtocol==2)
                {
     
                device_handle=usb_open(dev);
                if(device_handle)
                {
                    printf("ouvert \n");
                }
                else
                {
                    printf("Operation failed :");
                    exit(1);
                }
     
                num = usb_get_driver_np(device_handle, dev->config->interface->altsetting->bInterfaceNumber, name, sizeof(name));
                usb_get_string_simple(device_handle,dev->descriptor.iManufacturer,manu,sizeof(manu));
                usb_get_string_simple(device_handle,dev->descriptor.iSerialNumber,serial,sizeof(serial));
                usb_get_string_simple(device_handle,dev->descriptor.iProduct,info,sizeof(info));
     
                printf("==========\n");
                printf("bus : %s Device %s \n",bus->dirname,dev->filename);
                printf("id Vendor: %d (%x) \n",dev->descriptor.idVendor,dev->descriptor.idVendor);
                printf("id Product : %d\n",dev->descriptor.idProduct);
                printf("Device Protocol : %d \n",dev->descriptor.bDeviceProtocol);
                printf("Report Length : %d \n",dev->descriptor.bLength);
                printf("Decriptor Type : %d \n",dev->descriptor.bDescriptorType);
                printf("EndPoints : %d \n",dev->config->interface->altsetting->bNumEndpoints);
                printf("Interface Class : %d \n",dev->config->interface->altsetting->bInterfaceClass);
                printf("Protocol : %d \n",dev->config->interface->altsetting->bInterfaceProtocol);
                printf("Interface Number: %d \n",dev->config->interface->altsetting->bInterfaceNumber);
                printf("End point addresses : 0x%x \n",dev->config->interface->altsetting->endpoint->bEndpointAddress);
                printf("Device Manfucaturer : %s \n",manu);
                printf("Product Name : %s \n",info);
                printf("Device Serial Number: %s \n",serial);
                printf("usb driver (Default): %s \n",name);
                printf("===========\n");
     
                ret2 = usb_detach_kernel_driver_np(device_handle, dev->config->interface->altsetting->bInterfaceNumber);
     
                retour = usb_claim_interface(device_handle, dev->config->interface->altsetting->bInterfaceNumber);
                ret = usb_release_interface(device_handle, dev->config->interface->altsetting->bInterfaceNumber);
     
     
     
                for (y=0;y<5000;y++)
                {
                    r=usb_interrupt_read(device_handle,0x81,tram,4,0);
     
                     for (x=0;x<4 && r>0;x++)
                        printf("%d ",tram[x]);
     
                }
                usb_release_interface(device_handle,dev->config->interface->altsetting->bInterfaceNumber);
                usb_close(device_handle);
     
                }
            }
        }
        return 0;
    }
     
    int main(void)
    {
            driver_init();
            usb_scan();
            return 0;
    }
    c'est bon apres tout ce temp c'est resolu
    donc la librairie et usb.h et en cpp usbpp.h ( il faut installer libusb ) qui et pour ma distribution ubuntu dans les depot.

    donc je vais vous decrire ce petit bout de code un peu sales .

    donc en premier lien il scanne tout les bus et les peripherique .
    ensuite j'ai recuperer que ma souris usb .
    apres pour pouvoir parler avec ma souris j'ai du desactiver le driveur usb courant .
    et pour finir j'affiche la reponse de la trame renvoyer de la souri.

    j'ai oublier pour que la sourie remarche il sufit juste de la debrancher et de la rebrancher.

    desoler cette explication un peu a la rache mais je suis pas chez moi et je doit partir donc si sa peu aider c'est temp mieu .

    sinon si sa interresse que je reposte le petit bout de code avec des commentaire faite moi signe .
    @+

  7. #7
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Merci beaucoup pour ce retour positif, je pense que ça en aidera plus d'un!

    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel librairie pour logger en PHP?LOG4PHP ou Monolog?
    Par yvon_huynh dans le forum Langage
    Réponses: 6
    Dernier message: 13/11/2014, 09h25
  2. quel librairie pour crypter
    Par Cynik971 dans le forum Général Python
    Réponses: 2
    Dernier message: 23/08/2012, 14h18
  3. Cherche une librairie pour "controler" un modem ^^
    Par Bestel74 dans le forum Réseau
    Réponses: 10
    Dernier message: 22/02/2010, 17h55
  4. Quel distrib pour une clé USB ?
    Par guiyomh dans le forum Distributions
    Réponses: 2
    Dernier message: 14/08/2008, 17h10
  5. quel librairie pour utiliser stdin/fgetc ?
    Par burell dans le forum Bibliothèque standard
    Réponses: 2
    Dernier message: 06/03/2008, 10h53

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