from machine import Pin, I2C
from pico_i2c_lcd import I2cLcd
from time import sleep
from keyPadFunction import scan_keypads, get_full_key_name
from filterkey import filter_operand

i2c = I2C(0, sda=Pin(20), scl=Pin(21), freq=400000)

I2C_ADDRESS = i2c.scan()[0]

lcd = I2cLcd(i2c, I2C_ADDRESS, 4, 20)
keypressed = ""
while True :
  key = scan_keypads()

  if key is not None :
    value = get_full_key_name(key)
    if value == "A":
        if len(keypressed) > 0 and keypressed[-1] not in [" ", "+", "-", "/", "*"] :
            keypressed += " + "
    elif value == "B":
        if len(keypressed) > 0 and keypressed[-1] not in [" ", "+", "-", "/", "*"] :
            keypressed += " - "
    elif value == "D":
         if len(keypressed) > 0 and keypressed[-1] not in [" ", "+", "-", "/", "*"] :
            keypressed += " / "
    elif value == "*":
         if len(keypressed) > 0 and keypressed[-1] not in [" ", "+", "-", "/", "*"] :
            keypressed += " * "
    elif value == "#" :
        if len(keypressed) > 0 and any(c in keypressed for c in {"+", "-", "/", "*"}) :
            lcd.move_to(cursor_x=0, cursor_y=3)
            lcd.putchar(" ")
            lcd.putstr(f"{eval(keypressed)}")
        else :
            lcd.move_to(cursor_x=0, cursor_y=3)
            lcd.putchar(" ")
            lcd.putstr(f"{keypressed}")
    elif value == "C" :
        if len(keypressed) > 0 :
            keypressed = keypressed[0:len(keypressed) -1]
            lcd.move_to(cursor_x = len(keypressed), cursor_y = 0)
            lcd.putchar(" ")
    else :
        keypressed += value
    lcd.move_to(cursor_x=0, cursor_y=0)
    for x in range(len(keypressed)) :
        lcd.putstr("")
    lcd.putstr(keypressed)


  sleep(0.01)
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT