雨中徒步八英里 2018-11-15 07:38 采纳率: 0%
浏览 2465
已采纳

最小linux系统下读取/dev/input/event2触摸事件出现问题?

问题描述:
屏幕是1024*600电容屏,最小linux系统下想通过读取/dev/input/event2事件
获取触摸坐标值,已经顺利的读出值。
1.但是手指在0-1023像素点间移动时,读取到的却是0-599范围。
2.在0-599像素点间移动时,读取到的却是0-1023范围。

            读取部分代码如下:

int Judge_range_touch(void)
{

int mv = -1;
struct input_event data;
int temp_x,temp_y;
temp_x = temp_y = 0;
int input_fd = open("/dev/input/event2",O_RDONLY);
while(1)
{

    bzero(&data,sizeof(data));
    int ret = read(input_fd,&data,sizeof(data));
    if(ret == sizeof(data))//读取成功
    {

        //数据解析
        if(data.type == EV_ABS)
        {

            if(data.code == ABS_X)
            {
                temp_x = data.value;
            }
            if(data.code == ABS_Y)
            {
                temp_y = data.value;
            }

            if(temp_x!=0&&temp_y!=0)
                {
                    printf("temp_x = %d,temp_y = %d\n",temp_x,temp_y);

                    if((temp_x>551)&&(temp_x<=1023)&&(temp_y>299)&&(temp_y<=599))

                    {
                            close(input_fd);
                            return 1;
                    }
                    if((temp_x>=0)&&(temp_x<=511)&&(temp_y>299)&&(temp_y<=599))

                    {
                            close(input_fd);
                            return 2;
                    }
                }



        }
    }

}

}

  • 写回答

3条回答 默认 最新

  • devmiao 2018-11-15 11:14
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable