Beispiel #1
0
def server():
    #definiere variable server_sock
    server_sock = BluetoothSocket(RFCOMM)
    #binde den socket auf irgendeinen Port, Port 1
    server_sock.bind(("", PORT_ANY))
    #warte auf Anfragen
    server_sock.listen(1)

    port = server_sock.getsockname()[1]

    #frei erfundene UUID
    uuid = "94f39d29-7d6d-437d-973b-fba39e49d4aa"

    #publiziere den Service mit UUID
    advertise_service(
        server_sock,
        "LEDTABLE",
        service_id=uuid,
        service_classes=[uuid, SERIAL_PORT_CLASS],
        profiles=[SERIAL_PORT_PROFILE],
        #                   protocols = [ OBEX_UUID ]
    )

    print("Waiting for connection on RFCOMM channel %d" % port)

    #Akzeptiere Verbindung mit Client
    client_sock, client_info = server_sock.accept()
    print("Accepted connection from ", client_info)

    #smiley face
    imgdisp("/home/pi/led/progs10/smiley-happy.png")
    time.sleep(1)
    imgdisp("/home/pi/led/progs10/black.png")

    #try damit falls die Verbindung einbricht die exception aufgerufen wird. Siehe unten
    try:
        while client_sock.getpeername():
            #setze empfangene Strings auf data
            data = client_sock.recv(1024)
            #Falls nichts gesendet wurde, bzw. nur enter gedrückt wurde,
            #bricht die schleife ab
            if len(data) == 0:
                break
            #gebe empfangenen String aus
            print("received [%s]" % data)

            #Command receiving
            if data[0:5] == "TIME ":
                try:
                    print(data[5:30])
                    os.system("sudo date -s '%s'" % data[5:30])
                    #subprocess.Popen(["sudo", "date -s", data[6:29])
                except:
                    pass

            if data == "hsv":
                try:
                    #teste ob ein Prozess bereits am laufen ist
                    #Wenn ja, wird None zurückgegeben
                    if p.poll() == None:
                        print "Can only start one process at a time"
                except:
                    try:
                        #starte den subprocess und speichere ihn unter p
                        p = subprocess.Popen(
                            ["python", "/home/pi/led/progs10/hsv.py"])
                    except:
                        pass

            if data == "a1":
                try:
                    if p.poll() == None:
                        print "Can only start one process at a time"
                except:
                    try:
                        p = subprocess.Popen(
                            ["python", "/home/pi/led/progs10/animation1.py"])
                    except:
                        pass

            if data == "snake":
                try:
                    if p.poll() == None:
                        print "Can only start one process at a time"
                except:
                    try:
                        #starte subprocess mit stdin für data weiterleitung
                        p = subprocess.Popen(
                            ["python", "/home/pi/led/progs10/snake.py"],
                            stdin=subprocess.PIPE)
                        #stuff to communicate
                        while data != "stop":
                            data = client_sock.recv(1024)
                            if len(data) == 0:
                                break
                            #leite data an subprocess weiter
                            p.stdin.write(data + "\n")
                            p.stdin.flush()

                    except:
                        pass

            if data == "chess":
                try:
                    if p.poll() == None:
                        print "Can only start one process at a time"
                except:
                    try:
                        #starte subprocess mit stdin für data weiterleitung
                        p = subprocess.Popen(
                            ["python", "/home/pi/led/progs10/chess.py"],
                            stdin=subprocess.PIPE)
                        #stuff to communicate
                        while data != "stop":
                            data = client_sock.recv(1024)
                            if len(data) == 0:
                                break
                            #leite data an subprocess weiter
                            p.stdin.write(data + "\n")
                            p.stdin.flush()

                    except:
                        pass

            if data == "tetris":
                try:
                    if p.poll() == None:
                        print "Can only start one process at a time"
                except:
                    try:
                        #starte subprocess mit stdin für data weiterleitung
                        p = subprocess.Popen(
                            ["python", "/home/pi/led/progs10/tetris.py"],
                            stdin=subprocess.PIPE)
                        #stuff to communicate
                        while data != "stop":
                            data = client_sock.recv(1024)
                            if len(data) == 0:
                                break
                            #leite data an subprocess weiter
                            p.stdin.write(data + "\n")
                            p.stdin.flush()

                    except:
                        pass

            if data == "scrollText":
                try:
                    if p.poll() == None:
                        print "Can only start one process at a time"
                except:
                    try:
                        #starte subprocess mit stdin für data weiterleitung
                        p = subprocess.Popen(
                            ["python", "/home/pi/led/progs10/scrollText.py"],
                            stdin=subprocess.PIPE)
                        #stuff to communicate
                        while data != "stop":
                            data = client_sock.recv(1024)
                            #if len(data) == 0:
                            #	break
                            #leite data an subprocess weiter
                            p.stdin.write(data + "\n")
                            p.stdin.flush()

                    except:
                        pass

            if data == "color":
                try:
                    if p.poll() == None:
                        print "Can only start one process at a time"
                except:
                    try:
                        #starting subprocess with stdin
                        p = subprocess.Popen(
                            ["python", "/home/pi/led/progs10/color.py"],
                            stdin=subprocess.PIPE)
                        #stuff to communicate
                        while data != "stop":
                            data = client_sock.recv(1024)
                            if len(data) == 0:
                                break
                            p.stdin.write(data + "\n")
                            p.stdin.flush()

                    except:
                        pass

            #Clocks

            if data == ("binClock"):
                try:
                    if p.poll() == None:
                        print "Can only start one process at a time"
                except:
                    try:
                        #starte den subprocess und speichere ihn unter p
                        p = subprocess.Popen([
                            "python", "/home/pi/led/progs10/Clock.py",
                            "binClock"
                        ])
                    except:
                        pass
            if data == ("digClock"):
                try:
                    if p.poll() == None:
                        print "Can only start one process at a time"
                except:
                    try:
                        #starte den subprocess und speichere ihn unter p
                        p = subprocess.Popen([
                            "python", "/home/pi/led/progs10/Clock.py",
                            "digClock"
                        ])
                    except:
                        pass

            if data == ("analogClock"):
                try:
                    if p.poll() == None:
                        print "Can only start one process at a time"
                except:
                    try:
                        #starte den subprocess und speichere ihn unter p
                        p = subprocess.Popen([
                            "python", "/home/pi/led/progs10/Clock.py",
                            "analogClock"
                        ])
                    except:
                        pass

            if data == ("scrollClock"):
                try:
                    if p.poll() == None:
                        print "Can only start one process at a time"
                except:
                    try:
                        #starte den subprocess und speichere ihn unter p
                        p = subprocess.Popen([
                            "python", "/home/pi/led/progs10/Clock.py",
                            "scrollClock"
                        ])
                    except:
                        pass

            if data == "black":
                try:
                    subprocess.Popen(
                        ["python", "/home/pi/led/progs10/PiLed.py", "black"])
                except:
                    pass

            if data == "smileyHappy":
                try:
                    imgdisp("/home/pi/led/progs10/smiley-happy.png")
                except:
                    pass

            if data == "smileySad":
                try:
                    imgdisp("/home/pi/led/progs10/smiley-sad.png")
                except:
                    pass

            if data == "stop":
                try:
                    p.kill()
                    p = 0
                    print "Process terminated"
                except:
                    print "Unable to stop process"

    except IOError:
        # server Schleige abgebrochen. Stoppe laufenden Prozess zur Sicherheit.
        try:
            p.kill()
        except:
            pass

        pass

    #sad smiley face
    imgdisp("/home/pi/led/progs10/smiley-sad.png")
    time.sleep(1)
    imgdisp("/home/pi/led/progs10/black.png")
    print("disconnected")

    #schliesse client und server socket
    client_sock.close()
    server_sock.close()
    print("all done")
