Skip to content

Core Types

types

Type definitions and enums for Drone API.

These enums replace magic numbers throughout the codebase with type-safe constants.

Direction

Bases: IntEnum

Movement direction for move() command.

FORWARD/BACK map to MAVLink command ID 30 with +/- distance.

LEFT/RIGHT map to MAVLink command ID 31 with +/- distance.

UP/DOWN map to MAVLink command ID 32 with +/- height.

FORWARD class-attribute instance-attribute

FORWARD = 0

BACK class-attribute instance-attribute

BACK = 1

LEFT class-attribute instance-attribute

LEFT = 2

RIGHT class-attribute instance-attribute

RIGHT = 3

UP class-attribute instance-attribute

UP = 4

DOWN class-attribute instance-attribute

DOWN = 5

Rotation

Bases: IntEnum

Rotation direction for rotate() command.

LEFT class-attribute instance-attribute

LEFT = 0

RIGHT class-attribute instance-attribute

RIGHT = 1

FlipDirection

Bases: IntEnum

Direction for flip/somersault maneuver.

Maps to the direction parameter in single_fly_somersault().

FORWARD class-attribute instance-attribute

FORWARD = 0

BACK class-attribute instance-attribute

BACK = 1

LEFT class-attribute instance-attribute

LEFT = 2

RIGHT class-attribute instance-attribute

RIGHT = 3

LEDMode

Bases: IntEnum

LED lighting mode.

Maps to the mode parameter in single_fly_lamplight().

CONSTANT class-attribute instance-attribute

CONSTANT = 1

OFF class-attribute instance-attribute

OFF = 2

RGB_CYCLE class-attribute instance-attribute

RGB_CYCLE = 4

SEVEN_COLOR class-attribute instance-attribute

SEVEN_COLOR = 16
BLINK = 32

BREATHING class-attribute instance-attribute

BREATHING = 64

DroneStatus

Bases: IntEnum

Drone operational status from telemetry.

DISCONNECTED class-attribute instance-attribute

DISCONNECTED = 0

CONNECTED class-attribute instance-attribute

CONNECTED = 1

READY class-attribute instance-attribute

READY = 2

FLYING class-attribute instance-attribute

FLYING = 3

LOW_BATTERY class-attribute instance-attribute

LOW_BATTERY = 4

ERROR class-attribute instance-attribute

ERROR = 5

CommandResult

Bases: IntEnum

Result code from command execution.

Based on MAVLink PLANE_ACK message result codes.

SUCCESS class-attribute instance-attribute

SUCCESS = 255

BUSY class-attribute instance-attribute

BUSY = 240

FAILED_241 class-attribute instance-attribute

FAILED_241 = 241

FAILED_242 class-attribute instance-attribute

FAILED_242 = 242

TIMEOUT class-attribute instance-attribute

TIMEOUT = -1

UNKNOWN class-attribute instance-attribute

UNKNOWN = -2

VisionMode

Bases: IntEnum

Camera mode for vision/QR operations.

Selects between optical flow (downward) and front camera.

OPTICAL_FLOW class-attribute instance-attribute

OPTICAL_FLOW = 0

FRONT_CAMERA class-attribute instance-attribute

FRONT_CAMERA = 1

AIRecognitionTarget

Bases: IntEnum

Target types for AI recognition.

Used with single_fly_AiIdentifies() for recognizing visual markers.

DIGIT_0 class-attribute instance-attribute

DIGIT_0 = 0

DIGIT_1 class-attribute instance-attribute

DIGIT_1 = 1

DIGIT_2 class-attribute instance-attribute

DIGIT_2 = 2

DIGIT_3 class-attribute instance-attribute

DIGIT_3 = 3

DIGIT_4 class-attribute instance-attribute

DIGIT_4 = 4

DIGIT_5 class-attribute instance-attribute

DIGIT_5 = 5

DIGIT_6 class-attribute instance-attribute

DIGIT_6 = 6

DIGIT_7 class-attribute instance-attribute

DIGIT_7 = 7

DIGIT_8 class-attribute instance-attribute

DIGIT_8 = 8

DIGIT_9 class-attribute instance-attribute

DIGIT_9 = 9

ARROW_LEFT class-attribute instance-attribute

ARROW_LEFT = 10

ARROW_RIGHT class-attribute instance-attribute

ARROW_RIGHT = 11

ARROW_UP class-attribute instance-attribute

ARROW_UP = 12

ARROW_DOWN class-attribute instance-attribute

ARROW_DOWN = 13

END_TASK class-attribute instance-attribute

END_TASK = 20

CameraMode

Bases: IntEnum

Camera angle control mode.

Used with Plane_cmd_camera_angle().

RESET class-attribute instance-attribute

