Draden#

Invoering#

Threads stellen de VEX AIR Drone Controller in staat om meerdere taken tegelijkertijd binnen hetzelfde programma uit te voeren. Ze maken multitasking mogelijk, waardoor de VEX AIR Drone onafhankelijke acties tegelijkertijd kan uitvoeren.

Opmerking: Je moet eerst een functie definiëren om deze met een thread te kunnen gebruiken.

Constructor – Nieuwe threads aanmaken en starten.

  • Thread – Start een nieuwe thread die de opgegeven functie parallel met het hoofdprogramma uitvoert.

Constructor#

Thread#

Thread maakt en start een thread. Wanneer je een thread maakt, kun je deze een geven om hem te stoppen wanneer hij niet langer nodig is.

Gebruik:

my_thread = Thread(my_function)

Parameters

Beschrijving

my_thread

Optioneel. Een naam voor de nieuwe thread.

callback

De naam van een eerder gedefinieerde functie.

Let op: Een functie moet altijd gedefinieerd zijn voordat deze wordt aangeroepen.

# 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)