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