mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Updated documentation
This commit is contained in:
@@ -79,100 +79,14 @@
|
||||
|
||||
<hr/>
|
||||
|
||||
<h1>1) <a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> class, extends <a href="AI_Patrol.html##(AI_PATROL_ZONE)">AI<em>Patrol#AI</em>PATROL_ZONE</a></h1>
|
||||
|
||||
<p><a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> derives from the <a href="AI_Patrol.html##(AI_PATROL_ZONE)">AI<em>Patrol#AI</em>PATROL_ZONE</a>, inheriting its methods and behaviour.</p>
|
||||
<p>AI CAS classes makes AI Controllables execute a Close Air Support.</p>
|
||||
|
||||
|
||||
<p>
|
||||
The <a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> class implements the core functions to provide Close Air Support in an Engage <a href="Zone.html">Zone</a> by an AIR <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>.
|
||||
The AI<em>CAS</em>ZONE runs a process. It holds an AI in a Patrol Zone and when the AI is commanded to engage, it will fly to an Engage Zone.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia3.JPG" alt="HoldAndEngage"/></p>
|
||||
|
||||
<p>The AI<em>CAS</em>ZONE is assigned a <a href="Group.html">Group</a> and this must be done before the AI<em>CAS</em>ZONE process can be started through the <strong>Start</strong> event.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia4.JPG" alt="Start Event"/></p>
|
||||
|
||||
<p>Upon started, The AI will <strong>Route</strong> itself towards the random 3D point within a 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.
|
||||
This cycle will continue until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia5.JPG" alt="Route Event"/></p>
|
||||
|
||||
<p>When the AI is commanded to provide Close Air Support (through the event <strong>Engage</strong>), the AI will fly towards the Engage Zone.
|
||||
Any target that is detected in the Engage Zone will be reported and will be destroyed by the AI.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia6.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<p>The AI will detect the targets and will only destroy the targets within the Engage Zone.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia7.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<p>Every target that is destroyed, is reported< by the AI.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia8.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<p>Note that the AI does not know when the Engage Zone is cleared, and therefore will keep circling in the zone. </p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia9.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<p>Until it is notified through the event <strong>Accomplish</strong>, which is to be triggered by an observing party:</p>
|
||||
<p>There are the following types of CAS classes defined:</p>
|
||||
|
||||
<ul>
|
||||
<li>a FAC</li>
|
||||
<li>a timed event</li>
|
||||
<li>a menu option selected by a human</li>
|
||||
<li>a condition</li>
|
||||
<li>others ...</li>
|
||||
</ul>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia10.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<p>When the AI has accomplished the CAS, it will fly back to the Patrol Zone.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia11.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<p>It will keep patrolling there, until it is notified to RTB or move to another CAS Zone.
|
||||
It can be notified to go RTB through the <strong>RTB</strong> event.</p>
|
||||
|
||||
<p>When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia12.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<h1>1.1) AI<em>CAS</em>ZONE constructor</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(AI_CAS_ZONE).New">AI<em>CAS</em>ZONE.New</a>(): Creates a new AI<em>CAS</em>ZONE object.</li>
|
||||
</ul>
|
||||
|
||||
<h2>1.2) AI<em>CAS</em>ZONE is a FSM</h2>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia2.JPG" alt="Process"/></p>
|
||||
|
||||
<h3>1.2.1) AI<em>CAS</em>ZONE States</h3>
|
||||
|
||||
<ul>
|
||||
<li><strong>None</strong> ( Group ): The process is not started yet.</li>
|
||||
<li><strong>Patrolling</strong> ( Group ): The AI is patrolling the Patrol Zone.</li>
|
||||
<li><strong>Engaging</strong> ( Group ): The AI is engaging the targets in the Engage Zone, executing CAS.</li>
|
||||
<li><strong>Returning</strong> ( Group ): The AI is returning to Base..</li>
|
||||
</ul>
|
||||
|
||||
<h3>1.2.2) AI<em>CAS</em>ZONE Events</h3>
|
||||
|
||||
<ul>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Start">AI<em>Patrol#AI</em>PATROL_ZONE.Start</a>**: Start the process.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Route">AI<em>Patrol#AI</em>PATROL_ZONE.Route</a>**: Route the AI to a new random 3D point within the Patrol Zone.</li>
|
||||
<li>**<a href="##(AI_CAS_ZONE).Engage">AI<em>CAS</em>ZONE.Engage</a>**: Engage the AI to provide CAS in the Engage Zone, destroying any target it finds.</li>
|
||||
<li>**<a href="##(AI_CAS_ZONE).Abort">AI<em>CAS</em>ZONE.Abort</a>**: Aborts the engagement and return patrolling in the patrol zone.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).RTB">AI<em>Patrol#AI</em>PATROL_ZONE.RTB</a>**: Route the AI to the home base.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Detect">AI<em>Patrol#AI</em>PATROL_ZONE.Detect</a>**: The AI is detecting targets.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Detected">AI<em>Patrol#AI</em>PATROL_ZONE.Detected</a>**: The AI has detected new targets.</li>
|
||||
<li>**<a href="##(AI_CAS_ZONE).Destroy">AI<em>CAS</em>ZONE.Destroy</a>**: The AI has destroyed a target <a href="Unit.html">Unit</a>.</li>
|
||||
<li>**<a href="##(AI_CAS_ZONE).Destroyed">AI<em>CAS</em>ZONE.Destroyed</a>**: The AI has destroyed all target <a href="Unit.html">Unit</a>s assigned in the CAS task.</li>
|
||||
<li><strong>Status</strong>: The AI is checking status (fuel and damage). When the tresholds have been reached, the AI will RTB.</li>
|
||||
<li><a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a>: Perform a CAS in a zone.</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
@@ -214,7 +128,9 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="#AI_CAS_ZONE">AI_CAS_ZONE</a></td>
|
||||
<td class="summary">
|
||||
<h1>1) <a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> class, extends <a href="AI_Patrol.html##(AI_PATROL_ZONE)">AI<em>Patrol#AI</em>PATROL_ZONE</a></h1>
|
||||
|
||||
<p><a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> derives from the <a href="AI_Patrol.html##(AI_PATROL_ZONE)">AI<em>Patrol#AI</em>PATROL_ZONE</a>, inheriting its methods and behaviour.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -248,12 +164,6 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
|
||||
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).Accomplished">AI_CAS_ZONE.Accomplished</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).ClassName">AI_CAS_ZONE.ClassName</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -491,6 +401,103 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<h1>1) <a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> class, extends <a href="AI_Patrol.html##(AI_PATROL_ZONE)">AI<em>Patrol#AI</em>PATROL_ZONE</a></h1>
|
||||
|
||||
<p><a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> derives from the <a href="AI_Patrol.html##(AI_PATROL_ZONE)">AI<em>Patrol#AI</em>PATROL_ZONE</a>, inheriting its methods and behaviour.</p>
|
||||
|
||||
|
||||
<p>
|
||||
The <a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> class implements the core functions to provide Close Air Support in an Engage <a href="Zone.html">Zone</a> by an AIR <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>.
|
||||
The AI<em>CAS</em>ZONE runs a process. It holds an AI in a Patrol Zone and when the AI is commanded to engage, it will fly to an Engage Zone.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia3.JPG" alt="HoldAndEngage"/></p>
|
||||
|
||||
<p>The AI<em>CAS</em>ZONE is assigned a <a href="Group.html">Group</a> and this must be done before the AI<em>CAS</em>ZONE process can be started through the <strong>Start</strong> event.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia4.JPG" alt="Start Event"/></p>
|
||||
|
||||
<p>Upon started, The AI will <strong>Route</strong> itself towards the random 3D point within a 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.
|
||||
This cycle will continue until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia5.JPG" alt="Route Event"/></p>
|
||||
|
||||
<p>When the AI is commanded to provide Close Air Support (through the event <strong>Engage</strong>), the AI will fly towards the Engage Zone.
|
||||
Any target that is detected in the Engage Zone will be reported and will be destroyed by the AI.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia6.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<p>The AI will detect the targets and will only destroy the targets within the Engage Zone.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia7.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<p>Every target that is destroyed, is reported< by the AI.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia8.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<p>Note that the AI does not know when the Engage Zone is cleared, and therefore will keep circling in the zone. </p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia9.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<p>Until it is notified through the event <strong>Accomplish</strong>, which is to be triggered by an observing party:</p>
|
||||
|
||||
<ul>
|
||||
<li>a FAC</li>
|
||||
<li>a timed event</li>
|
||||
<li>a menu option selected by a human</li>
|
||||
<li>a condition</li>
|
||||
<li>others ...</li>
|
||||
</ul>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia10.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<p>When the AI has accomplished the CAS, it will fly back to the Patrol Zone.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia11.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<p>It will keep patrolling there, until it is notified to RTB or move to another CAS Zone.
|
||||
It can be notified to go RTB through the <strong>RTB</strong> event.</p>
|
||||
|
||||
<p>When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia12.JPG" alt="Engage Event"/></p>
|
||||
|
||||
<h1>1.1) AI<em>CAS</em>ZONE constructor</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(AI_CAS_ZONE).New">AI<em>CAS</em>ZONE.New</a>(): Creates a new AI<em>CAS</em>ZONE object.</li>
|
||||
</ul>
|
||||
|
||||
<h2>1.2) AI<em>CAS</em>ZONE is a FSM</h2>
|
||||
|
||||
<p><img src="..\Presentations\AI_CAS\Dia2.JPG" alt="Process"/></p>
|
||||
|
||||
<h3>1.2.1) AI<em>CAS</em>ZONE States</h3>
|
||||
|
||||
<ul>
|
||||
<li><strong>None</strong> ( Group ): The process is not started yet.</li>
|
||||
<li><strong>Patrolling</strong> ( Group ): The AI is patrolling the Patrol Zone.</li>
|
||||
<li><strong>Engaging</strong> ( Group ): The AI is engaging the targets in the Engage Zone, executing CAS.</li>
|
||||
<li><strong>Returning</strong> ( Group ): The AI is returning to Base..</li>
|
||||
</ul>
|
||||
|
||||
<h3>1.2.2) AI<em>CAS</em>ZONE Events</h3>
|
||||
|
||||
<ul>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Start">AI<em>Patrol#AI</em>PATROL_ZONE.Start</a>**: Start the process.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Route">AI<em>Patrol#AI</em>PATROL_ZONE.Route</a>**: Route the AI to a new random 3D point within the Patrol Zone.</li>
|
||||
<li>**<a href="##(AI_CAS_ZONE).Engage">AI<em>CAS</em>ZONE.Engage</a>**: Engage the AI to provide CAS in the Engage Zone, destroying any target it finds.</li>
|
||||
<li>**<a href="##(AI_CAS_ZONE).Abort">AI<em>CAS</em>ZONE.Abort</a>**: Aborts the engagement and return patrolling in the patrol zone.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).RTB">AI<em>Patrol#AI</em>PATROL_ZONE.RTB</a>**: Route the AI to the home base.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Detect">AI<em>Patrol#AI</em>PATROL_ZONE.Detect</a>**: The AI is detecting targets.</li>
|
||||
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Detected">AI<em>Patrol#AI</em>PATROL_ZONE.Detected</a>**: The AI has detected new targets.</li>
|
||||
<li>**<a href="##(AI_CAS_ZONE).Destroy">AI<em>CAS</em>ZONE.Destroy</a>**: The AI has destroyed a target <a href="Unit.html">Unit</a>.</li>
|
||||
<li>**<a href="##(AI_CAS_ZONE).Destroyed">AI<em>CAS</em>ZONE.Destroyed</a>**: The AI has destroyed all target <a href="Unit.html">Unit</a>s assigned in the CAS task.</li>
|
||||
<li><strong>Status</strong>: The AI is checking status (fuel and damage). When the tresholds have been reached, the AI will RTB.</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
|
||||
</dd>
|
||||
@@ -575,20 +582,6 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#string</em>
|
||||
<a id="#(AI_CAS_ZONE).ClassName" >
|
||||
<strong>AI_CAS_ZONE.ClassName</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
|
||||
Reference in New Issue
Block a user