Как я могу вернуть значения ABS_X, ABS_Y с сенсорного устройства HID в python с помощью evdev? - PullRequest
0 голосов
/ 04 декабря 2018

В следующем фрагменте кода я могу отправить значения, которые я хочу, на последовательную консоль.Но мне нужно хранить их в 2 x, y переменных и возвращать их в результате функции.Если я присваиваю e.value s на лету созданную переменную x как x = e.value и так далее в течение секунды, если блок с y и попытаться return x,y в конце.Я сталкиваюсь с ошибками.

Я имею в виду, если я добавляю закомментированные строки, я сталкиваюсь с ошибками.Что не так?

Как я могу привести e.value s к целому числу или строке, передать другой функции и безупречно использовать ее повторно?

import serial
import libevdev
def serialHandler():
    ser = serial.Serial(
        port = '/dev/ttyS0',
        baudrate = 115200,
        parity = serial.PARITY_NONE,
        stopbits = serial.STOPBITS_ONE,
        bytesize = serial.EIGHTBITS,
        timeout = 0
    )

    fd = open ('/dev/input/event0', 'rb')
    d = libevdev.Device(fd)
    if not d.has(libevdev.EV_ABS.ABS_X):
        print('This is not your touch device.')
        sys.exit(0)
    while True:

        for e in d.events():
            if e.matches(libevdev.EV_ABS):
                if e.matches(libevdev.EV_ABS.ABS_X):
                    ser.write(bytes("ABSOLUTE X {}\n".format(e.value),encoding='utf-8'))
                    #x = e.value

                if e.matches(libevdev.EV_ABS.ABS_Y):
                    ser.write(bytes("ABSOLUTE Y {}\n".format(e.value),encoding='utf-8'))
                    #y = e.value

                #return x, y
#anotherFunc(serialHandler())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...