from machine import Pin, I2C
import ssd1306
import utime
import network
import machine
import sdcard
import uos

import menu
import other

# Initialisation ecran
display_pin = I2C(0, scl=Pin(25), sda=Pin(26))
display = ssd1306.SSD1306_I2C(128, 64, display_pin)


# Configuration pin boutons, LED
button_pin1 = Pin(15, Pin.IN, Pin.PULL_UP)
button_pin2 = Pin(22, Pin.IN, Pin.PULL_UP)
button_pin3 = Pin(23, Pin.IN, Pin.PULL_UP)
led_pin = Pin(13, Pin.OUT)


def button3():
    start_time = utime.ticks_ms()
    while button_pin1.value() == 0:
        print(start_time)
        if utime.ticks_diff(utime.ticks_ms(), start_time) >= 5000:
            other.stop(display)

    menu.move_cursor_up(display)


def button2():
    menu.select_option(display)


def button1():
    menu.move_cursor_down(display)


# Configuration boutons
button_pin1.irq(trigger=Pin.IRQ_FALLING, handler=lambda pin: button1())
button_pin2.irq(trigger=Pin.IRQ_FALLING, handler=lambda pin: button2())
button_pin3.irq(trigger=Pin.IRQ_FALLING, handler=lambda pin: button3())




# Initialize SD card
cs = machine.Pin(18, machine.Pin.OUT)
spi = machine.SPI(1,
                  baudrate=1000000,
                  polarity=0,
                  phase=0,
                  bits=8,
                  firstbit=machine.SPI.MSB,
                  sck=machine.Pin(21),
                  mosi=machine.Pin(5),
                  miso=machine.Pin(19))
# sd = sdcard.SDCard(spi, cs)

# Mount filesystem
# vfs = uos.VfsFat(sd)
# uos.mount(vfs, "/sd")

# Create a file and write something to it
# with open("/sd/test01.txt", "w") as file:
    # file.write("Hello, SD World!\r\n")
    # file.write("This is a test\r\n")

# Open the file we just created and read from it
# with open("/sd/test01.txt", "r") as file:
    # data = file.read()
    # print(data)




menu.display_menu(display)
led_pin.value(1)
MPU6050
LED
ESP32
Lecteur Carte micro SD
Ecran 128*64