async def METHOD_NAME(dev: hci_commands.HCI_Commands):
    result = tuple()
    task = asyncio.create_task(dev.rx_buffer_q_wait())
    await dev.cmd_reset()
    await dev.cmd_read_bd_addr()
    if hci.bdaddr != '00:00:00:00:00:00':
        logging.info("Type public: %s, address: %s",
                     hci.PUBLIC_ADDRESS_TYPE, hci.bdaddr)
        result = (0, hci.bdaddr)
        print("Public address: ", result)
    else:
        await dev.cmd_vs_read_static_addr()
        if hci.static_addr != '00:00:00:00:00:00':
            logging.info("Type static random: %s, address: %s",
                         hci.STATIC_RANDOM_ADDRESS_TYPE, hci.static_addr)
            result = (1, hci.static_addr)
            print("Static random address: ", result)
        else:
            addr = hci.gen_static_rand_addr()
            logging.info("Type static random: %s, generated address: %s",
                         hci.STATIC_RANDOM_ADDRESS_TYPE, addr)
            result = (1, addr)
            print("Generated static random address: ", result)
    task.cancel()
    return result