Tôi muốn đặt chức năng gọi lại để chạy khi có sự kiện xảy ra trong GPIO. Tôi đang thiết kế một lớp và tôi cũng muốn có phương thức gọi lại bên trong nó. Đây là một đoạn trích của mã:
import RPi.GPIO as gpio
class WheelEncoder:
'Encapsulates the attributes and methods to use a wheel encoder sensor'
inputPin = 0
ticks = 0
def __init__(self, inputPin):
self.inputPin = inputPin
gpio.setmode(gpio.BOARD)
gpio.setup(self.inputPin, gpio.IN, pull_up_down=gpio.PUD_UP)
gpio.add_event_detect(self.inputPin, gpio.RISING, event_callback)
def getTicks(self):
return self.ticks
def resetTicks(self):
self.ticks = 0
def event_callback(channel):
self.ticks += 1
Và đây là đầu ra của việc gọi nó (từ một tệp khác):
Traceback (most recent call last):
File "test-WheelEncoder.py", line 5, in <module>
sensor = WheelEncoder(3, 10, 3)
File "/home/pi/codes/sensors/WheelEncoder.py", line 20, in __init__
gpio.add_event_detect(self.inputPin, gpio.RISING, event_callback)
NameError: global name 'event_callback' is not defined
Tôi không chắc nó có thể là gì.