🛩 ドローン飛行制御モードの変更と確認


✅ 使用関数

関数名 用途
sendModeControlFlight(mode) 飛行制御モードを設定する
sendRequest(DeviceType.Drone, DataType.State) 現在の状態(モードなど)をリクエストする
setEventHandler(DataType.State, handler) 状態受信時の処理関数を登録する

from time import sleep

from CodingDrone.drone import * from CodingDrone.protocol import *

def eventState(state): print("{0}".format(state.modeControlFlight))

if name == 'main':

drone = Drone()
drone.open()

# イベントハンドリング関数登録
drone.setEventHandler(DataType.State, eventState)

# 飛行制御モードをModeControlFlight.Positionに変更
drone.sendModeControlFlight(ModeControlFlight.Position)
sleep(0.01)

# 変更事項を確認
drone.sendRequest(DeviceType.Drone, DataType.State)
sleep(0.1)

# 飛行制御モードをModeControlFlight.Attitudeに変更
drone.sendModeControlFlight(ModeControlFlight.Attitude)
sleep(0.01)

# 変更事項を確認
drone.sendRequest(DeviceType.Drone, DataType.State)
sleep(0.1)

drone.close()

🧭 Headless モード設定・確認


✅ 使用関数・イベント

名前 用途
sendHeadless(headless) ヘッドレスモードのオン/オフを設定
sendRequest(DeviceType.Drone, DataType.State) 現在の状態(モード、Headless)をリクエスト
setEventHandler(DataType.State, handler) 状態(eventState)受信時の処理関数を登録

📘 Headless モードとは?

from time import sleep

from CodingDrone.drone import *
from CodingDrone.protocol import *

def eventState(state):
    print("{0}".format(state.headless))

if __name__ == '__main__':

    drone = Drone()
    drone.open()

    # イベントハンドリング関数登録
    drone.setEventHandler(DataType.State, eventState)

    # ドローンをHeadless設定をHeadlessモードに変更
    drone.sendHeadless(Headless.Headless)
    sleep(0.01)

    # 変更事項を確認
    drone.sendRequest(DeviceType.Drone, DataType.State)
    sleep(0.1)

    # ドローンをHeadless設定をNormalモードに変更
    drone.sendHeadless(Headless.Normal)
    sleep(0.01)

    # 変更事項を確認
    drone.sendRequest(DeviceType.Drone, DataType.State)
    sleep(0.1)

    drone.close()