当前位置:   article > 正文

C语言 监听开发板触摸屏,点击的位置变化,就是点击坐标获取。_监听点击位置

监听点击位置

读取设备文件信息

我们监听显示屏点击的位置变化,说白了也就是监听屏幕触摸功能所对应的设备文件。

所有毋庸置疑,首先得知道对应的设备文件在哪?然后打开它,读取去其中的信息就可以获得其中的位置信息,而系统Linux系统也提供了相应的API,以及对应的结构体。

  1. int num ;
  2. int lcd = open("/dev/fb0", O_RDWR);
  3. if (lcd == -1)
  4. {
  5. perror("打开LCD失败");
  6. }
  7. int LCD_touch = open("/dev/input/event0", O_RDWR);
  8. if (LCD_touch == -1)
  9. {
  10. perror("打开LCD触摸感应失败");
  11. }
  12. struct input_event touch;
  13. int touch_x = -1, touch_y = -1, touch_y1 = -1, touch_x1 = -1;
  14. num = 0;
  15. while (1)
  16. {
  17. while (1)
  18. {
  19. read(LCD_touch, &touch, sizeof(touch));
  20. if (touch.type == EV_ABS && touch.code == ABS_X)
  21. touch_x1 = touch.value * 800 / 1024;
  22. if (touch.type == EV_ABS && touch.code == ABS_Y)
  23. touch_y1 = touch.value * 480 / 600;
  24. if ((touch_x1 != -1 && touch_y1 != -1) || (touch.type == EV_KEY && touch.code == BTN_TOUCH && touch.value == 0))
  25. {
  26. touch_x = touch_x1;
  27. touch_y = touch_y1;
  28. touch_x1 = -1;
  29. touch_y1 = -1;
  30. break;
  31. }
  32. }

struct input_event touch;

这个结构体就是用来读取这个设备文件专用的,用它就能读取相应的信息。

因为这个结构体的信息是分类的及,它有多个type值,type不一样对应的code值也不一样,

而且code也是一种用来分类的标识。最后的value值才是经过两分类后的信息。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/317225
推荐阅读
相关标签
  

闽ICP备14008679号