from RP2040_Slave import i2c_slave

I2C_ADDR = 8

i2c = i2c_slave(i2cID=1, sda=6, scl=7, slaveAddress=I2C_ADDR)

try:
    received = ''
    response = 42

    while True:
        state = i2c.handle_event()

        if state == i2c.I2CStateMachine.I2C_START:
            pass

        if state == i2c.I2CStateMachine.I2C_RECEIVE:
            while (i2c.Available()):
                received += chr(i2c.Read_Data_Received())

        if state == i2c.I2CStateMachine.I2C_REQUEST:
            while (i2c.is_Master_Req_Read()):
                i2c.Slave_Write_Data(response)

        if state == i2c.I2CStateMachine.I2C_FINISH:
            print("received:", received)
            print("response:", response)
            print()

            received = ''

finally:
    # need this to release pins when script is stopped
    i2c.deinit()
