Shuttersteuerung V0.9 CLI

Zunächst habe ich nur eine kleine "Machbarkeitsstudie" geschrieben. Ohne grafisches Interface oder irgendwelchen Schnickschnack.
Die Ausgaben erfolgen auf der Kommandozeile. Ich habe den Code ausgiebig kommentiert und hoffe es ist soweit verständlich was ich mir dabei gedacht habe.

Ableton Live muss entweder F8 oder G8 senden um den Shutter zu öffnen oder zu schließen. 

Bei Proben hat sich schnell gezeigt, dass dieser Ansatz zuverlässig funktioniert. Allerdings habe ich auch sehr schnell eine Statusanzeige vermisst, die mich darüber informiert welchen Status der Shutter gerade hat.

Weiter zur grafischen Oberfläche.
from pygame import midi
import socket

def midi_decode(key):    #Funktion zur Interpretation der eingehenden MIDI Daten
    
    if key[0] == 144:    #Wenn das eingehende MIDI Kommando ein Note On ist
        s = True
    else:
        s = False
    
    n = key[1]
    return s, n    #Rückgabe ob Note On gesendet wurde und Wert der Note

def shutter(aktion):    #Funktion zur Steuerung des Shutters
    ip = '192.168.20.68'    #IP Adresse des Beamers
    port = 4352    #Port für das PJLink Protokoll
    if aktion == 'zu':    #Nachricht für TCP Paket zusammenstellen
        msg = '%1AVMT 31\r'
    elif aktion == 'auf':
        msg = '%1AVMT 30\r'
    msg = msg.encode('UTF-8')

    s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)   #TCP Verbindung aufbauen, Nachricht senden und Verbindung schließen
    s.connect((ip, port))
    s.send(msg)
    s.close()

#Hauptprogramm

midi.init()    #MIDI Schnittstelle initialisieren
default_id = midi.get_default_input_id()
midi_input = midi.Input(device_id=default_id)

print('Shuttersteuerung aktiv...')
print('Beenden mit CTRL+C')

try:
    while True:    #Endlosschleife bis User CTRL+C drückt
        if midi_input.poll():    #Wenn etwas über die MIDI Schnittstelle empfangen wird
            eingabe = midi_input.read(num_events=16)
            note_on, taste = midi_decode(eingabe[0][0])
            if note_on and taste == 125:    #Wenn ein Note On von F8 empfangen wurde
                shutter('zu')
            if note_on and taste == 127:    #Wenn ein Note On von G8 empfangen wurde
                shutter('auf')
                
except KeyboardInterrupt as err:
    print("Stopping...")