Ich möchte eine Rückruffunktion festlegen, die ausgeführt wird, wenn ein Ereignis in einem GPIO auftritt. Ich entwerfe eine Klasse und möchte auch die Rückrufmethode darin haben. Hier ist ein Auszug aus dem Code:
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
Und hier ist die Ausgabe des Aufrufs (aus einer anderen Datei):
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
Ich bin mir nicht sicher, was es sein könnte.