Найти - Пользователи
Полная версия: чтение структуры из /dev/input/event*
Начало » Python для новичков » чтение структуры из /dev/input/event*
1
cl.Magenta
Здравствуйте.
У меня есть небольшой скрипт, который не я писал, для чтения файла 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
Давайте для начала убедимся что там вам что-то приходит
 print(f"{type(event.value)} : {event.value}")
cl.Magenta
<class ‘int’> : 1043
… и так далее.
cl.Magenta
Приблизительно я конечно понимаю, что проблема в том, что так сравнивать их нельзя, но как реализовать…
ZerG
тогда все правильно
 if event.value >= 1050:
    print("Olololo")
cl.Magenta
Спасибо. Хотя я думал, буде сложнее.

А вы не могли бы в паре слов пояснить – почему?
ZerG
Почему что???
cl.Magenta
Почему не достаточно указать больше ( > ) какого-то значения: почему надо указывать больше или равно?
ZerG
потому что 1050 = 1050 - то есть оно не меньше и не больше
Если мы хотим обрабатывать такое значение то нужно либо использовать > или =
или > 1049
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB