import gi
import serial, time
import os

gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

os.system('clear')

ser = serial.Serial(
    port='/dev/ttyUSB0',
    baudrate=9600,
)

print(ser.name)

ser.isOpen()
time.sleep(1)

class ButtonWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title="Comm Software")
        self.set_border_width(20)
        hbox = Gtk.Box(spacing=20)
        self.add(hbox)

        button = Gtk.Button.new_with_label("Fade IN")
        button.connect("clicked", self.on_fade_in_clicked)
        hbox.pack_start(button, True, True, 0)

        button = Gtk.Button.new_with_label("Fade OUT")
        button.connect("clicked", self.on_fade_out_clicked)
        hbox.pack_start(button, True, True, 0)

        button = Gtk.Button.new_with_mnemonic("_Close")
        button.connect("clicked", self.on_close_clicked)
        hbox.pack_start(button, True, True, 0)

    def on_fade_in_clicked(self, button):
        print("Local software: \"Fade IN\" button was clicked")
        serialcmd = "dim_set:+;"
        ser.write(serialcmd.encode())
        time.sleep(1)
        data_raw = ser.readline()
        print(data_raw.decode())

    def on_fade_out_clicked(self, button):
        print("Local software: \"Fade OUT\" button was clicked")
        serialcmd = "dim_set:-;"
        ser.write(serialcmd.encode())
        time.sleep(1)
        data_raw = ser.readline()
        print(data_raw.decode())

    def on_close_clicked(self, button):
        print("Local software: Closing application")
        serialcmd = "dim_set:0;"
        ser.write(serialcmd.encode())
        time.sleep(1)
        data_raw = ser.readline()
        print(data_raw.decode())
        ser.close()
        Gtk.main_quit()

win = ButtonWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
