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.