スレッド#

導入#

スレッド機能により、VEX AIRドローンコントローラーは同じプログラム内で複数のタスクを同時に実行できます。これによりマルチタスクが可能になり、VEX AIRドローンは同時に複数の独立した動作を実行できます。

注: スレッドで使用するには、まず関数を定義する必要があります。

コンストラクタ – 新しいスレッドを作成して開始します。

  • Thread – メインプログラムと並行して指定された関数を実行する新しいスレッドを開始します。

コンストラクタ#

Thread#

Thread はスレッドを作成して開始します。スレッドを作成する際に名前を付けることで、不要になったときに停止させることができます。

使用法:

my_thread = Thread(my_function)

パラメータ

説明

my_thread

オプション。新しいスレッドの名前。

callback

以前に定義された関数の名前。

注: 関数は呼び出される前に必ず定義されていなければなりません。

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