Threads#

Einführung#

Threads ermöglichen es dem VEX AIR Drohnen-Controller, mehrere Aufgaben gleichzeitig innerhalb desselben Programms auszuführen. Sie ermöglichen Multitasking und erlauben der VEX AIR Drohne, gleichzeitig unabhängige Aktionen durchzuführen.

Hinweis: Sie müssen zuerst eine Funktion definieren, um sie mit einem Thread verwenden zu können.

Konstruktor – Neue Threads erstellen und starten.

  • Thread – Startet einen neuen Thread, der die angegebene Funktion parallel zum Hauptprogramm ausführt.

Konstruktor#

Thread#

Thread erstellt und startet einen Thread. Beim Erstellen eines Threads kann man ihm einen Namen geben, um ihn zu beenden, sobald er nicht mehr benötigt wird.

Verwendung:

my_thread = Thread(my_function)

Parameter

Beschreibung

my_thread

Optional. Ein Name für den neuen Thread.

callback

Der Name einer zuvor definierten Funktion.

Hinweis: Eine Funktion muss *immer vor ihrem Aufruf definiert werden.

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