Banner Image

Module AI.AI_Air_Patrol

AI - Models the process of A2G patrolling and engaging ground targets for airplanes and helicopters.


Author: FlightControl


Global(s)

Global AI_AIR_PATROL

The AI_AIR_PATROL class implements the core functions to patrol a Core.Zone by an AI Wrapper.Group and automatically engage any airborne enemies that are within a certain range or within a certain zone.

#AI_AIR_PATROL AI_AIR_PATROL

The AI_AIR_PATROL class implements the core functions to patrol a Core.Zone by an AI Wrapper.Group and automatically engage any airborne enemies that are within a certain range or within a certain zone.

Process

The AI_AIR_PATROL is assigned a Wrapper.Group and this must be done before the AI_AIR_PATROL process can be started using the Start event.

Process

The AI will fly towards the random 3D point within the patrol zone, using a random speed within the given altitude and speed limits. Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.

Process

This cycle will continue.

Process

During the patrol, the AI will detect enemy targets, which are reported through the Detected event.

Process

When enemies are detected, the AI will automatically engage the enemy.

Process

Until a fuel or damage threshold has been reached by the AI, or when the AI is commanded to RTB. When the fuel threshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.

Process

1. AI_AIR_PATROL constructor

2. AI_AIR_PATROL is a FSM

Process

2.1 AI_AIR_PATROL States

  • None ( Group ): The process is not started yet.
  • Patrolling ( Group ): The AI is patrolling the Patrol Zone.
  • Engaging ( Group ): The AI is engaging the bogeys.
  • Returning ( Group ): The AI is returning to Base..

2.2 AI_AIR_PATROL Events

3. Set the Range of Engagement

Range

An optional range can be set in meters, that will define when the AI will engage with the detected airborne enemy targets. The range can be beyond or smaller than the range of the Patrol Zone. The range is applied at the position of the AI. Use the method AI_AIR_PATROL.SetEngageRange() to define that range.

Developer Note

Note while this class still works, it is no longer supported as the original author stopped active development of MOOSE Therefore, this class is considered to be deprecated


Type(s)

Fields and Methods inherited from AI_AIR_PATROL Description

AI_AIR_PATROL.EngageRange

AI_AIR_PATROL:New(AI_Air, AIGroup, PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, PatrolAltType)

Creates a new AI_AIR_PATROL object

AI_AIR_PATROL:OnAfterPatrol(AIPatrol, From, Event, To)

OnAfter Transition Handler for Event Patrol.

AI_AIR_PATROL:OnAfterPatrolRoute(AIPatrol, From, Event, To)

OnAfter Transition Handler for Event PatrolRoute.

AI_AIR_PATROL:OnBeforePatrol(AIPatrol, From, Event, To)

OnBefore Transition Handler for Event Patrol.

AI_AIR_PATROL:OnBeforePatrolRoute(AIPatrol, From, Event, To)

OnBefore Transition Handler for Event PatrolRoute.

AI_AIR_PATROL:OnEnterPatrolling(AIPatrol, From, Event, To)

OnEnter Transition Handler for State Patrolling.

AI_AIR_PATROL:OnLeavePatrolling(AIPatrol, From, Event, To)

OnLeave Transition Handler for State Patrolling.

AI_AIR_PATROL:Patrol()

Synchronous Event Trigger for Event Patrol.

AI_AIR_PATROL.PatrolAltType

AI_AIR_PATROL.PatrolCeilingAltitude

AI_AIR_PATROL.PatrolFloorAltitude

AI_AIR_PATROL.PatrolMaxSpeed

AI_AIR_PATROL.PatrolMinSpeed

AI_AIR_PATROL:PatrolRoute()

Synchronous Event Trigger for Event PatrolRoute.

AI_AIR_PATROL.PatrolZone

AI_AIR_PATROL.Resume(AIPatrol, Fsm)

Resumes the AIPatrol

AI_AIR_PATROL:SetEngageRange(EngageRange)

Set the Engage Range when the AI will engage with airborne enemies.

AI_AIR_PATROL:SetRaceTrackPattern(LegMin, LegMax, HeadingMin, HeadingMax, DurationMin, DurationMax, CapCoordinates)

Set race track parameters.

AI_AIR_PATROL:__Patrol(Delay)

Asynchronous Event Trigger for Event Patrol.

AI_AIR_PATROL:__PatrolRoute(Delay)

Asynchronous Event Trigger for Event PatrolRoute.

AI_AIR_PATROL.___PatrolRoute(AIPatrol, Fsm)

This static method is called from the route path within the last task at the last waypoint of the AIPatrol.

AI_AIR_PATROL:onafterPatrol(AIPatrol, From, Event, To)

Defines a new patrol route using the AI.AI_Patrol#AI_PATROL_ZONE parameters and settings.

AI_AIR_PATROL:onafterPatrolRoute(AIPatrol, From, Event, To)

Defines a new patrol route using the AI.AI_Patrol#AI_PATROL_ZONE parameters and settings.

AI_AIR_PATROL.racetrack

AI_AIR_PATROL.racetrackcapcoordinates

AI_AIR_PATROL.racetrackdurationmax

