from machine import Pin
import time

ledR = Pin(9, Pin.OUT)

def init_LAM_C():
    LETTRE_A_MORSE_C = {
        'A': '.', 'B': '..', 'C': '...', 'D': '....', 'E': '.....', 'F': '-',
        'G': '-.', 'H': '-..', 'I': '-...', 'J': '-....', 'K': '-.....', 'L': '--',
        'M': '--.', 'N': '--..', 'O': '--...', 'P': '--....', 'Q': '--.....', 'R': '---',
        'S': '---.', 'T': '---..', 'U': '---...', 'V': '---....', 'W': '---.....', 'X': '----',
        'Y': '----.', 'Z': '----..', '1': '----...', '2': '----....', '3': '----.....', '4': '-----', 
        '5': '-----.', '6': '-----..', '7': '-----...', '8': '-----....', '9': '-----.....', '0': '------',
        ',': '------.', '.': '------..', '?': '------...', "'": '------....', '!': '------.....',
        '/': '-------', '(': '-------.', ')': '-------..', '&': '-------...', ':': '-------....', 
        ';': '-------.....', '=': '--------', '+': '--------.', '-': '--------..', '_': '--------...',
        '"': '--------....', '$': '--------.....', '@': '---------'
    }
    return LETTRE_A_MORSE_C

def init_LAM():
    LETTRE_A_MORSE = {
        'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.',
        'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..',
        'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.',
        'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',
        'Y': '-.--', 'Z': '--..', '1': '.----', '2': '..---', '3': '...--', '4': '....-', 
        '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.', '0': '-----',
        ',': '--..--', '.': '.-.-.-', '?': '..--..', "'": '.----.', '!': '-.-.--',
        '/': '-..-.', '(': '-.--.', ')': '-.--.-', '&': '.-...', ':': '---...', 
        ';': '-.-.-.', '=': '-...-', '+': '.-.-.', '-': '-....-', '_': '..--.-',
        '"': '.-..-.', '$': '...-..-', '@': '.--.-.'
    }
    return LETTRE_A_MORSE

def lettre_morse(message,LAM):
    return ' '.join(LAM[char.upper()] for char in message if char.upper() in LAM)

def entree_msg():
    print("Veuillez saisir un message :")
    message = input()
    return message

def allumer_led(duree):
    ledR.on()
    time.sleep(duree)
    ledR.off()
    time.sleep(0.5)

def main():
    continu = "oui"
    while True:
        if continu == "oui":
            choix = int(input("Voulez vous du morse custom(1) ou du morse normal(0) ? : "))
            if choix == 0:
                LAM = init_LAM()
            elif choix == 1:
                LAM = init_LAM_C()
            else:
                print("ERROR")
            message = entree_msg()
            msg = lettre_morse(message,LAM)
            print(msg)
            for symbole in msg:
                if symbole == ".":
                    allumer_led(0.5)  
                elif symbole == "-":
                    allumer_led(1) 
                elif symbole == " ":
                    time.sleep(1.5)
            print("Veuillez saisir non pour arrêter ou oui pour continuer :")
            continu = input()
        else:
            break

if __name__ == "__main__":
    main()