RESET = 0

UP class-attribute instance-attribute

UP = 1

DOWN class-attribute instance-attribute

DOWN = 2

LEFT class-attribute instance-attribute

LEFT = 3

RIGHT class-attribute instance-attribute

RIGHT = 4

SET_ANGLE class-attribute instance-attribute

SET_ANGLE = 5

GET_ANGLE class-attribute instance-attribute

GET_ANGLE = 6

ClampMode

Bases: IntEnum

Gripper/clamp control mode.

Used with MAV_PLANE_CMD_CLAMP_ELECTROMAGNET (cmd=26).

Type values:

  • 0=CLOSE
  • 1=OPEN
  • 2=SET_ANGLE (with data=angle)

CLOSE class-attribute instance-attribute

CLOSE = 0

OPEN class-attribute instance-attribute

OPEN = 1

SET_ANGLE class-attribute instance-attribute

SET_ANGLE = 2

ElectromagnetMode

Bases: IntEnum

Electromagnet control mode.

Used with MAV_PLANE_CMD_CLAMP_ELECTROMAGNET (cmd=26).

Type values: 3=OFF, 4=ON

OFF class-attribute instance-attribute

OFF = 3

ON class-attribute instance-attribute

ON = 4

VideoMode

Bases: IntEnum

Video recording control.

Used with Plane_cmd_switch_video().

START class-attribute instance-attribute

START = 0

STOP class-attribute instance-attribute

STOP = 1

LineWalkingMode

Bases: IntEnum

Line walking/following mode.

Used with single_fly_Line_walking().

START class-attribute instance-attribute

START = 1

STOP class-attribute instance-attribute

STOP = 0

BarrierMode

Bases: IntEnum

Obstacle avoidance mode.

Used with single_fly_barrier_aircraft().

DISABLE class-attribute instance-attribute

DISABLE = 0

ENABLE class-attribute instance-attribute

ENABLE = 1

LineFollowResult

Bases: IntEnum

Result from line following operation.

Used with follow_line() / single_fly_Line_walking().

FAILED class-attribute instance-attribute

FAILED = 0

SUCCESS class-attribute instance-attribute

SUCCESS = 1

INTERSECTION class-attribute instance-attribute

INTERSECTION = 2

LineColor

Bases: IntEnum

Line color for line following.

Used with follow_line() to specify the line color to track.

BLACK class-attribute instance-attribute

BLACK = 0

WHITE class-attribute instance-attribute

WHITE = 255

LaserMode

Bases: IntEnum

Laser firing mode.

Used with fire_laser() / plane_fly_generating().

SINGLE_SHOT class-attribute instance-attribute

SINGLE_SHOT = 0

BURST class-attribute instance-attribute

BURST = 1

RECEIVER_ON class-attribute instance-attribute

RECEIVER_ON = 2

RECEIVER_OFF class-attribute instance-attribute

RECEIVER_OFF = 3

CONTINUOUS class-attribute instance-attribute

CONTINUOUS = 4

OFF class-attribute instance-attribute

OFF = 5

CameraPitchMode

Bases: IntEnum

Camera pitch control mode.

Used with set_camera_angle() / Plane_cmd_camera_angle().

Controls the main camera's vertical angle.

UP_ABSOLUTE class-attribute instance-attribute

UP_ABSOLUTE = 0

DOWN_ABSOLUTE class-attribute instance-attribute

DOWN_ABSOLUTE = 1

CALIBRATE class-attribute instance-attribute

CALIBRATE = 4

UP_RELATIVE class-attribute instance-attribute

UP_RELATIVE = 5

DOWN_RELATIVE class-attribute instance-attribute

DOWN_RELATIVE = 6

VideoStreamMode

Bases: IntEnum

Video stream control mode.

Used with set_video_stream() / Plane_cmd_swith_rtp().

ENABLE class-attribute instance-attribute

ENABLE = 0

DISABLE class-attribute instance-attribute

DISABLE = 1

QRLocalizationMode

Bases: IntEnum

QR code localization mode.

Used with set_qr_localization() / Plane_cmd_switch_QR().

ENABLE class-attribute instance-attribute

ENABLE = 0

DISABLE class-attribute instance-attribute

DISABLE = 1

MediaType

Bases: IntEnum

Media type for file operations.

Used with list_media(), download_media(), delete_media().

Maps to the media_type/del_type parameters in the HTTP CGI API.

PHOTO class-attribute instance-attribute

PHOTO = 0

VIDEO class-attribute instance-attribute

VIDEO = 1

LOG class-attribute instance-attribute

LOG = 2

VelocityLevel

Bases: IntEnum

Flight velocity level for position controller gain scaling.

