Commands

class commands.Command(related_task: int, id: int, command_type: str, start_time: int, command_status: str)[source]

Bases: ABC

Abstract base class for all drone command types.

Parameters:
  • related_task (int) – ID of parent task

  • id (int) – Unique command identifier

  • command_type (str) – Command category (e.g., ‘NAVIGATION’, ‘CAMERA’)

  • start_time (int) – Unix timestamp of command initiation

  • command_status (str) – Current execution state (‘Pending’|’Running’|’Completed’)

Note

All concrete commands must implement execute() and result() methods

__init__(related_task: int, id: int, command_type: str, start_time: int, command_status: str)[source]
abstract execute()[source]

Execute command logic. Must be implemented by subclasses.

abstract result()[source]

Return command outcome. Must be implemented by subclasses.

Returns:

Tuple containing (command_id, status_message, lat, lon)

Return type:

tuple

class commands.Nav_TakeOff(related_task, id, command_type, start_time, command_status, params)[source]

Bases: Command

Take off from ground/hand command implementation.

Parameters:

params – Flight parameters in order: [0] minimum_pitch (float): Minimum pitch angle during takeoff (degrees) [1] yaw_angle (float): Initial heading (degrees true) [2] latitude (float): Takeoff latitude (decimal degrees) [3] longitude (float): Takeoff longitude (decimal degrees)

__init__(related_task, id, command_type, start_time, command_status, params)[source]
execute()[source]

Simulate takeoff procedure with 10s delay.

result()[source]

Return takeoff confirmation with position.

Returns:

(command_id, status, lat, lon)

class commands.Nav_Land(related_task, id, command_type, start_time, command_status, params)[source]

Bases: Command

Land at specified location command implementation.

Parameters:

params – Landing parameters in order: [0] minimum_altitude (float): Minimum safe altitude (meters) [1] precision_land_mode (int): Landing accuracy mode (0-3) [2] yaw_angle (float): Approach heading (degrees) [3] latitude (float): Target latitude (decimal degrees) [4] longitude (float): Target longitude (decimal degrees) [5] landing_altitude (float): Touchdown altitude (meters)

__init__(related_task, id, command_type, start_time, command_status, params)[source]
execute()[source]

Simulate landing procedure with 10s delay.

result()[source]

Return landing confirmation with position.

Returns:

(command_id, status, lat, lon)

class commands.Nav_Waypoint(related_task, id, command_type, start_time, command_status, params)[source]

Bases: Command

Navigate to waypoint command implementation.

Parameters:

params – Navigation parameters in order: [0] hold_time (int): Loiter time at waypoint (seconds) [1] acceptancer_radius (float): Waypoint acceptance radius (meters) [2] pass_waypoint (bool): Continue through waypoint [3] yaw_angle (float): Target heading (degrees) [4] latitude (float): Waypoint latitude (decimal degrees) [5] longitude (float): Waypoint longitude (decimal degrees) [6] relative_altitude (float): Altitude relative to takeoff (meters)

__init__(related_task, id, command_type, start_time, command_status, params)[source]
execute()[source]

Simulate waypoint navigation with 10s delay.

result()[source]

Return waypoint confirmation with position.

Returns:

(command_id, status, lat, lon)

class commands.Nav_Home(related_task, id, command_type, start_time, command_status, params)[source]

Bases: Command

Return to home position command implementation.

Parameters:

params – Return parameters: [0] landing_permission (bool): Allow automatic landing

__init__(related_task, id, command_type, start_time, command_status, params)[source]
execute()[source]

Simulate return home with 10s delay.

result()[source]

Return home position confirmation.

Returns:

(command_id, status, None, None)

class commands.Camera_Image(related_task, id, command_type, start_time, command_status, params)[source]

Bases: Command

Image capture command implementation.

Parameters:

params – Camera parameters in order: [0] yaw_angle (float): Camera heading (degrees) [1] pitch_angle (float): Camera tilt angle (degrees) [2] photo_count (int): Number of images to capture [3] time_interval (float): Time between captures (seconds)

__init__(related_task, id, command_type, start_time, command_status, params)[source]
execute()[source]

Simulate photo capture with 1s delay.

result()[source]

Return image capture confirmation.

Returns:

(command_id, status, None, None)

class commands.Analyze_Image(related_task, id, command_type, start_time, command_status, params)[source]

Bases: Command

Image analysis command implementation.

Parameters:

params – Analysis parameters in order: [0] product (str): Target detection product [1] latitude (float): Image location latitude [2] longitude (float): Image location longitude

__init__(related_task, id, command_type, start_time, command_status, params)[source]
execute()[source]

Simulate analysis with random result and 10s delay.

result()[source]

Return analysis results with location.

Returns:

(command_id, [product, amount], lat, lon)

class commands.Spray(related_task, id, command_type, start_time, command_status, params)[source]

Bases: Command

Spray treatment command implementation.

Parameters:

params – Spray parameters in order: [0] product (str): Treatment product name [1] product_amount (float): Quantity to dispense (liters) [2] latitude (float): Application latitude [3] longitude (float): Application longitude

__init__(related_task, id, command_type, start_time, command_status, params)[source]
execute()[source]

Simulate spraying operation with 5s delay.

result()[source]

Return spray operation confirmation.

Returns:

(command_id, [product, amount], lat, lon)