Leitura / dev / entrada / do teclado PS / 2

0

Eu posso estar um pouco fora do tópico, mas não sei qual parte do meu projeto está causando os problemas (se apenas um), então eu tenho que verificar cada um deles.

Atualmente estou trabalhando em um projeto onde quero controlar meu PC com um AVR, através da emulação de um teclado PS / 2. Por esse motivo, atualmente tenho todo o hardware necessário e algumas bibliotecas de software, como link para o AVR e link para a parte do PC.
Eu também li sobre o protocolo PS / 2 do link , link e link

Em seguida, executei o comando sudo cat /dev/input/by-path/platform-i8042-serio-0-event-kbd > ./kbrd.hex e conectei um teclado, depois pressionei e liberei o backspace.
Eu iria exceto algo como AA 66 F0 66 , e talvez alguns FA (ACK) no meio, mas o que eu tenho é muito diferente:

Então,minhapergunta:
Issopoderiasercausadopormeuentendimentoerradodocomportamentodetrabalhode/dev/input/,ouoproblemaestánasoutraspartesdaminhaconfiguração?Euseiquesouburro,masesperoobteraentradabrutadobufferde/dev/input/,eissonãoéqueeuachoqueorawdeveser.

EDITAR
OutrohexdumpAPÓSligaroteclado:

    
por Sasszem 09.12.2017 / 23:03

1 resposta

3

A maneira como descreve o processo, você: começou a capturar a saída, conectou o teclado, pressionou uma tecla e parou a captura. Se for esse o caso, recomendo ligar o teclado, iniciar a captura, pressionar a tecla, parar a captura?

EDITAR: Adicionando informações adicionais

Eu não consegui nada em minha própria pesquisa rápida para alinhar totalmente com seus lixinhos até agora, mas:

Por documentação do kernel.org e código-fonte , a saída das interfaces / dev / input está no formato:

struct input_event {
    struct timeval time;
    unsigned short type;
    unsigned short code;
    unsigned int value;
};

O que equivale a:

  • timeval: 16 bytes (8 bytes por segundo, 8 bytes por microssegundo)
  • tipo: 2 bytes
  • código: 2 bytes
  • valor: 4 bytes 01 para o pressionamento de tecla, 00 para o release, 02 para o autorepeat
por 09.12.2017 / 23:13