Used with movement commands like move() and move_to() to control flight speed. Pass as the speed parameter:

drone.move(Direction.FORWARD, 100, speed=VelocityLevel.ZOOM)
drone.move_to(x=100, y=100, z=50, speed=VelocityLevel.TURBO)

Firmware behavior:

The firmware uses this value as a DIVISOR for the position P-gain:

gain = MPC_XY_P (2.0) / cruising_speed

Higher values -> lower gain -> slower, gentler approach

Lower values -> higher gain -> faster, more aggressive approach

Note

set_velocity_level() only affects RC/joystick manual control, not API commands.

SLOW class-attribute instance-attribute

SLOW = 300

MEDIUM class-attribute instance-attribute

MEDIUM = 200

ZOOM class-attribute instance-attribute

ZOOM = 100

TURBO class-attribute instance-attribute

TURBO = 50

BarrierMask

Bases: IntFlag

Obstacle sensor bitmask for set_avoidance_direction().

Specifies which IR/ToF sensors to check for obstacles.

Can be combined with | operator: BarrierMask.FRONT | BarrierMask.BACK

Maps to mav_barrier_info in firmware.

FRONT class-attribute instance-attribute

FRONT = 1

BACK class-attribute instance-attribute

BACK = 2

LEFT class-attribute instance-attribute

LEFT = 4

RIGHT class-attribute instance-attribute

RIGHT = 8

UP class-attribute instance-attribute

UP = 16

DOWN class-attribute instance-attribute

DOWN = 32

HORIZONTAL class-attribute instance-attribute

HORIZONTAL = FRONT | BACK | LEFT | RIGHT

ALL class-attribute instance-attribute

ALL = FRONT | BACK | LEFT | RIGHT | UP | DOWN

VideoResolution

Bases: IntEnum

Video resolution level for RTP streaming and recording.

Used with set_video_resolution() to control video quality vs performance.

Lower resolution reduces encoder CPU load, which may allow higher QR localization rates when RTP streaming is active.

Firmware handler: HandleMsgSelectRecordResolution @ avmanager:0x0001df7c

Command: MAV_PLANE_CMD_SELECT_VIDEO_RESOLUTION (0x16)

Resolution affects:

  • RTP streaming quality and bandwidth
  • Video recording file size
  • Encoder CPU load (lower = less load)

HIGH class-attribute instance-attribute

HIGH = 0

MEDIUM class-attribute instance-attribute

MEDIUM = 1

LOW class-attribute instance-attribute

LOW = 2

WiFiMode

Bases: IntEnum

WiFi configuration mode.

Used with MAV_PLANE_CMD_WIFI_MODE (cmd=4). The type parameter selects the WiFi operation.

Firmware handler: HandleMsgWifiMode @ avmanager

BAND_2_4GHZ class-attribute instance-attribute

BAND_2_4GHZ = 0

BAND_5GHZ class-attribute instance-attribute

BAND_5GHZ = 1

AP_MODE class-attribute instance-attribute

AP_MODE = 2

POWER_LOW class-attribute instance-attribute

POWER_LOW = 3

POWER_HIGH class-attribute instance-attribute

POWER_HIGH = 4

BROADCAST_ON class-attribute instance-attribute

BROADCAST_ON = 5

BROADCAST_OFF class-attribute instance-attribute

BROADCAST_OFF = 6

CHANNEL_MANUAL class-attribute instance-attribute

CHANNEL_MANUAL = 7

CHANNEL_AUTO class-attribute instance-attribute

CHANNEL_AUTO = 8

GET_CHANNEL_STRENGTH class-attribute instance-attribute

GET_CHANNEL_STRENGTH = 9

TakeoffFlags

Bases: IntFlag

Takeoff behavior flags (param2 in ONE_KEY_TAKEOFF command).

Controls special takeoff behaviors. Can be combined with | operator.

Firmware behavior (handle_formation_cmd_handler @ 0x00043424):

- Bit 0 (RESET_YAW): Resets yaw orientation on takeoff
- Bit 1 (WITH_LOAD): Enables "takeoff with load" mode for heavier payloads

C# reference (SingleGameProgrammingAdapter.cs):

- LaunchHeight (param2=0): Normal takeoff
- LaunchHeightWithClamp (param2=2): Takeoff with load clamp

Usage:

drone.takeoff(height_cm=100, flags=TakeoffFlags.WITH_LOAD)
drone.takeoff(height_cm=100, flags=TakeoffFlags.RESET_YAW | TakeoffFlags.WITH_LOAD)

NONE class-attribute instance-attribute

NONE = 0

RESET_YAW class-attribute instance-attribute

RESET_YAW = 1

WITH_LOAD class-attribute instance-attribute

WITH_LOAD = 2