Форум сайта python.su
Здравствуйте.
У меня есть небольшой скрипт, который не я писал, для чтения файла event тачскрина, в который передаются координаты:
#!/usr/bin/python3
import os
import evdev
for event in evdev.InputDevice('/home/.DEVFINGER').read_loop():
if event.code == evdev.ecodes.ABS_MT_SLOT and event.value == 0x01:
os.system('echo RUN')
Мне нужно как-то определить когда координата касания превышает определенное значение. Координату evtest выдает следующим образом:
code 54 (ABS_MT_POSITION_Y), value 1153
Я пробовал это сделать так:
elif event.code == evdev.ecodes.ABS_MT_POSITION_Y and event.value > 1150:
os.system('echo OK')
Но не работает.
Отредактировано cl.Magenta (Дек. 2, 2023 16:33:51)
Офлайн
Давайте для начала убедимся что там вам что-то приходит
print(f"{type(event.value)} : {event.value}")
Офлайн
<class ‘int’> : 1043
… и так далее.
Офлайн
Приблизительно я конечно понимаю, что проблема в том, что так сравнивать их нельзя, но как реализовать…
Офлайн
тогда все правильно
if event.value >= 1050: print("Olololo")
Офлайн
Спасибо. Хотя я думал, буде сложнее.
А вы не могли бы в паре слов пояснить – почему?
Офлайн
Почему что???
Офлайн
Почему не достаточно указать больше ( > ) какого-то значения: почему надо указывать больше или равно?
Офлайн
потому что 1050 = 1050 - то есть оно не меньше и не больше
Если мы хотим обрабатывать такое значение то нужно либо использовать > или =
или > 1049
Офлайн