質問

Pythonパッケージのwait_for_edge関数で立ち往生しています rpi 。 私はGPIOの転倒のための複数のイベント検出を追加し、コールバック関数がコマンドではなく

のようなコマンドではない限り、すべてがうまく機能しました。
 os.system("mpc pause") 
.

その後、スクリプトはエラーメッセージでクラッシュします。 "runetimeError:エラー#5待機中のエラー#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()
.

ポートボタンストップに接続しているボタンを押した後にクラッシュします。

役に立ちましたか?

解決

スーパーハッキーですが、OS.System Callの直後に、イベントを解除してから直後に再バインドされた場合は、機能しているようです。

def next(channel):
    print "In next"
    os.system("mpc next")
    GPIO.remove_event_detect(buttonnext)
    GPIO.add_event_detect(buttonnext,GP.FALLING,callback=next,bouncetime=200)
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top