Module Core.Spot
Core - Management of spotting logistics, that can be activated and deactivated upon command.
SPOT implements the DCS Spot class functionality, but adds additional luxury to be able to:
- Spot for a defined duration.
- Updates of laser spot position every 0.2 seconds for moving targets.
- Wiggle the spot at the target.
- Provide a Wrapper.Unit as a target, instead of a point.
- Implement a status machine, LaseOn, LaseOff.
Demo Missions
Demo Missions on GitHub
Author: FlightControl
Contributions:
- Ciribob: Showing the way how to lase targets + how laser codes work!!! Explained the autolase script.
- EasyEB: Ideas and Beta Testing
- Wingthor: Beta Testing
Global(s)
Global SPOT |
Implements the target spotting or marking functionality, but adds additional luxury to be able to:
|
Implements the target spotting or marking functionality, but adds additional luxury to be able to:
- Mark targets for a defined duration.
- Updates of laser spot position every 0.25 seconds for moving targets.
- Wiggle the spot at the target.
- Provide a Wrapper.Unit as a target, instead of a point.
- Implement a status machine, LaseOn, LaseOff.
1. SPOT constructor
- SPOT.New(): Creates a new SPOT object.
2. SPOT is a FSM
2.1 SPOT States
- Off: Lasing is switched off.
- On: Lasing is switched on.
- Destroyed: Target is destroyed.
2.2 SPOT Events
- **SPOT.LaseOn(Target, LaserCode, Duration)**: Lase to a target.
- **SPOT.LaseOff()**: Stop lasing the target.
- **SPOT.Lasing()**: Target is being lased.
- **SPOT.Destroyed()**: Triggered when target is destroyed.
3. Check if a Target is being lased
The method SPOT.IsLasing() indicates whether lasing is on or off.
Type(s)
Fields and Methods inherited from SPOT | Description |
---|---|
Destroyed Trigger for SPOT |
|
Check if the SPOT is lasing |
|
LaseOff Trigger for SPOT |
|
LaseOn Trigger for SPOT |
|
LaseOnCoordinate Trigger for SPOT. |
|
SPOT Constructor. |
|
Destroyed Handler OnAfter for SPOT |
|
LaseOff Handler OnAfter for SPOT |
|
LaseOn Handler OnAfter for SPOT |
|
LaseOnCoordinate Handler OnAfter for SPOT. |
|
Destroyed Handler OnBefore for SPOT |
|
LaseOff Handler OnBefore for SPOT |
|
LaseOn Handler OnBefore for SPOT |
|
LaseOnCoordinate Handler OnBefore for SPOT. |
|
Set laser start position relative to the lasing unit. |
|
Destroyed Asynchronous Trigger for SPOT |
|
LaseOff Asynchronous Trigger for SPOT |
|
LaseOn Asynchronous Trigger for SPOT |
|
SPOT:onafterLaseOn(From, Event, To, Target, LaserCode, Duration) |
On after LaseOn event. |
SPOT:onafterLaseOnCoordinate(From, Event, To, Coordinate, LaserCode, Duration) |
On after LaseOnCoordinate event. |
Fields and Methods inherited from FSM | Description |
---|---|
Adds an End state. |
|
Set the default #FSM_PROCESS template with key ProcessName providing the ProcessClass and the process object when it is assigned to a Wrapper.Controllable by the task. |
|
Adds a score for the FSM to be achieved. |
|
Adds a score for the FSM_PROCESS to be achieved. |
|
Add a new transition rule to the FSM. |
|
Get current state. |
|
Returns the End states. |
|
Returns a table of the SubFSM rules defined within the FSM. |
|
Returns a table with the scores defined. |
|
Returns the start state of the FSM. |
|
Get current state. |
|
Returns a table with the Subs defined. |
|
Returns a table of the transition rules defined within the FSM. |
|
Check if FSM is in state. |
|
Load call backs. |
|
Creates a new FSM object. |
|
Sets the start state of the FSM. |
|
Add to map. |
|
Call handler. |
|
Create transition. |
|
Delayed transition. |
|
Event map. |
|
Go sub. |
|
Handler. |
|
Is end state. |
|
Sub maps. |
|
Check if can do an event. |
|
Check if cannot do an event. |
|
Check if FSM is in state. |
|
Field(s)
Function(s)
Check if the SPOT is lasing
Defined in:
SPOT
Return value:
#boolean:
true if it is lasing
LaseOn Trigger for SPOT
Defined in:
SPOT
Parameters:
#number LaserCode
Laser code.
#number Duration
Duration of lasing in seconds.
LaseOnCoordinate Trigger for SPOT.
Defined in:
SPOT
Parameters:
Core.Point#COORDINATE Coordinate
The coordinate to lase.
#number LaserCode
Laser code.
#number Duration
Duration of lasing in seconds.
SPOT Constructor.
Destroyed Handler OnAfter for SPOT
Defined in:
SPOT
Parameters:
#string From
#string Event
#string To
LaseOff Handler OnAfter for SPOT
Defined in:
SPOT
Parameters:
#string From
#string Event
#string To
LaseOn Handler OnAfter for SPOT
Defined in:
SPOT
Parameters:
#string From
#string Event
#string To
LaseOnCoordinate Handler OnAfter for SPOT.
Defined in:
SPOT
Parameters:
#string From
#string Event
#string To
Destroyed Handler OnBefore for SPOT
Defined in:
SPOT
Parameters:
#string From
#string Event
#string To
Return value:
#boolean:
LaseOff Handler OnBefore for SPOT
Defined in:
SPOT
Parameters:
#string From
#string Event
#string To
Return value:
#boolean:
LaseOn Handler OnBefore for SPOT
Defined in:
SPOT
Parameters:
#string From
#string Event
#string To
Return value:
#boolean:
LaseOnCoordinate Handler OnBefore for SPOT.
Defined in:
SPOT
Parameters:
#string From
#string Event
#string To
Return value:
#boolean:
Set laser start position relative to the lasing unit.
Defined in:
SPOT
Parameter:
#table position
Start position of the laser relative to the lasing unit. Default is { x = 0, y = 2, z = 0 }
Return value:
self
Usage:
-- Set lasing position to be the position of the optics of the Gazelle M:
myspot:SetRelativeStartPosition({ x = 1.7, y = 1.2, z = 0 })
Destroyed Asynchronous Trigger for SPOT
Defined in:
SPOT
Parameter:
#number Delay
LaseOff Asynchronous Trigger for SPOT
Defined in:
SPOT
Parameter:
#number Delay
LaseOn Asynchronous Trigger for SPOT
Defined in:
SPOT
Parameters:
#number Delay
#number LaserCode
Laser code.
#number Duration
Duration of lasing in seconds.
On after LaseOn event.
Activates the laser spot.
Defined in:
SPOT
Parameters:
From
Event
To
Unit that is being lased.
#number LaserCode
Laser code.
#number Duration
Duration of lasing in seconds.
On after LaseOnCoordinate event.
Activates the laser spot.
Defined in:
SPOT
Parameters:
From
Event
To
Core.Point#COORDINATE Coordinate
The coordinate at which the laser is pointing.
#number LaserCode
Laser code.
#number Duration
Duration of lasing in seconds.
Defined in:
SPOT
Parameters:
From
Event
To
Field(s)
Function(s)
Adds an End state.
Set the default #FSM_PROCESS template with key ProcessName providing the ProcessClass and the process object when it is assigned to a Wrapper.Controllable by the task.
Defined in:
Parameters:
#table From
Can contain a string indicating the From state or a table of strings containing multiple From states.
#string Event
The Event name.
Core.Fsm#FSM_PROCESS Process
An sub-process FSM.
#table ReturnEvents
A table indicating for which returned events of the SubFSM which Event must be triggered in the FSM.
Return value:
The SubFSM.
Adds a score for the FSM to be achieved.
Defined in:
Parameters:
#string State
is the state of the process when the score needs to be given. (See the relevant state descriptions of the process).
#string ScoreText
is a text describing the score that is given according the status.
#number Score
is a number providing the score of the status.
Return value:
#FSM:
self
Adds a score for the FSM_PROCESS to be achieved.
Defined in:
Parameters:
#string From
is the From State of the main process.
#string Event
is the Event of the main process.
#string State
is the state of the process when the score needs to be given. (See the relevant state descriptions of the process).
#string ScoreText
is a text describing the score that is given according the status.
#number Score
is a number providing the score of the status.
Return value:
#FSM:
self
Add a new transition rule to the FSM.
A transition rule defines when and if the FSM can transition from a state towards another state upon a triggered event.
Defined in:
Parameters:
#table From
Can contain a string indicating the From state or a table of strings containing multiple From states.
#string Event
The Event name.
#string To
The To state.
Get current state.
Returns the End states.
Returns a table of the SubFSM rules defined within the FSM.
Returns a table with the scores defined.
Returns the start state of the FSM.
Get current state.
Returns a table with the Subs defined.
Returns a table of the transition rules defined within the FSM.
Check if FSM is in state.
Defined in:
Parameter:
#string State
State name.
Return value:
#boolean:
If true, FSM is in this state.
Load call backs.
Sets the start state of the FSM.
Add to map.
Call handler.
Defined in:
Parameters:
#string step
Step "onafter", "onbefore", "onenter", "onleave".
#string trigger
Trigger.
#table params
Parameters.
#string EventName
Event name.
Return value:
Value.
Create transition.
Defined in:
Parameter:
#string EventName
Event name.
Return value:
#function:
Function.
Delayed transition.
Defined in:
Parameter:
#string EventName
Event name.
Return value:
#function:
Function.
Event map.
Go sub.
Defined in:
Parameters:
#string ParentFrom
Parent from state.
#string ParentEvent
Parent event name.
Return value:
#table:
Subs.
Handler.
Is end state.
Defined in:
Parameter:
#string Current
Current state name.
Return values:
#table:
FSM parent.
#string:
Event name.
Sub maps.
Check if can do an event.
Defined in:
Parameter:
#string e
Event name.
Return values:
#boolean:
If true, FSM can do the event.
#string:
To state.
Check if cannot do an event.
Defined in:
Parameter:
#string e
Event name.
Return value:
#boolean:
If true, FSM cannot do the event.
Check if FSM is in state.
Defined in:
Parameters:
#string State
State name.
state
Return value:
#boolean:
If true, FSM is in this state.