47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
from pythonosc import dispatcher
|
|
from pythonosc import osc_server
|
|
from pythonosc import udp_client
|
|
from playerClass import videoPlayer
|
|
from time import sleep
|
|
import RPi.GPIO as GPIO
|
|
import threading
|
|
|
|
IP = "0.0.0.0"
|
|
PORT = 6060
|
|
OSC_ADDR = ""
|
|
REMOTE_IP = "192.168.21.232"
|
|
REMOTE_PORT = 3030
|
|
SENSOR_PIN = 4
|
|
OSC_SENSOR_ADDR = "/blumen/movement"
|
|
|
|
def readSensor():
|
|
GPIO.setmode(GPIO.BCM)
|
|
GPIO.setup(SENSOR_PIN,GPIO.IN)
|
|
client = udp_client.SimpleUDPClient(REMOTE_IP, REMOTE_PORT)
|
|
pinState = GPIO.input(SENSOR_PIN)
|
|
while True:
|
|
pinStateNew = GPIO.input(SENSOR_PIN)
|
|
if pinStateNew != pinState :
|
|
client.send_message(OSC_SENSOR_ADDR,pinStateNew)
|
|
pinState = pinStateNew
|
|
sleep(0.2)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
thread = threading.Thread(target=readSensor)
|
|
thread.daemon = True
|
|
thread.start()
|
|
player = videoPlayer()
|
|
dispatcher = dispatcher.Dispatcher()
|
|
dispatcher.map(OSC_ADDR + "/play", player.play)
|
|
dispatcher.map(OSC_ADDR + "/togglePause", player.togglePause)
|
|
dispatcher.map(OSC_ADDR + "/pause", player.setPause)
|
|
dispatcher.map(OSC_ADDR + "/stop", player.stop)
|
|
dispatcher.map(OSC_ADDR + "/loop", player.setLoop)
|
|
dispatcher.map(OSC_ADDR + "/setVolume", player.setVolume)
|
|
server = osc_server.ThreadingOSCUDPServer((IP, PORT), dispatcher)
|
|
print("Serving on {}".format(server.server_address))
|
|
server.serve_forever()
|
|
|
|
|