Beispiel #2
0
#!/usr/bin/env python
#coding: utf8
from imgdisp import imgdisp
import time
import sys

#via commandline argument ist es möglich
#die geschwindigkeit anzupass
if len(sys.argv) > 1:
    s = float(sys.argv[1])
else:
    #10 Bilder pro Sekunde
    s = 0.1

while True:
    for i in range(2, 92):
        file = "/home/pi/led/progs10/img/animation1/%d.png" % (i)
        imgdisp(file)
        time.sleep(s)
Beispiel #3
0

while True:
	while checkCol != True:
		time.sleep(0.25)
		clearMatrix()
		checkInput()
		setMatrix()
		display()
		
		if checkCol() == True:
			print "Game Over"
			#spiele GameOver Animation ab
			for i in range(0, 11):
				file = "/home/pi/led/progs10/img/gameover/%d.png" %(i)
				imgdisp(file)
				time.sleep(0.05)
			os.system("python /home/pi/led/progs10/scrollText.py %d 0.1 [0,255,0] 1" % len(data.parts) )
			break
			
		move()
		tail()
		checkPoint()
		
	dataReset()
	
	
		
	
	
	
Beispiel #4
0
def server():
	#definiere variable server_sock
	server_sock=BluetoothSocket( RFCOMM )
	#binde den socket auf irgendeinen Port, Port 1
	server_sock.bind(("",PORT_ANY))
	#warte auf Anfragen
	server_sock.listen(1)

	port = server_sock.getsockname()[1]
	
	#frei erfundene UUID
	uuid = "94f39d29-7d6d-437d-973b-fba39e49d4aa"

	#publiziere den Service mit UUID
	advertise_service( server_sock, "LEDTABLE",
					   service_id = uuid,
					   service_classes = [ uuid, SERIAL_PORT_CLASS ],
					   profiles = [ SERIAL_PORT_PROFILE ], 
	#                   protocols = [ OBEX_UUID ] 
						)
					   
	print("Waiting for connection on RFCOMM channel %d" % port)

	#Akzeptiere Verbindung mit Client
	client_sock, client_info = server_sock.accept()
	print("Accepted connection from ", client_info)
	
	#smiley face
	imgdisp("/home/pi/led/progs10/smiley-happy.png")
	time.sleep(1)
	imgdisp("/home/pi/led/progs10/black.png")
		

