cl.Magenta
Дек. 2, 2023 16:31:34
Здравствуйте.
У меня есть небольшой скрипт, который не я писал, для чтения файла 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')
Но не работает.
ZerG
Дек. 2, 2023 16:56:40
Давайте для начала убедимся что там вам что-то приходит
print(f"{type(event.value)} : {event.value}")
cl.Magenta
Дек. 2, 2023 18:58:31
<class ‘int’> : 1043
… и так далее.
cl.Magenta
Дек. 2, 2023 19:53:55
Приблизительно я конечно понимаю, что проблема в том, что так сравнивать их нельзя, но как реализовать…
ZerG
Дек. 2, 2023 20:07:43
тогда все правильно
if event.value >= 1050:
print("Olololo")
cl.Magenta
Дек. 2, 2023 20:22:22
Спасибо. Хотя я думал, буде сложнее.
А вы не могли бы в паре слов пояснить – почему?
ZerG
Дек. 2, 2023 21:37:12
Почему что???
cl.Magenta
Дек. 2, 2023 21:43:54
Почему не достаточно указать больше ( > ) какого-то значения: почему надо указывать больше или равно?
ZerG
Дек. 2, 2023 22:17:39
потому что 1050 = 1050 - то есть оно не меньше и не больше
Если мы хотим обрабатывать такое значение то нужно либо использовать > или =
или > 1049