Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing pygame.FINGERMOTION events #4156

Open
project-owner opened this issue Feb 8, 2024 · 0 comments
Open

Missing pygame.FINGERMOTION events #4156

project-owner opened this issue Feb 8, 2024 · 0 comments

Comments

@project-owner
Copy link

project-owner commented Feb 8, 2024

Hi,

I'm using:
Pygame: 2.1.2 (SDL 2.26.5, Python 3.11.2)
OS: Raspberry Pi OS Lite Bookworm 32-bit
Touchscreen: Waveshare 3.5" HDMI https://www.amazon.com/Waveshare-3-5inch-HDMI-LCD-Resolution/dp/B071NVW7Y7
Hardware: Raspberry Pi 4B

I'm running the following Pygame program to detect touch events:

import pygame
import time
pygame.display.init()
while True:
    for event in pygame.event.get():
        t = event.type
        if t == pygame.FINGERUP:
            print(f"up x:{event.x} y:{event.y}")
        elif t == pygame.FINGERDOWN:
            print(f"down x:{event.x} y:{event.y}")
        elif t == pygame.FINGERMOTION:
            print(f"motion x:{event.x} y:{event.y}")
        else:
            print("unknown")
    time.sleep(0.1)

It shows finger down and up events. There are no FINGERMOTION events instead (when I move finger) they are printed as a series of down/up events with different coordinates.

I've installed the evtest program to see a device events. Here is the result for one touch:

$ evtest /dev/input/touchscreen
Input driver version is 1.0.1
Input device ID: bus 0x1c vendor 0x0 product 0x1ea6 version 0x0
Input device name: "ADS7846 Touchscreen"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value   2388
      Min        0
      Max     4095
    Event code 1 (ABS_Y)
      Value   2851
      Min        0
      Max     4095
    Event code 24 (ABS_PRESSURE)
      Value      0
      Min        0
      Max      255
Properties:
Testing ... (interrupt to exit)
Event: time 1707330911.535564, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1707330911.535564, type 3 (EV_ABS), code 0 (ABS_X), value 3398
Event: time 1707330911.535564, type 3 (EV_ABS), code 1 (ABS_Y), value 1526
Event: time 1707330911.535564, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 245
Event: time 1707330911.535564, -------------- SYN_REPORT ------------
Event: time 1707330911.560764, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1707330911.560764, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1707330911.560764, -------------- SYN_REPORT ------------

Here is the output when I move finger:

