использование curses.nodelay (True) на raspberry pi приводит к следующей ошибке: AttribureError: у объекта 'module' нет атрибута 'nodelay' - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь сделать так, чтобы при нажатии клавиши на моей клавиатуре (в данном случае «а») загорелся светодиод, а затем сразу же погас, когда я отпущу эту клавишу. Это работает, если я использую halfdelay ([номер 1-5]), но не так, как мне бы хотелось. Использование 1 выключает светодиод почти сразу после того, как я отпущу клавишу, но в начале наблюдается раздражающее мерцание (светодиод включается на долю секунды, выключается на несколько десятых секунды, а затем остается включенным). непрерывно). Если я использую 5, мерцание исчезает, но светодиод остается включенным в течение половины секунды после того, как я отпущу клавишу. Использование 2, 3 или 4 похоже на слайдер, а 2 ведет себя в основном как 1 и немного похоже на 5.

Очевидно, использование nodelay должно решить эту проблему за счет вычислительной мощности, но это не работает дляя вообще даю ошибку:

AttributeError: 'module' object has no attribute 'nodelay'

вот мой код:

import curses
import RPi.GPIO as GPIO

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12,GPIO.OUT)

screen = curses.initscr()
curses.noecho()
curses.nodelay(3)
screen.keypad(True)

screen.keypad(True)

try:
    while True:

        char = screen.getch()
        print char
        if char == ord('q'):
            break
        elif char == ord('a'):
            GPIO.output(12,True)

        else:
            GPIO.output(12,False)

finally:
    curses.nocbreak();screen.keypad(0);curses.echo()
    curses.endwin()
    GPIO.cleanup()```

1 Ответ

0 голосов
/ 30 сентября 2019

nodelay не является функцией curses на уровне модуля;он принадлежит WindowObject с.

Попробуйте screen.nodelay().

...