AI_AIR_PATROL.racetrackdurationmin

AI_AIR_PATROL.racetrackheadingmax

AI_AIR_PATROL.racetrackheadingmin

AI_AIR_PATROL.racetracklegmax

AI_AIR_PATROL.racetracklegmin

Field(s)

Function(s)

Creates a new AI_AIR_PATROL object

Defined in:

AI_AIR_PATROL

Parameters:

The AI_AIR FSM.

The AI group.

Core.Zone#ZONE_BASE PatrolZone

The Core.Zone where the patrol needs to be executed.

DCS#Altitude PatrolFloorAltitude

(optional, default = 1000m ) The lowest altitude in meters where to execute the patrol.

DCS#Altitude PatrolCeilingAltitude

(optional, default = 1500m ) The highest altitude in meters where to execute the patrol.

DCS#Speed PatrolMinSpeed

(optional, default = 50% of max speed) The minimum speed of the Wrapper.Group in km/h.

DCS#Speed PatrolMaxSpeed

(optional, default = 75% of max speed) The maximum speed of the Wrapper.Group in km/h.

DCS#AltitudeType PatrolAltType

The altitude type ("RADIO"=="AGL", "BARO"=="ASL"). Defaults to RADIO.

Return value:

OnAfter Transition Handler for Event Patrol.

Defined in:

AI_AIR_PATROL

Parameters:

The Group Object managed by the FSM.

#string From

The From State string.

#string Event

The Event string.

#string To

The To State string.

OnAfter Transition Handler for Event PatrolRoute.

Defined in:

AI_AIR_PATROL

Parameters:

The Group Object managed by the FSM.

#string From

The From State string.

#string Event

The Event string.

#string To

The To State string.

OnBefore Transition Handler for Event Patrol.

Defined in:

AI_AIR_PATROL

Parameters:

The Group Object managed by the FSM.

#string From

The From State string.

#string Event

The Event string.

#string To

The To State string.

Return value:

#boolean:

Return false to cancel Transition.

OnBefore Transition Handler for Event PatrolRoute.

Defined in:

AI_AIR_PATROL

Parameters:

The Group Object managed by the FSM.

#string From

The From State string.

#string Event

The Event string.

#string To

The To State string.

Return value:

#boolean:

Return false to cancel Transition.

OnEnter Transition Handler for State Patrolling.

Defined in:

AI_AIR_PATROL

Parameters:

The Group Object managed by the FSM.

#string From

The From State string.

#string Event

The Event string.

#string To

The To State string.

OnLeave Transition Handler for State Patrolling.

Defined in:

AI_AIR_PATROL

Parameters:

The Group Object managed by the FSM.

#string From

The From State string.

#string Event

The Event string.

#string To

The To State string.

Return value:

#boolean:

Return false to cancel Transition.

Synchronous Event Trigger for Event Patrol.

Defined in:

AI_AIR_PATROL

Synchronous Event Trigger for Event PatrolRoute.

Defined in:

AI_AIR_PATROL

Resumes the AIPatrol

Defined in:

AI_AIR_PATROL

Parameters:

Set the Engage Range when the AI will engage with airborne enemies.

Defined in:

AI_AIR_PATROL

Parameter:

#number EngageRange

The Engage Range.

Return value:

Set race track parameters.

CAP flights will perform race track patterns rather than randomly patrolling the zone.

Defined in:

AI_AIR_PATROL

Parameters:

#number LegMin

Min Length of the race track leg in meters. Default 10,000 m.

#number LegMax

Max length of the race track leg in meters. Default 15,000 m.

#number HeadingMin

Min heading of the race track in degrees. Default 0 deg, i.e. from South to North.

#number HeadingMax

Max heading of the race track in degrees. Default 180 deg, i.e. from South to North.

#number DurationMin

(Optional) Min duration before switching the orbit position. Default is keep same orbit until RTB or engage.

#number DurationMax

(Optional) Max duration before switching the orbit position. Default is keep same orbit until RTB or engage.

#table CapCoordinates

Table of coordinates of first race track point. Second point is determined by leg length and heading.

Return value:

Asynchronous Event Trigger for Event Patrol.

Defined in:

AI_AIR_PATROL

Parameter:

#number Delay

The delay in seconds.

Asynchronous Event Trigger for Event PatrolRoute.

Defined in:

AI_AIR_PATROL

Parameter:

#number Delay

The delay in seconds.

This static method is called from the route path within the last task at the last waypoint of the AIPatrol.

Note that this method is required, as triggers the next route when patrolling for the AIPatrol.

Defined in:

AI_AIR_PATROL

Parameters:

The AI group.

The FSM.

Defines a new patrol route using the AI.AI_Patrol#AI_PATROL_ZONE parameters and settings.

Defined in:

AI_AIR_PATROL

Parameters:

The Group Object managed by the FSM.

#string From

The From State string.

#string Event

The Event string.

#string To

The To State string.

Return value:

Defines a new patrol route using the AI.AI_Patrol#AI_PATROL_ZONE parameters and settings.

Defined in:

AI_AIR_PATROL

Parameters:

The Group managed by the FSM.

#string From

The From State string.

#string Event

The Event string.

#string To

The To State string.