linux usb-HID: adicionar biblioteca libhid para eclipse (C ++) ou netbeans IDEs ou input.h nativa ou hiddev.h?

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

Pergunta

eu tenho problema com libhid .

i descobriu que há 2 vias 4 acessando o usb-HID em linux

1) linux padrão bibliotecas como input.h e hiddev.h e ...

2) usando libhid

i encontrado libhid alguns confundir e tentar usar input.h mas eu tenho problema com isso 2.

Eu não sei como obter informações sobre o dispositivo a partir do Ubuntu

i usar open () para abrir o dispositivo

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

em seguida, obter informações com ioctl

ioctl(fd,EVIOCGVERSION,&version);

mas me dê fornecedor errado e produto IDs

, em seguida, eu tento usar libhid mas ideia saber teve como usar libhid (ou qualquer outra biblioteca) no eclipse ou netbeans

você pode me dizer como você compilou seus códigos de qualquer IDE como eclipse ou netbeans ou apenas usando o terminal e gcc? ou Como trabalhar com ioctl () e open ()?

todo o meu código de exemplo:

#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;
}
Foi útil?

Solução

I encontrar uma maneira de compilar meu código em eclipse

1 problema resolvido

para compilar o código com o GCC no terminal, você deve definir libhid para GCC, acrescentando "-lhid" ao seu comando: gcc test_libhid.c -lhid

Se o seu usando o eclipse e você quiser usar libhid com ele você deve adicionar "-lhid" para vinculador gcc, a fim de gcc poderia usar libhid quando seu compilar seu código siga os passos:

1) no painel Explorador do projeto, R clique sobre seu projeto selecionar propriedades (última opção) ou selecione o seu projeto e pressione Alt + Enter

2) no painel esquerdo expanda "c / c ++ construção" e selecione "setting"

3) no lado direito selecione a aba "Configuração de função"

4) você deve ver compilador GCC C e GCC C vinculador e GCC assembler lá. expandir GCC C vinculador e selecione Bibliotecas

5) após a seleção no lado direito você verá 2 caixas: Bibliotecas (-l) e Biblioteca caminho de pesquisa (-L) nas Bibliotecas (-l) adicionar "escondido"

Nota :. Eclipse uso GCC para compilar seus códigos Quando você fizer isso etapas Eclipse Adicionar parâmetro "-lhid" para gcc para poder-lo reconhecer o libhid

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top