问题描述:
屏幕是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;
}
}
}
}
}
}