...
Event: time 1707330986.391574, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1707330986.391574, type 3 (EV_ABS), code 0 (ABS_X), value 1830
Event: time 1707330986.391574, type 3 (EV_ABS), code 1 (ABS_Y), value 630
Event: time 1707330986.391574, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 244
Event: time 1707330986.391574, -------------- SYN_REPORT ------------
Event: time 1707330986.407548, type 3 (EV_ABS), code 0 (ABS_X), value 1862
Event: time 1707330986.407548, type 3 (EV_ABS), code 1 (ABS_Y), value 629
Event: time 1707330986.407548, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 245
Event: time 1707330986.407548, -------------- SYN_REPORT ------------
Event: time 1707330986.423547, type 3 (EV_ABS), code 0 (ABS_X), value 1822
Event: time 1707330986.423547, type 3 (EV_ABS), code 1 (ABS_Y), value 628
Event: time 1707330986.423547, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 244
Event: time 1707330986.423547, -------------- SYN_REPORT ------------
Event: time 1707330986.432768, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1707330986.432768, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1707330986.432768, -------------- SYN_REPORT ------------
Event: time 1707330986.491547, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1707330986.491547, type 3 (EV_ABS), code 0 (ABS_X), value 1785
Event: time 1707330986.491547, type 3 (EV_ABS), code 1 (ABS_Y), value 756
Event: time 1707330986.491547, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 249
Event: time 1707330986.491547, -------------- SYN_REPORT ------------
Event: time 1707330986.500770, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1707330986.500770, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1707330986.500770, -------------- SYN_REPORT ------------
Event: time 1707330986.519542, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1707330986.519542, type 3 (EV_ABS), code 0 (ABS_X), value 1835
Event: time 1707330986.519542, type 3 (EV_ABS), code 1 (ABS_Y), value 751
Event: time 1707330986.519542, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 249
Event: time 1707330986.519542, -------------- SYN_REPORT ------------
Event: time 1707330986.535538, type 3 (EV_ABS), code 0 (ABS_X), value 1833
Event: time 1707330986.535538, type 3 (EV_ABS), code 1 (ABS_Y), value 752
Event: time 1707330986.535538, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 247
Event: time 1707330986.535538, -------------- SYN_REPORT ------------
Event: time 1707330986.544769, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1707330986.544769, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1707330986.544769, -------------- SYN_REPORT ------------
Event: time 1707330986.611535, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1707330986.611535, type 3 (EV_ABS), code 1 (ABS_Y), value 880
Event: time 1707330986.611535, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 251
Event: time 1707330986.611535, -------------- SYN_REPORT ------------
Event: time 1707330986.627541, type 3 (EV_ABS), code 0 (ABS_X), value 1867
Event: time 1707330986.627541, type 3 (EV_ABS), code 1 (ABS_Y), value 907
Event: time 1707330986.627541, -------------- SYN_REPORT ------------
Event: time 1707330986.643538, type 3 (EV_ABS), code 0 (ABS_X), value 1866
Event: time 1707330986.643538, type 3 (EV_ABS), code 1 (ABS_Y), value 884
Event: time 1707330986.643538, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 252
Event: time 1707330986.643538, -------------- SYN_REPORT ------------
Event: time 1707330986.659541, type 3 (EV_ABS), code 0 (ABS_X), value 1867
Event: time 1707330986.659541, type 3 (EV_ABS), code 1 (ABS_Y), value 918
Event: time 1707330986.659541, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 249
Event: time 1707330986.659541, -------------- SYN_REPORT ------------
Event: time 1707330986.675537, type 3 (EV_ABS), code 0 (ABS_X), value 1846
Event: time 1707330986.675537, type 3 (EV_ABS), code 1 (ABS_Y), value 902
Event: time 1707330986.675537, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 248
Event: time 1707330986.675537, -------------- SYN_REPORT ------------
Event: time 1707330986.684766, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1707330986.684766, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1707330986.684766, -------------- SYN_REPORT ------------
Event: time 1707330986.703537, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1707330986.703537, type 3 (EV_ABS), code 0 (ABS_X), value 1899
Event: time 1707330986.703537, type 3 (EV_ABS), code 1 (ABS_Y), value 1007
Event: time 1707330986.703537, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 249
Event: time 1707330986.703537, -------------- SYN_REPORT ------------
Event: time 1707330986.719543, type 3 (EV_ABS), code 0 (ABS_X), value 1862
Event: time 1707330986.719543, type 3 (EV_ABS), code 1 (ABS_Y), value 1010
Event: time 1707330986.719543, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 252
Event: time 1707330986.719543, -------------- SYN_REPORT ------------
Event: time 1707330986.735536, type 3 (EV_ABS), code 0 (ABS_X), value 1954
Event: time 1707330986.735536, type 3 (EV_ABS), code 1 (ABS_Y), value 978
Event: time 1707330986.735536, -------------- SYN_REPORT ------------
Event: time 1707330986.751540, type 3 (EV_ABS), code 0 (ABS_X), value 1926
Event: time 1707330986.751540, type 3 (EV_ABS), code 1 (ABS_Y), value 964
Event: time 1707330986.751540, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 250
Event: time 1707330986.751540, -------------- SYN_REPORT ------------
Event: time 1707330986.767537, type 3 (EV_ABS), code 0 (ABS_X), value 1919
Event: time 1707330986.767537, type 3 (EV_ABS), code 1 (ABS_Y), value 1108
Event: time 1707330986.767537, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 251
Event: time 1707330986.767537, -------------- SYN_REPORT ------------
Event: time 1707330986.783540, type 3 (EV_ABS), code 0 (ABS_X), value 1910
Event: time 1707330986.783540, type 3 (EV_ABS), code 1 (ABS_Y), value 1110
Event: time 1707330986.783540, -------------- SYN_REPORT ------------
Event: time 1707330986.799546, type 3 (EV_ABS), code 0 (ABS_X), value 1919
Event: time 1707330986.799546, type 3 (EV_ABS), code 1 (ABS_Y), value 1113
...

It really looks like a sequence of down and up events plus Event type 3 which I think Pygame doesn't detect (?)
Is there any way to get pygame.FINGERMOTION events? Is it the problem of the touchscreen which doesn't issue those events or Pygame problem? I tried two different touchscreens (though based on the same chip ADS7846) and they both have the same problem - no FINGERMOTION events in Pygame.

Thanks in advance!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant