Skip to main content

task.flex

// LMCP is releasable to the public domain under the Air Force Open Source Agreement Version 1.0.
module OpenUxAS::LMCP::v3.uxas.messages.task

import OpenUxAS::LMCP::v3.afrl.cmasi ( Waypoint, WavelengthBand, AutomationRequest, AutomationResponse, Location3D, Task )


struct TaskAssignment {
  TaskID: int64;
  OptionID: int64;
  AssignedVehicle: int64;
  TimeThreshold: int64;
  TimeTaskCompleted: int64;
}

struct CancelTask {
  Vehicles: int64[];
  CanceledTasks: int64[];
}

struct SensorFootprint {
  FootprintResponseID: int64;
  VehicleID: int64;
  CameraID: int64;
  GimbalID: int64;
  HorizontalFOV: float32;
  AglAltitude: float32;
  GimbalElevation: float32;
  AspectRatio: float32;
  AchievedGSD: float32;
  CameraWavelength: WavelengthBand;
  HorizontalToLeadingEdge: float32;
  HorizontalToTrailingEdge: float32;
  HorizontalToCenter: float32;
  WidthCenter: float32;
  SlantRangeToCenter: float32;
}

struct TaskActive {
  TaskID: int64;
  EntityID: int64;
  TimeTaskActivated: int64;
}

struct TaskOptionCost {
  VehicleID: int64;
  IntialTaskID: int64;
  IntialTaskOption: int64;
  DestinationTaskID: int64;
  DestinationTaskOption: int64;
  TimeToGo: int64;
}

struct FootprintRequest {
  FootprintRequestID: int64;
  VehicleID: int64;
  EligibleWavelengths: WavelengthBand[];
  GroundSampleDistances: float32[];
  AglAltitudes: float32[];
  ElevationAngles: float32[];
}

struct TaskAssignmentSummary {
  CorrespondingAutomationRequestID: int64;
  OperatingRegion: int64;
  TaskList: TaskAssignment[];
}

struct TaskInitialized {
  TaskID: int64;
}

struct TaskProgressRequest {
  RequestID: int64;
  TaskID: int64;
}

struct AssignmentCoordinatorTask extends Task {

}

struct TaskImplementationRequest {
  RequestID: int64;
  StartingWaypointID: int64;
  VehicleID: int64;
  StartPosition: Location3D;
  StartHeading: float32;
  StartTime: int64;
  RegionID: int64;
  TaskID: int64;
  OptionID: int64;
  TimeThreshold: int64;
}

struct TaskComplete {
  TaskID: int64;
  EntitiesInvolved: int64[];
  TimeTaskCompleted: int64;
}

struct TaskOption {
  TaskID: int64;
  OptionID: int64;
  EligibleEntities: int64[];
  Cost: int64;
  StartLocation: Location3D;
  StartHeading: float32;
  EndLocation: Location3D;
  EndHeading: float32;
}

struct TaskPlanOptions {
  CorrespondingAutomationRequestID: int64;
  TaskID: int64;
  Composition: string;
  Options: TaskOption[];
}

struct TaskImplementationResponse {
  ResponseID: int64;
  TaskID: int64;
  OptionID: int64;
  VehicleID: int64;
  TaskWaypoints: Waypoint[];
  FinalLocation: Location3D;
  FinalHeading: float32;
  FinalTime: int64;
}

struct TaskPause {
  TaskID: int64;
}

struct PlanningState {
  EntityID: int64;
  PlanningPosition: Location3D;
  PlanningHeading: float32;
}

struct CoordinatedAutomationRequest {
  RequestID: int64;
  MaximumResponseTime: int64;
  OriginalRequest: AutomationRequest;
  PlanningStates: PlanningState[];
}

struct TaskAutomationResponse {
  ResponseID: int64;
  OriginalResponse: AutomationResponse;
}

struct AssignmentCostMatrix {
  CorrespondingAutomationRequestID: int64;
  TaskLevelRelationship: string;
  TaskList: int64[];
  OperatingRegion: int64;
  CostMatrix: TaskOptionCost[];
}

struct TaskAutomationRequest {
  RequestID: int64;
  OriginalRequest: AutomationRequest;
  SandBoxRequest: bit;
  PlanningStates: PlanningState[];
}

struct SensorFootprintResponse {
  ResponseID: int64;
  Footprints: SensorFootprint[];
}

struct AssignmentCoordination {
  CoordinatedAutomationRequestID: int64;
  PlanningState: PlanningState;
}

struct TaskResume {
  TaskID: int64;
  RestartCompletely: bit;
  ReAssign: TaskAssignment;
}

struct UniqueAutomationRequest {
  RequestID: int64;
  OriginalRequest: AutomationRequest;
  SandBoxRequest: bit;
  PlanningStates: PlanningState[];
}

struct SensorFootprintRequests {
  RequestID: int64;
  Footprints: FootprintRequest[];
}

struct UniqueAutomationResponse {
  ResponseID: int64;
  OriginalResponse: AutomationResponse;
}

struct TaskProgress {
  ResponseID: int64;
  TaskID: int64;
  PercentComplete: float32;
  EntitiesEngaged: int64[];
}