linux usb-hid: ajouter bibliothèque libhid à éclipser (C ++) ou NetBeans ou IDEs input.h natif ou hiddev.h?

StackOverflow https://stackoverflow.com/questions/1320618

Question

J'ai problème avec libhid .

i trouvé qu'il ya deux voies 4 accédant à l'USB-HID sous Linux

1) les bibliothèques par défaut de Linux comme input.h et hiddev.h ...

2) en utilisant libhid

j'ai trouvé libhid un peu confus et essayer d'utiliser input.h mais j'ai un problème que 2.

Je ne sais pas comment obtenir des informations sur mon appareil de ubuntu

i utiliser open () pour ouvrir le dispositif

str="/dev/inpt/eventX" \\where X=0,1,...,7(I'm not sure about this)
open(str,O_RDWR)

puis obtenir des informations avec ioctl

ioctl(fd,EVIOCGVERSION,&version);

mais il me donne tort fournisseur et ID produit

puis i essayer d'utiliser libhid mais avait savoir idée comment utiliser libhid (ou toute autre bibliothèque) dans Eclipse ou NetBeans

Pouvez-vous me dire comment vous compilez vos codes tout IDE comme Eclipse ou NetBeans ou tout simplement en utilisant la borne et gcc? ou comment travailler avec ioctl () et open ()?

mon code entier exemple:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ftw.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
#include <errno.h>
#include <stdint.h>
#include <asm/types.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

#include <sys/ioctl.h>
#include <linux/usbdevice_fs.h>
#include <linux/input.h>
#include <strings.h>


struct input_devinfo
{
        uint16_t bustype;
        uint16_t vendor;
        uint16_t product;
        uint16_t version;
};


int main(void) {
    //puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
    //usb_device ud;
    //int i=0;
    //string str;
    //str=char[100];
    //str="/dev/input/event0\n";

    printf("------------- start -----------------\n");
    char str[]="" ;
    int version=0;
    char c[16];
    char t;
    int i,fd;
    //for (i=0 ; i<8 ; i++)
    {
        //strcpy(c,str);
        //t=i-'0';
        //printf("salam5\n");
        //c[15]=t;

        //openning
        //open(str,O_RDONLY);//read and write
        if ((fd = open(str,O_RDWR)) < 0)
            perror("str open\n");
        else
            printf("%s opened successfully\n",str);


        ioctl(fd,EVIOCGVERSION,&version);
        printf("version = %d \n",version);
        printf("evdev driver version is %d.%d.%d\n",version >> 16, (version >> 8) & 0xff, version & 0xff);

        //geting info from device
        struct input_devinfo device_info;
        ioctl(fd,EVIOCGID,&device_info);
        printf("vendor 0x%04hx product 0x%04hx version 0x%04hx is on ?",
            device_info.vendor, device_info.product,
            device_info.version);
    }



    return EXIT_SUCCESS;
}
Était-ce utile?

La solution

Je trouve un moyen de compiler mon code dans Eclipse

1 problème résolu

pour compiler votre code avec GCC dans le terminal que vous devez définir libhid pour GCC en ajoutant « -lhid » à votre commande: gcc test_libhid.c -lhid

si vous utilisez Eclipse et que vous voulez utiliser libhid avec lui, vous devez ajouter « -lhid » à linker gcc afin de gcc pourrait utiliser libhid lorsque sa compilation de votre code     suivez les étapes:

1) sur le projet panneau Explorer, R-cliquez sur votre projet sélectionnez Propriétés (dernière option)         ou sélectionnez votre projet et appuyez sur Alt + Entrée

2) dans le panneau gauche expand "c / c ++ construire" et sélectionnez "réglage"

3) dans le côté droit de sélectionner onglet "réglage d'outil"

4) vous devriez voir compilateur GCC C et éditeur de liens GCC C et assembleur GCC là-dedans.         développer linker GCC C et sélectionnez Bibliothèques

5) après avoir sélectionné dans la partie droite vous devriez voir 2 cases: Bibliothèques (-l) et chemin de recherche bibliothèque (-L)         dans les bibliothèques (-l) ajouter "caché"

Note :. Eclipse utiliser GCC pour compiler vos codes lorsque vous effectuez ces étapes éclipsent ajouter le paramètre "-lhid" à gcc pour pouvoir elle reconnaître le libhid

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top