ラズベリーパイのGPIOポートと通信するバックグラウンドでいくつかの追加コードを実行しながら、Webアドレス(この場合はビデオストリーム)を含むGUIウィンドウを作成しようとしています。私は、ウィンドウが動作するようにすることができますが、バックグラウンドコードは、ウィンドウが閉じられたときにのみ開始します。または、コードの順序を逆にすると、GPIOコードはウィンドウが開いているときに機能しなくなります。ここにいくつかのコード例があります。あなたウィンドウを閉じるまでPythonでgtkウィンドウを作成する方法と、バックグラウンドでコードを実行する方法はありますか?
import gtk
import webkit
import gobject
import RPi.GPIO as GPIO
from time import sleep
import os
ip = raw_input("Enter the last 3 digits of IP address: ")
awesome = "http://192.168.0." + ip + ":9090/stream"
print awesome
os.system("sudo uv4l -nopreview --auto-video_nr --driver raspicam --encoding mjpeg --width 640 --height 480 --framerate 30 --server-option '--port=9090' --server-option '--max-queued-connections=30' --server-option '--max-streams=25' --server-option '--max-threads=29'")
gobject.threads_init()
win = gtk.Window()
win.connect('destroy', lambda w: gtk.main_quit())
bro = webkit.WebView()
bro.open(awesome)
win.add(bro)
win.show_all()
gtk.main()
GPIO.setmode(GPIO.BOARD)
GPIO.setup(38, GPIO.OUT)
GPIO.setup(40, GPIO.OUT)
GPIO.setup(37, GPIO.OUT)
GPIO.setup(35, GPIO.OUT)
GPIO.output(38, GPIO.HIGH)
GPIO.output(40, GPIO.LOW)
GPIO.output(37, GPIO.LOW)
GPIO.output(35, GPIO.HIGH)
sleep(2)
ありがとうございました。完全に機能しました。 –