如何在嵌入式Linux中从键盘获取文本而不解码每个按键事件?

现在我正在直接从/ dev / input / eventX中读取。是否有一些库或API可以为我转换字节流?下面是我正在运行的代码,示例输入和输出。

int main (void)
{
    struct input_event ev;
    int fd,rd;

    //Open Device
    if ((fd = open ("/dev/input/event0",O_RDONLY)) == -1){
        printf ("not a vaild device.\n");
        return -1;
    }

    while (1){

        memset((void*)&ev,sizeof(ev));

        rd = read (fd,(void*)&ev,sizeof(ev));

        if (rd > 0 && ev.type==1){
            printf("value: %d,code: %d\n",ev.value,ev.code);
        }
    }

如果我输入

  

XAL4

我得到:

value: 1,code: 42
value: 1,code: 45
value: 0,code: 42
value: 0,code: 45
value: 1,code: 30
value: 0,code: 30
value: 1,code: 38
value: 0,code: 38
value: 1,code: 5
value: 0,code: 5

使用标题https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/input-event-codes.h

我知道键的顺序是:

KEY_DOWN: SHIFT 
KEY_DOWN: X 
KEY_UP: SHIFT 
KEY_UP: X 
KEY_DOWN: SHIFT 
KEY_DOWN: A 
KEY_UP: SHIFT 
KEY_UP: A
KEY_DOWN: SHIFT 
KEY_DOWN: L 
KEY_UP: SHIFT 
KEY_UP: L
KEY_DOWN: 4 
KEY_UP: 4

有没有可以将其转换为原始ascii的库或api?

monkey1210 回答:如何在嵌入式Linux中从键盘获取文本而不解码每个按键事件?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3062277.html

大家都在问