from tkinter import *
from tkinter import ttk
import serial
import time

ser = serial.Serial('COM9', 9600)
root = Tk()
is_on = True

class aplication(ttk.Frame):
    def __init__(self, parent):
        super().__init__(parent)

        self.etiq_estado_led = ttk.Label(parent, text="Estado del LED: n/a")
        self.etiq_estado_led.place(x=20, y=20)

        self.boton_on_off = ttk.Button(parent, text="On/Off", command=self.encender_led)
        self.boton_on_off.place(x=20, y=60)

        self.etiq_estado_potenciometro = ttk.Label(parent, text="Lectura del potenciometro: n/a")
        self.etiq_estado_potenciometro.place(x=20, y=120)

        self.boton_actualizar = ttk.Button(parent, text="Actualizar", command=self.actualizar_info)
        self.boton_actualizar.place(x=20, y=160)

    def actualizar_info(self):
        global decoded_values
        ser.write(b'M')
        info = ser.readline()
        decoded_values = str(info[0:len(info)].decode("utf-8"))
        x = 0
        while (decoded_values == x):
            info = ser.readline()
            decoded_values = str(info[0:len(info)].decode("utf-8"))

        self.etiq_estado_potenciometro.config(text=f"Lectura del potenciometro: {decoded_values}")

    def encender_led(self):
        global is_on
        if is_on:
            estado = "Encendido"
            time.sleep(0.1)
            ser.write(b'H')
            is_on = False
            self.etiq_estado_led.config(text=f"Estado del LED: {estado}")
        else:
            estado = "Apagado"
            time.sleep(0.1)
            ser.write(b'L')
            is_on = True
            self.etiq_estado_led.config(text=f"Estado del LED: {estado}")

root.title("Interfaz para control de arduino")
root.config(width=400, height=300)
app = aplication(root)
root.mainloop()