#try damit falls die Verbindung einbricht die exception aufgerufen wird. Siehe unten
	try:
		while True:
			#setze empfangene Strings auf data
			data = client_sock.recv(1024)
			#Falls nichts gesendet wurde, bzw. nur enter gedrückt wurde,
			#bricht die schleife ab
			if len(data) == 0: 
				break
			#gebe empfangenen String aus
			print("received [%s]" % data)
			
			#Command receiving
			if data[0:5] == "TIME ":
				try:
					print(data[5:30])
					os.system("sudo date -s '%s'" % data[5:30])
					#subprocess.Popen(["sudo", "date -s", data[6:29])
				except:
					pass

				
			if data == "hsv":
				try:
					#teste ob ein Prozess bereits am laufen ist
					#Wenn ja, wird None zurückgegeben
					if p.poll() == None:
						print "Can only start one process at a time"
				except:	
					try:
						#starte den subprocess und speichere ihn unter p
						p = subprocess.Popen(["python", "/home/pi/led/progs10/hsv.py"])
					except:
						pass
					
			if data == "a1":
				try:
					if p.poll() == None:
						print "Can only start one process at a time"
				except:	
					try:
						p = subprocess.Popen(["python", "/home/pi/led/progs10/animation1.py"])
					except:
						pass
			
						
			if data == "snake":
				try:
					if p.poll() == None:
						print "Can only start one process at a time"
				except:
					try:
						#starte subprocess mit stdin für data weiterleitung
						p = subprocess.Popen(["python", "/home/pi/led/progs10/snake.py"], stdin=subprocess.PIPE)
						#stuff to communicate
						while data != "stop":
							data = client_sock.recv(1024)
							if len(data) == 0: 
								break
							#leite data an subprocess weiter
							p.stdin.write(data + "\n")
							p.stdin.flush()
							
					except:
						pass


			if data == "tetris":
				try:
					if p.poll() == None:
						print "Can only start one process at a time"
				except:
					try:
						#starte subprocess mit stdin für data weiterleitung
						p = subprocess.Popen(["python", "/home/pi/led/progs10/tetris.py"], stdin=subprocess.PIPE)
						#stuff to communicate
						while data != "stop":
							data = client_sock.recv(1024)
							if len(data) == 0: 
								break
							#leite data an subprocess weiter
							p.stdin.write(data + "\n")
							p.stdin.flush()
							
					except:
						pass


			if data == "scrollText":
				try:
					if p.poll() == None:
						print "Can only start one process at a time"
				except:
					try:
						#starte subprocess mit stdin für data weiterleitung
						p = subprocess.Popen(["python", "/home/pi/led/progs10/scrollText.py"], stdin=subprocess.PIPE)
						#stuff to communicate
						while data != "stop":
							data = client_sock.recv(1024)
							#if len(data) == 0: 
							#	break
							#leite data an subprocess weiter
							p.stdin.write(data + "\n")
							p.stdin.flush()
							
					except:
						pass
						
						
			if data == "color":
				try:
					if p.poll() == None:
						print "Can only start one process at a time"
				except:
					try:
						#starting subprocess with stdin
						p = subprocess.Popen(["python", "/home/pi/led/progs10/color.py"], stdin=subprocess.PIPE)
						#stuff to communicate
						while data != "stop":
							data = client_sock.recv(1024)
							if len(data) == 0: 
								break
							p.stdin.write(data + "\n")
							p.stdin.flush()
							
					except:
						pass


			#Clocks			
						
			if data == ("binClock"):
				try:
					if p.poll() == None:
						print "Can only start one process at a time"
				except:	
					try:
						#starte den subprocess und speichere ihn unter p
						p = subprocess.Popen(["python", "/home/pi/led/progs10/Clock.py", "binClock"])
					except:
						pass	
			if data == ("digClock"):
				try:
					if p.poll() == None:
						print "Can only start one process at a time"
				except:	
					try:
						#starte den subprocess und speichere ihn unter p
						p = subprocess.Popen(["python", "/home/pi/led/progs10/Clock.py", "digClock"])
					except:
						pass	

			if data == ("analogClock"):
				try:
					if p.poll() == None:
						print "Can only start one process at a time"
				except:	
					try:
						#starte den subprocess und speichere ihn unter p
						p = subprocess.Popen(["python", "/home/pi/led/progs10/Clock.py", "analogClock"])
					except:
						pass	

			if data == ("scrollClock"):
				try:
					if p.poll() == None:
						print "Can only start one process at a time"
				except:	
					try:
						#starte den subprocess und speichere ihn unter p
						p = subprocess.Popen(["python", "/home/pi/led/progs10/Clock.py", "scrollClock"])
					except:
						pass	




			


			if data == "black":
				try:
					subprocess.Popen(["python", "/home/pi/led/progs10/PiLed.py", "black"])
				except:
					pass
			
			if data == "smileyHappy":
				try:
					imgdisp("/home/pi/led/progs10/smiley-happy.png")
				except:
					pass
					
			if data == "smileySad":
				try:
					imgdisp("/home/pi/led/progs10/smiley-sad.png")
				except:
					pass
			
							
				
			if data == "stop":
				try:	
					p.kill()
					p = 0
					print "Process terminated"
				except:
					print "Unable to stop process"
					
	except IOError:
	# server Schleige abgebrochen. Stoppe laufenden Prozess zur Sicherheit.
		try:
			p.kill()
		except:
			pass
			
		#sad smiley face
		imgdisp("/home/pi/led/progs10/smiley-sad.png")
		time.sleep(1)
		imgdisp("/home/pi/led/progs10/black.png")
		pass
			
	print("disconnected")

	#schliesse client und server socket
	client_sock.close()
	server_sock.close()
	print("all done")