Siūlai#

Įvadas#

Gijos leidžia „VEX AIR“ drono valdikliui vienu metu vykdyti kelias užduotis toje pačioje programoje. Jos įgalina daugiaprogramį veikimą, leisdamos „VEX AIR“ dronui atlikti nepriklausomus veiksmus tuo pačiu metu.

Pastaba: Norėdami naudoti funkciją su gijos, turite pirmiausia apibrėžti ją.

Konstruktorius – Kurkite ir pradėkite naujas gijas.

  • Threadgijos – Pradeda naują giją, kuri vykdo nurodytą funkciją lygiagrečiai su pagrindine programa.

Konstruktorius#

Thread#

Thread gija sukuria ir pradeda giją. Sukūrę giją, galite ją pavadinti, kad sustabdytumėte ją, kai jos nebereikės.

Naudojimas:

my_thread = Thread(my_function)

Parametrai

Aprašymas

my_thread

Pasirinktinai. Naujo siūlelio pavadinimas.

callback

Anksčiau apibrėžtos funkcijos pavadinimas.

Pastaba: Funkcija visada turi būti apibrėžta prieš ją iškviečiant.

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