Fios#

Introdução#

Os threads permitem que o controlador VEX AIR do drone execute várias tarefas em simultâneo dentro do mesmo programa. Possibilitam a multitarefa, permitindo que o drone VEX AIR execute ações independentes ao mesmo tempo.

Nota: Deve primeiro definir uma função para a utilizar com um thread.

Construtor – Cria e inicia novos threads.

  • Thread – Inicia uma nova thread que executa a função especificada em paralelo com o programa principal.

Construtor#

Thread#

Thread cria e inicia uma thread. Ao criar uma thread, pode nomeá-la para a interromper quando já não for necessária.

Utilização:

my_thread = Thread(my_function)

Parâmetros

Descrição

my_thread

Opcional. Um nome para o novo tópico.

callback

O nome de uma função previamente definida.

Nota: Uma função deve ser sempre definida antes de ser chamada.

# Only play sounds when the drone moves laterally
def moving_sounds():
    while True:
        if drone.is_move_active():
            controller.sound.play(LOOPING)
            while controller.sound.is_active():
                wait(50, MSEC)
        wait(5, MSEC)

# Run moving_sounds at the same time
moving_sounds_thread = Thread(moving_sounds)

# Fly the drone using the controller
drone.take_off(climb_to=500)
while True:
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)