Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from subprocess import Popen
- import time
- from pynput import keyboard
- import blinkt
- import os
- import colorama
- colorama.init()
- p = ...
- nr_wyboru = 0
- #Numer do Wybrania, Sciezka do Pliku, Jak ma sie nazywac w menu
- switcher = {
- 1:['examples/candle', 'Swieczka'],
- 2:['examples/1d_tetris', 'Tetris'],
- 3:['examples/binary_clock', 'Zegar Binarny'],
- 4:['examples/gradient_graph', 'Wykres'],
- 5:['examples/pulse', 'Pulsowanie'],
- 6:['examples/rainbow', 'Tecza'],
- 7:['examples/solid_colours', 'Kolory']
- }
- #Wybor Mozliwych Trybow
- def tryby(klawisz):
- return switcher.get(klawisz,False)
- def showMenu():
- global nr_wyboru
- for item in switcher:
- if item == nr_wyboru:
- wybor = colorama.Fore.GREEN + "{}. {}{}".format(item, switcher[item][1], colorama.Fore.RESET)
- else:
- wybor = "{}. {}".format(item, switcher[item][1])
- print(wybor)
- print(colorama.Style.DIM + colorama.Fore.WHITE + "Wcisnij ESC, aby wyjsc" + colorama.Fore.RESET + colorama.Style.BRIGHT)
- print( "-" * 40 + colorama.Fore.WHITE)
- #Wyczysz LED-y przed wlaczeniem nowego skryptu
- def wyczysc():
- os.system('clear')
- for i in range(8):
- blinkt.clear()
- blinkt.show()
- #Sprawdz czy nie dziala juz jeden skrypt, jesli tak to go wylacz
- def sprawdz():
- try:
- if p.poll() == None:
- p.terminate()
- except:
- pass
- wyczysc()
- def on_release(key):
- global p, nr_wyboru
- sprawdz()
- #zakoncczenie programu
- if key == keyboard.Key.esc:
- return False
- try:
- #print(int(key.char), type(int(key.char)))
- trybLED = tryby(int(key.char))[0]
- if trybLED != None:
- nr_wyboru = int(key.char)
- p = Popen(['python', '{}.py'.format(trybLED)])
- #print(tryby(int(key.char)))
- except:
- nr_wyboru = 0
- print(colorama.Back.RED + "Nieprawidlowy wybor" + colorama.Back.RESET)
- #sprawdz()
- showMenu()
- print(colorama.Style.BRIGHT)
- os.system('clear')
- wyczysc()
- showMenu()
- with keyboard.Listener(on_release=on_release) as listener:
- listener.join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement