Я застрял с функцией wait_for_edge в пакете Python RPi . Я добавил несколько обнаружений событий для падения gpio, и все работает нормально, пока функции обратного вызова не содержат команду, подобную
os.system("mpc pause")
Затем скрипт вылетает с сообщением об ошибке: «RunetimeError: Ошибка № 5 в ожидании края». Кто-нибудь знает, что хочет сказать это сообщение об ошибке? Или где я могу посмотреть такие вещи?
Чтобы быть конкретным, этот код работает:
def next(channel):
print "In next"
GPIO.add_event_detect(buttonnext,GP.FALLING,callback=next,bouncetime=200)
os.system("mpc play")
try:
GPIO.wait_for_edge(buttonstop, GP.FALLING)
os.system("mpc stop")
except KeyboardInterrupt:
GPIO.cleanup()
os.system("mpc stop")
GPIO.cleanup()
Но этот код не:
def next(channel):
print "In next"
os.system("mpc next")
GPIO.add_event_detect(buttonnext,GP.FALLING,callback=next,bouncetime=200)
os.system("mpc play")
try:
GPIO.wait_for_edge(buttonstop, GP.FALLING)
os.system("mpc stop")
except KeyboardInterrupt:
GPIO.cleanup()
os.system("mpc stop")
GPIO.cleanup()
Вылетает после нажатия кнопки подключенной к порту кнопки стоп.