Dependency

Mission Task Dependency Resolution System

Note

Implements critical mission management functionality including: - Task dependency validation - Command-task association - Treatment task parameter updates - Dependency status tracking

dependency.check_dependencies(mission_id: int, plans: dict, drone_command: int, mission_logger: Logger) tuple[source]

Resolves task dependencies based on completed commands.

Parameters:
  • mission_id – Unique mission identifier

  • plans – Nested mission structure {vehicle_id: {task_id: task_data}}

  • drone_command – Completed command ID triggering dependency check

  • mission_logger – Configured logging instance

Returns:

  • Updated plans structure

  • List of vehicle IDs with fully resolved dependencies

Return type:

Tuple containing

Raises:
  • ValueError – If no task contains the completed command

  • RuntimeError – For critical dependency resolution failures

Example

updated_plans, ready_vehicles = check_dependencies(
    123,
    mission_plans,
    456,
    logger
)
dependency.find_task_by_command(mission_id: int, plans: dict, drone_command: int, mission_logger: Logger) dict[source]

Locates task containing specified command.

Parameters:
  • mission_id – Current mission identifier

  • plans – Mission structure {vehicle_id: {task_id: task_data}}

  • command_id – Command ID to locate

  • mission_logger – Configured logging instance

Returns:

Task dictionary if found, None otherwise

dependency.is_dependency_satisfied(mission_id: int, dependency: dict, task_result: dict, mission_logger: Logger) bool[source]

Validates dependency requirements against completed task.

Parameters:
  • dependency – Dependency configuration from task

  • completed_task – Finished task data

Returns:

True if dependency conditions are met

dependency.all_dependencies_resolved(mission_id: int, plan: dict, mission_logger: Logger) bool[source]

Verifies complete dependency resolution for vehicle plan.

Parameters:

plan – Vehicle-specific task structure {task_id: task_data}

Returns:

True if all dependencies marked resolved

dependency.apply_dependency(mission_id: int, plans: dict, vehicle_id: int, task_id: int, task_result: dict, mission_logger: Logger) dict[source]

Applies task-specific dependency resolution logic.

Parameters:
  • mission_id – Current mission identifier

  • plans – Mission plans dictionary

  • vehicle_id – Target vehicle ID

  • task_id – Task ID to modify

  • task_result – Completed task data for reference

  • mission_logger – Mission event logger

Returns:

Updated plans dictionary with modified task parameters

dependency.treatment(mission_id: int, plans: dict, vehicle_id: int, task_id: int, task_result: dict, mission_logger: Logger) dict[source]

Processes TREATMENT-type task dependencies by updating spray commands.

Parameters:
  • mission_id – Current mission identifier

  • plans – Mission plans dictionary

  • vehicle_id – Target vehicle ID

  • task_id – Task ID to modify

  • task_result – Completed task data for reference

  • mission_logger – Mission event logger

Returns:

Updated plans dictionary with modified task parameters