WSF
WsfSA_Processor Class Reference

#include <WsfSA_Processor.hpp>

Inheritance diagram for WsfSA_Processor:
Collaboration diagram for WsfSA_Processor:

Classes

struct  SA_EngagedTarget
struct  PerceiveData
struct  SA_AircraftKinematics
struct  SA_FuelSystemData
struct  SA_NavigationLatLon
struct  SA_NavigationDataSummary
struct  SA_FlightControlsDataSummary
struct  SA_WeaponNameQtyPair
struct  SA_WeaponEngagedTarget
struct  SA_WeaponsDataSummary
struct  SA_TrackEntryData
struct  SA_TrackManagerData

Public Types

enum  EntityPerceptionType { TRUTH = 0 , STATUS_MESSAGES = 1 }
enum  UpdateType : size_t {
  cSTATUS = 0 , cENGAGEMENT_DATA = 1 , cFLIGHT_DATA = 2 , cFUEL_DATA = 3 ,
  cNAV_DATA = 4 , cCONTROLS_DATA = 5 , cWEAPONS_DATA = 6 , cTRACK_DATA = 7 ,
  cASSETS_DATA = 8 , cPERCEIVED_ITEM_DATA = 9 , cPRIORITIZED_ITEM_DATA = 10 , cPERCEIVED_ITEM_CALCULATION = 11 ,
  cPRIORITIZED_ITEM_CALCULATION = 12 , cBEHAVIOR_CALCULATION = 13
}
enum  SA_Identification {
  ID_UNKNOWN = 0 , ID_FRIENDLY = 1 , ID_NEUTRAL = 2 , ID_BOGIE = 3 ,
  ID_BANDIT = 4
}
using ComponentList = WsfComponentListT<WsfProcessorComponent>
Public Types inherited from WsfPlatformPart
enum  { cLEVEL_ONE_DEBUG = 0x00000001 , cLEVEL_TWO_DEBUG = 0x00000002 }
using InternalMessageQueue = std::queue<WsfMessage*>
using RecipientMessageQueue = std::queue<std::pair<WsfPlatformPart*, WsfMessage*>>
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
Public Types inherited from WsfComponentT< WsfPlatform >
typedef WsfPlatform ParentType
 This is needed to support the WsfComponentList template.

Public Member Functions

 WsfSA_Processor (const WsfScenario &aScenario)
WsfSA_Processoroperator= (const WsfSA_Processor &)=delete
 ~WsfSA_Processor () override
WsfSA_ProcessorClone () const override
bool ProcessInput (UtInput &aInput) override
 Process script input.
bool Initialize (double aSimTime) override
 Initialize this processor.
bool Initialize2 (double aSimTime) override
 Initialize2 this processor.
void Update (double aSimTime) override
 Update this processor.
void HandleSA_ProcessorUpdates (double aSimTime)
 This method is called by Update() at the base update rate to implement the twelve SA Processor update types.
WsfSA_PerceivePerceive () const
 Return a pointer to the WsfSA_Perceive module.
WsfSA_AssessAssess () const
 Return a pointer to the WsfSA_Assess module.
WsfSA_PredictPredict () const
 Return a pointer to the WsfSA_Predict module.
const WsfSA_Processor::PerceiveDataGetData () const
 Return a const reference to the perceive data.
WsfP6DOF_MoverGetP6DofMover ()
 Get the P6DOF mover for the platform.
wsf::six_dof::MoverGetSixDOF_Mover ()
 Get the SixDOF mover for the platform.
WsfBrawlerMoverGetBrawlerMover ()
 Get the Brawler mover for the platform.
WsfBrawlerFuelGetBrawlerFuel ()
 Get the BrawlerFuel for the platform.
WsfAirMoverGetAirMover ()
 Get the WsfAirMover for the platform.
WsfFuelGetAirMoverFuel ()
 Get the WsfFuel for the platform.
double GetUpdateInterval (UpdateType aUpdateType) const
 Get the update interval (sec) for the requested data type.
double GetStartupInterval (UpdateType aUpdateType) const
 Get the startup interval (sec) parsed at startup for the requested data type.
bool SetUpdateInterval (UpdateType aUpdateType, double aUpdateInterval)
 Set the update interval (sec) for the requested data type.
void ResetUpdateInterval (UpdateType aUpdateType)
 Reset the update interval (sec) for the requested data type to the startup interval.
double GetLastUpdateTime (UpdateType aUpdateType) const
 Get the last update time (sec) for the requested data type.
bool SetLastUpdateTime (UpdateType aUpdateType, double aSimTime)
 Set the last update time (sec) for the requested data type.
double GetNextUpdateTime (UpdateType aUpdateType)
 Set the next update time (sec) for the requested data type.
bool SetNextUpdateTime (UpdateType aUpdateType, double aSimTime)
 Set the next update time (sec) for the requested data type.
std::string GetUpdateTypeString (const UpdateType aUpdateType)
 Returns the name string associated with the specified UpdateType.
double GetAssetDataPurgeLifetime () const
 Get the purge lifetime limit (sec) for asset data.
bool SetAssetDataPurgeLifetime (double aPurgeLifetime)
 Set the purge lifetime limit (sec) for asset data.
void ResetAssetDataPurgeLifetime ()
 Reset the purge lifetime limit (sec) for asset data.
double GetVisualPerceptionDelay ()
 Returns the current value for visual_perception_delay (sec).
double GetDisplayPerceptionDelay ()
 Returns the current value for display_perception_delay (sec).
bool SetVisualPerceptionDelay (double aDelayTime)
 Set the visual perception delay (sec).
bool SetDisplayPerceptionDelay (double aDelayTime)
 Set the display perception delay (sec).
WsfTrackProcessorGetTrackProcessor (const std::string &aProcessorName)
 Returns the a pointer to the track processor of the provided name.
std::vector< WsfTrackProcessor * > GetTrackProcessors ()
 Returns mTrackProcessorList that contains the pointers to the different track processors.
bool EntityIsInAssetGroup (const WsfSA_EntityPerception *aEntity) const
 Returns true if the specified entity is in the list of assets at the present time.
bool EntityIsInAssetGroup (size_t aEntityIndex) const
 Returns true if the specified entity index is in the list of assets at the present time.
const char * GetScriptClassName () const override
 Return the name of this script class.
UtScriptClass * CreateScriptClass (const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)
 Create the 'class' object for the script system.
void TrackManagerChanged (double aSimTime, WsfTrackManager *aNewManagerPtr)
 Change the track manager.
bool ProcessMessage (double aSimTime, const WsfMessage &aMessage) override
 Process a WsfMessage.
void SendMessage (double aSimTime, const WsfSA_EntityMessage &aStatusMessage)
 Send a message to external links.
void LocalTrackDropped (double aSimTime, const WsfLocalTrack *aLocalTrackPtr)
 Handle a track dropping.
bool HasExternalLinks () const
 True if the processor has external links (comms), false otherwise.
void PlatformAdded (double aSimTime, WsfPlatform *aPlatform) override
 These functions handle the addition or deletion of platforms in the simulation.
void PlatformDeleted (WsfPlatform *aPlatform) override
 This will remove a newly deleted platform from a local list of platforms, if present.
std::string GetSelectedWeapon () const
 These functions provide data related to the selected weapon.
const WsfExplicitWeaponSelectedWeapon () const
 Returns a pointer to the selected weapon.
int QuantityOfSelectedWeapon () const
 Returns the available quantity of the selected weapon.
bool SetSelectedWeapon (std::string aWeaponName)
 Returns true if the weapon selection was successful, else false.
const std::vector< WsfExplicitWeapon * > GetWeaponList () const
 Returns the current list of weapons.
int GetInitialWeaponsQuantity ()
 Returns the initial number of weapons.
void SetMasterArm (bool aArmed)
 Returns true if the weapon selection was successful, else false.
bool GetMasterArm () const
 Returns true if the master arm is active (armed), else false.
bool MasterWarningActive () const
 Returns true if the master warning is active, else false.
bool MasterCautionActive () const
 Returns true if the master warning is active, else false.
bool WeaponBayDoorsAreOpen () const
 Returns true if the weapon bay doors are open, else false.
bool SupportingWeapon () const
 Returns true if a weapon is flight is being supported, else false.
bool ShootCueActive () const
 Returns true if the shoot cue is active, else false.
bool ShootCueBlinking () const
 Returns true if the shoot cue is blinking, else false.
bool JammingDetected () const
 Returns true if radar jamming is detected by local radar sensors, else false.
bool EngagedTargetValid () const
 These functions provide data related to the primary target being engaged.
SA_EngagedTarget GetEngagedTarget () const
 Returns an EngagedTarget struct for the primary engaged target.
void SetEngagedTarget (SA_EngagedTarget aTarget)
 Set the engaged target using the specified data.
int QuantityOfChaff () const
 These functions provide data related to expendables.
int QuantityOfFlares () const
 Returns the available quantity of the flare cartridges.
int QuantityOfDecoys () const
 Returns the available quantity of the expendable decoys.
bool DispenseChaff (double aSimTime)
 Returns true if there was chaff available and dispenses a deployment of chaff.
bool DispenseFlare (double aSimTime)
 Returns true if there was a flare available and dispenses a deployment of flare(s).
bool DispenseDecoy (double aSimTime)
 Returns true if there was a decoy available and dispenses a single decoy.
const std::vector< size_t > GetFilteredPlatformIdList () const
 This function returns a list of filtered platform ids for platforms that will be evaluated.
bool IsEnemySide (const std::string &aSide) const
 This function returns true if the specified side is in the enemy sides list.
bool IsFriendlySide (const std::string &aSide) const
 This function returns true if the specified side is in the friendly sides list.
bool IsNeutralSide (const std::string &aSide) const
 This function returns true if the specified side is in the neutral sides list.
bool IsEnemyType (const std::string &aType) const
 This function returns true if the specified type is in the enemy types list.
bool IsFriendlyType (const std::string &aType) const
 This function returns true if the specified type is in the friendly types list.
bool IsNeutralType (const std::string &aType) const
 This function returns true if the specified type is in the neutral types list.
bool IsMissileType (const std::string &aType) const
 This function returns true if the specified type is in the missile types list.
const WsfTrackProcessorGetMWS_Processor () const
 Get the pointer to the Missile Warning System (MWS) track processor.
bool PlatformInTrackListMWS (const WsfPlatform *aPlatform) const
 This function will return true if the specified (truth) platform is in the track list of the Missile Warning System (MWS) track processor.
bool UseIFF () const
 This function returns true if IFF should be used for identification.
bool UseSimpleIdByType () const
 This function returns true if the simple identification-by-type approach should be used.
double MaxRangeForPerceivedAssets () const
 This function returns the max range (meters) for perceived assets.
double MaxRangeForPerceivedBogiesAndBandits () const
 This function returns the max range (meters) for perceived bogies and bandits.
bool UseMaxRangeFilterForPerceivedAssets () const
 This function returns true if the max range filter should be applied for assets.
bool UseMaxRangeFilterForPerceivedBogiesAndBandits () const
 This function returns true if the max range filter should be applied for bogies and bandits.
double MaxRangeForEngagementData () const
 This function returns the max range (meters) for engagement data.
bool UseMaxRangeForEngagementData () const
 This function returns true if the max range filter should be applied for engagements.
double AssumedRangeForAngleOnlyTargets () const
 This function returns the assumed range of angle-only tracks.
std::uint16_t FlightId ()
 This function returns the flight id.
std::string IdFlag ()
 This function returns the id flag string.
void SetFlightId (std::uint16_t aFlightId)
 This function sets the flight id.
void SetIdFlag (const std::string &aIdFlag)
 This function sets the id flag string.
const std::string & ESM_TrackProcessor () const
 This function returns the name of the optional ESM/RWR track processor.
const std::string & MWS_TrackProcessor () const
 This function returns the name of the optional missile warning system (MWS) track processor.
const std::string & RadarTrackProcessor () const
 This function returns the name of the optional radar track processor.
const std::string & IRST_TrackProcessor () const
 This function returns the name of the optional IRST track processor.
const std::string & DAS_TrackProcessor () const
 This function returns the name of the optional DAS track processor.
const std::string & FLIR_TrackProcessor () const
 This function returns the name of the optional FLIR track processor.
const std::string & EyesTrackProcessor () const
 This function returns the name of the optional eyes sensor track processor.
std::string PerceptionMasterTrackProcessor () const
 This function returns the name of the optional perception master track processor.
bool UsingPerceptionMasterTrackProcessor () const
 This function returns true if the optional perception master track processor is being used.
WsfTrackProcessorGetPerceptionMasterTrackProcessor () const
 Get the pointer to the optional perception master track processor (PMTP).
WsfLocalTrackListGetPerceptionMasterTrackProcessorTrackList () const
 This function returns the local track list for the optional perception master track processor (PMTP).
const SA_AircraftKinematicsGetAircraftKinematics () const
 This function returns the aircraft kinematics data.
void SetAircraftKinematics (const SA_AircraftKinematics &aFlightData)
 This function sets the aircraft kinematics data.
const SA_FuelSystemDataGetFuelSystemData () const
 This function returns the aircraft fuel data.
void SetFuelSystemData (const SA_FuelSystemData &aData)
 This function sets the aircraft fuel data.
const SA_NavigationDataSummaryGetNavigationDataSummary () const
 This function returns the aircraft nav data.
void SetNavigationDataSummary (const SA_NavigationDataSummary &aData)
 This function sets the aircraft nav data.
const SA_FlightControlsDataSummaryGetFlightControlsDataSummary () const
 This function returns the aircraft flight controls data.
void SetFlightControlsDataSummary (const SA_FlightControlsDataSummary &aData)
 This function sets the aircraft flight controls data.
const SA_WeaponsDataSummary GetWeaponsDataSummary () const
 This function returns the weapons data.
void SetWeaponsDataSummary (const SA_WeaponsDataSummary &aData)
 This function sets the weapons data.
const std::vector< SA_TrackManagerData > & GetTrackManagerList () const
 This function returns the track data for all of the track processors/managers.
void SetTrackManagerList (const std::vector< SA_TrackManagerData > &aData)
 This function sets the track data.
double TryUpdateFlightKinematics (double aSimTime)
 Attempt to update flight data at a sim time, and return an appropriate time for the next event update.
double TryUpdateFuel (double aSimTime)
 Attempt to update fuel data at a sim time, and return an appropriate time for the next event update.
double TryUpdateNav (double aSimTime)
 Attempt to update nav data at a sim time, and return an appropriate time for the next event update.
double TryUpdateFlightControls (double aSimTime)
 Attempt to update flight controls data at a sim time, and return an appropriate time for the next event update.
double TryUpdateWeapons (double aSimTime)
 Attempt to update weapons data at a sim time, and return an appropriate time for the next event update.
double TryUpdateTracks (double aSimTime)
 Attempt to update track data at a sim time, and return an appropriate time for the next event update.
double TryUpdateBehaviorCalculation (double aSimTime)
 Attempt to update advanced behavior trees and finite state machines, and return an appropriate time for the next event update.
void UpdateFlightKinematics (double aSimTime)
 Update flight data for the platform.
void UpdateFuel (double aSimTime)
 Update fuel data at a sim time, and return an appropriate time for the next event update.
void UpdateNav (double aSimTime)
 Update nav data at a sim time, and return an appropriate time for the next event update.
void UpdateFlightControls (double aSimTime)
 Update flight controls data at a sim time, and return an appropriate time for the next event update.
void UpdateWeapons (double aSimTime)
 Update weapons data at a sim time, and return an appropriate time for the next event update.
void UpdateTracks (double aSimTime)
 Update track data for the platform.
void UpdateFlightKinematicsData (double aSimTime)
 Update flight data for the platform.
void UpdateFuelData (double aSimTime)
 Update fuel data at a sim time, and return an appropriate time for the next event update.
void UpdateNavData (double aSimTime)
 Update nav data at a sim time, and return an appropriate time for the next event update.
void UpdateFlightControlsData (double aSimTime)
 Update flight controls data at a sim time, and return an appropriate time for the next event update.
void UpdateWeaponsData (double aSimTime)
 Update weapons data at a sim time, and return an appropriate time for the next event update.
void UpdateTrackData (double aSimTime)
 Update track data for the platform.
void UpdateBehaviorCalculation (double aSimTime)
 Update advanced behavior trees and finite state machines.
bool AfterburnerOn () const
 Returns true if afterburner is operating.
bool IsContrailing () const
 Returns true if producing contrails.
void CalculateObservables ()
 Calculate the observables (afterburner and contrails) of the current platform.
void CalculateEmissions ()
 Calculate the RF emissions for the current platform.
bool RadarEmitting () const
 This returns true if any radar is emitting.
bool JammerEmitting () const
 This returns true if any jammer is emitting.
bool OtherSystemsEmitting () const
 This returns true if any other systems are emitting.
bool FuelStateBingoReached () const
 This returns true if the bingo fuel state has been reached.
bool FuelStateJokerReached () const
 This returns true if the joker fuel state has been reached.
double FuelStateNormalized () const
 This returns the normalized fuel state, in the range from 0 (empty) to 1 (full).
double TimeToJoker () const
 This returns the time (sec) until reaching joker state at the current burn rate.
double TimeToBingo () const
 This returns the time (sec) until reaching bingo state at the current burn rate.
double TimeToEmpty () const
 This returns the time (sec) until fuel tank(s) are empty at the current burn rate.
Public Member Functions inherited from WsfScriptProcessor
 WsfScriptProcessor (const WsfScenario &aScenario)
 WsfScriptProcessor (const WsfScenario &aScenario, WsfStringId aPartClass, const std::string &aPartVarName)
 ~WsfScriptProcessor () override
WsfProcessorClone () const override
bool Initialize (double aSimTime) override
bool Initialize2 (double aSimTime) override
bool ProcessInput (UtInput &aInput) override
void Update (double aSimTime) override
bool ProcessMessage (double aSimTime, const WsfMessage &aMessage) override
void SendMessage (double aSimTime, const WsfMessage &aMessage) override
virtual void ExecuteOnMessageCreate (double aSimTime, WsfMessage &aMessage)
virtual bool ExecuteScript (double aSimTime, const std::string &aScriptName)
virtual bool ExecuteScript (double aSimTime, WsfStringId aScriptName, UtScriptData &aScriptRetVal, const UtScriptDataList &aScriptArgs=UtScriptDataList())
void ExecuteScriptAtTime (double aTime, WsfStringId aScriptName, const UtScriptDataList &aScriptArgs)
virtual void SuppressMessage (bool aSuppressMessage)
WsfScriptMessageHandlerGetMessageHandler ()
WsfScriptContextGetScriptContext ()
UtScriptContext * GetScriptAccessibleContext () const override
void SetPlatform (WsfPlatform *aPlatformPtr) override
const WsfBehaviorTreeBehaviorTree () const
WsfAdvancedBehaviorTreeAdvancedBehaviorTree () const
virtual const WsfScriptStateMachineGetStateMachine () const
wsf::ExternalLinksGetExternalLinks ()
std::string State ()
std::string StateAll ()
void SetState (std::string &stateName)
void SetStateAll (std::string &stateNameAll)
Public Member Functions inherited from WsfProcessor
 WsfProcessor (const WsfScenario &aScenario)
 ~WsfProcessor () override=default
ComponentListGetComponents ()
const ComponentListGetComponents () const
virtual void ProcessCallback (double aSimTime, const WsfCallback &aCallback)
WsfComponentCloneComponent () const override
const int * GetComponentRoles () const override
void * QueryInterface (int aRole) override
int GetComponentInitializationOrder () const override
const char * GetScriptClassName () const override
bool PreInitialize (double aSimTime) override
void PreInput () override
void TurnOff (double aSimTime) override
void TurnOn (double aSimTime) override
void SetNonOperational (double aSimTime) override
void SetOperational (double aSimTime) override
void PartBroken (double aSimTime) override
double GetUpdateInterval () const override
void SetUpdateInterval (double aUpdateInterval) override
Public Member Functions inherited from WsfPlatformPart
 WsfPlatformPart (const WsfScenario &aScenario, int aPartType)
WsfPlatformPartoperator= (const WsfPlatformPart &aRhs)=delete
 ~WsfPlatformPart () override
bool DebugEnabled () const
 Returns 'true' if debugging is enabled for this instance.
void SetDebugEnabled (bool aDebugEnabled)
unsigned int GetDebugMask ()
bool IsExternallyControlled () const
virtual void SetExternallyControlled (double aSimTime, bool aIsExternallyControlled)
int GetPartType () const
const char * GetScriptClassName () const override
WsfSimulationGetSimulation () const
const WsfScenarioGetScenario () const
WsfStringId GetComponentName () const override
void ComponentParentChanged (WsfPlatform *aPlatformPtr) override
WsfPlatformGetPlatform () const
double GetLastStatusChangeTime () const
void SetLastStatusChangeTime (double aSimTime)
 Allows a system to set the time at which the device was initialized.
bool CanBeMadeOperational () const
 Returns an indication that this system can be made operational.
bool CanBeMadeNonOperational () const
 Returns an indication that this system can be made non-operational.
bool CanBeTurnedOn () const
 Returns an indication that this system can be turned on.
bool CanBeTurnedOff () const
 Returns an indication that this system can be turned off.
bool IsTurnedOn () const
bool InitiallyTurnedOn () const
 Is the system to be turned 'on' when added to the simulation?
void SetInitiallyTurnedOn (bool aInitiallyTurnedOn)
 Sets if the system is turned on when added to the simulation.
virtual void Restore (double aSimTime)
bool IsOperational () const
bool SetOperational (double aSimTime, bool aMakeOperational)
double GetDamageFactor () const
bool SetDamageFactor (double aSimTime, double aDamageFactor)
bool IsCritical () const
void SetCritical (bool aValue)
virtual void OnPlatformBrokenEvent (double aSimTime)
 Owning platform has issued a broken event.
bool IsBroken () const
WsfInternalLinksGetInternalLinks ()
 Return the internal links for this part.
virtual bool HasInternalLinks () const
 Does this platform part have a communication link to other platform parts?
virtual bool ReceiveMessage (double aSimTime, const WsfMessage &aMessage)
virtual void SendMessageTo (double aSimTime, const WsfMessage &aMessage, WsfStringId aRecipientId)
void SendMessageToProcessor (double aSimTime, const WsfMessage &aMessage, WsfStringId aRecipientId)
virtual void SendQueuedMessages (double aSimTime)
const WsfCategoryListGetCategories () const
 Get the categories to which this part belongs.
void AddCategory (WsfStringId aCategoryId)
 Adds the provided category to the platform part's category list.
bool IsCategoryMember (WsfStringId aCategoryId) const
const WsfGroupListGetGroups () const
 Get the groups to which this platform part belongs.
void JoinGroup (WsfGroup *aGroupPtr)
 Join the given group.
void LeaveGroup (WsfGroup *aGroupPtr)
 Leave the given group.
bool IsGroupMember (WsfStringId aGroupId)
unsigned int GetUpdateEventEpoch () const
void IncrementUpdateEventEpoch ()
bool UpdateEventActive () const
 Is an 'Update' event active?
void SetUpdateEventActive (bool aUpdateEventActive)
 Indicate if the 'Update' event is active.
Public Member Functions inherited from WsfObject
 WsfObject ()
 This is the constructor for the WsfObject class.
 ~WsfObject () override
 This is the destructor for the WsfObject class.
const char * GetScriptClassName () const override
const std::string & GetType () const
WsfStringId GetTypeId () const
 Get the string ID of the 'type' of the object.
void SetType (WsfStringId aType)
const std::string & GetBaseType () const
WsfStringId GetBaseTypeId () const
const TypeListGetTypeList () const
bool IsA_TypeOf (WsfStringId aType) const
WsfObjectoperator= (const WsfObject &aRhs)
 Assignment operator.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
const std::string & GetName () const
WsfStringId GetNameId () const
void SetName (WsfStringId aName)
Public Member Functions inherited from WsfComponentT< WsfPlatform >
 WsfComponentT ()
 WsfComponentT (const WsfComponentT &) noexcept
WsfComponentToperator= (const WsfComponentT &) noexcept
 ~WsfComponentT () override=default
ParentTypeGetComponentParent () const
void SetComponentParent (ParentType *aParentPtr)
Public Member Functions inherited from WsfComponent
virtual ~WsfComponent ()=default
template<typename T>
bool QueryInterfaceT (T *&aRolePtr)
bool ComponentHasRole (int aRole)
 Returns true if the component has the specified role.
Public Member Functions inherited from WsfUniqueId
 WsfUniqueId ()
 Construtor initializes the unique identifier to 0.
 WsfUniqueId (const WsfUniqueId &)
 Copy constructor initializes the unique identifier to 0.
WsfUniqueIdoperator= (const WsfUniqueId &)
unsigned int GetUniqueId () const
 Get the unique identifier assigned to this object.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
Public Member Functions inherited from WsfAuxDataEnabled
 WsfAuxDataEnabled ()=default
 WsfAuxDataEnabled (const WsfAuxDataEnabled &aSrc)=default
WsfAuxDataEnabledoperator= (const WsfAuxDataEnabled &aRhs)
 WsfAuxDataEnabled (WsfAuxDataEnabled &&)=default
WsfAuxDataEnabledoperator= (WsfAuxDataEnabled &&)=default
virtual ~WsfAuxDataEnabled () noexcept
void SetAuxData (const WsfAttributeContainer &aAuxData)
void DeleteAuxData ()
 Delete the aux data container from the object.
void MergeAuxData (const WsfAuxDataEnabled &aSrc)
 Merge the object's aux data with aux data from an existing object.
void UpdateAuxData (const WsfAuxDataEnabled &aSrc)
 Update the object's aux data with aux data from an existing object.
bool HasAuxData () const
 Returns true if this object has aux data.
bool ProcessInput (UtInput &aInput)
template<typename T>
void Serialize (T &aBuff)
 (De)serialization for XIO
WsfAttributeContainerGetAuxData ()
const WsfAttributeContainerGetAuxData () const noexcept
const WsfAttributeContainerGetAuxDataConst () const noexcept

Static Public Member Functions

static const std::vector< UpdateTypeGetCognitiveUpdateGroup ()
 Get the UpdateTypes that are associated with the cognitive_update_interval group.
static const std::vector< UpdateTypeGetPlatformUpdateGroup ()
 Get the UpdateTypes that are associated with the platform_update_interval group.
static const std::vector< UpdateTypeGetUniversalUpdateGroup ()
 Get the UpdateTypes that are associated with the universal_update_interval group.
static WsfSA_ProcessorCreateSA_Processor (double aSimTime, WsfPlatform &aPlatform)
 Create a new SA Processor for a platform.
static WsfSA_ProcessorGetSA_Processor (const WsfPlatform &aPlatform)
 Get the pointer to the first attached SA processor.
static double RoundToBaseRateMultiple (double aNumToRound, double aMultiple)
 This will return a double that is a multiple of the parameter provided.
static const std::vector< WsfSA_EntityPerception * > & GetPlatformPerceivedAssets (const WsfPlatform &aPlatform, double aSimTime)
 Get the perceived assets for a platform.
static const std::vector< WsfSA_EntityPerception * > & GetPlatformPerceivedBogies (const WsfPlatform &aPlatform, double aSimTime)
 Get the perceived bogies for a platform.
static const std::vector< WsfSA_EntityPerception * > & GetPlatformPerceivedBandits (const WsfPlatform &aPlatform, double aSimTime)
 Get the perceived bandits for a platform.
static void CheckForFrequencyUnits (double &aValue, UtInput &aInput)
 Check an input value for frequency units, and if needed, convert it to seconds.
static bool PlatformContainsSA_Processor (WsfPlatform *aPlatform)
 Other miscellaneous functions.
static const WsfSA_ProcessorGetPlatformSA_Processor (const WsfPlatform *aPlatform)
 This function will return a pointer to the first SA Processor on the specified platform.

Static Public Attributes

static const size_t cUPDATE_TYPE_COUNT {14}
Static Public Attributes inherited from WsfAuxDataEnabled
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataAccessed
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataDestroyed

Protected Member Functions

 WsfSA_Processor (const WsfSA_Processor &aSrc)
void CallScript (double aSimTime, const std::string &aScriptName)
 This will call an AFSIM script function with the specified name.
double CallScriptReturnDouble (double aSimTime, const std::string &aScriptName)
 This will call an AFSIM script function with the specified name.
bool ScriptExists (const std::string &aScriptName)
 This will return true if an AFSIM script function with the specified name exists.
void DebugTestOutput (double aSimTime)
 This outputs test data, useful for debugging.
Protected Member Functions inherited from WsfScriptProcessor
 WsfScriptProcessor (const WsfScriptProcessor &aSrc)
 WsfProcessor (const WsfProcessor &aSrc)
 Copy constructor (for Clone()).
WsfProcessoroperator= (const WsfProcessor &aRhs)=delete
 WsfPlatformPart (const WsfPlatformPart &aSrc)
 Copy constructor (for Clone()).
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).
Protected Member Functions inherited from WsfUniqueId
void AssignUniqueId (WsfSimulation *aSimulationPtr)

Additional Inherited Members

Protected Attributes inherited from WsfScriptProcessor
WsfScriptContextmContextPtr
 Pointer to the script context.
WsfScriptMessageHandlermMessageHandlerPtr
 Pointer to the 'on_message' handler.
UtScript * mOnMessageCreateScriptPtr
 Pointer to the 'on_message_create' script.
UtScriptClass * mMessageClassPtr
wsf::ExternalLinks mExternalLinks
 The external recipients.
WsfBehaviorTreemBehaviorTreePtr
ut::CloneablePtr< WsfAdvancedBehaviorTreemAdvancedBehaviorTreePtr
std::unique_ptr< WsfScriptStateMachinemStateMachinePtr
int mStateIndex
bool mSuppressMessage

Member Enumeration Documentation

◆ EntityPerceptionType

Enumerator
TRUTH 
STATUS_MESSAGES 

◆ SA_Identification

Enumerator
ID_UNKNOWN 
ID_FRIENDLY 
ID_NEUTRAL 
ID_BOGIE 
ID_BANDIT 

◆ UpdateType

Enumerator
cSTATUS 
cENGAGEMENT_DATA 
cFLIGHT_DATA 
cFUEL_DATA 
cNAV_DATA 
cCONTROLS_DATA 
cWEAPONS_DATA 
cTRACK_DATA 
cASSETS_DATA 
cPERCEIVED_ITEM_DATA 
cPRIORITIZED_ITEM_DATA 
cPERCEIVED_ITEM_CALCULATION 
cPRIORITIZED_ITEM_CALCULATION 
cBEHAVIOR_CALCULATION 

Constructor & Destructor Documentation

◆ WsfSA_Processor() [1/2]

◆ ~WsfSA_Processor()

WsfSA_Processor::~WsfSA_Processor ( )
override

◆ WsfSA_Processor() [2/2]

WsfSA_Processor::WsfSA_Processor ( const WsfSA_Processor & aSrc)
protected

Member Function Documentation

◆ AfterburnerOn()

bool WsfSA_Processor::AfterburnerOn ( ) const
inline

Returns true if afterburner is operating.

Referenced by DebugTestOutput().

◆ Assess()

◆ AssumedRangeForAngleOnlyTargets()

double WsfSA_Processor::AssumedRangeForAngleOnlyTargets ( ) const
inline

This function returns the assumed range of angle-only tracks.

◆ CalculateEmissions()

◆ CalculateObservables()

void WsfSA_Processor::CalculateObservables ( )

Calculate the observables (afterburner and contrails) of the current platform.

References WsfSimulation::GetAtmosphere(), WsfPlatformPart::GetPlatform(), and WsfPlatformPart::GetSimulation().

Referenced by UpdateBehaviorCalculation(), and WsfSA_Assess::UpdateEngagementsData().

◆ CallScript()

void WsfSA_Processor::CallScript ( double aSimTime,
const std::string & aScriptName )
protected

This will call an AFSIM script function with the specified name.

If returnValueExpected is true, the function will be added to the list of scripts awaiting a return value. Use false if no return value is needed.

Parameters
aSimTimesim time to call script at.
aScriptNamename of the script to call.

◆ CallScriptReturnDouble()

double WsfSA_Processor::CallScriptReturnDouble ( double aSimTime,
const std::string & aScriptName )
protected

This will call an AFSIM script function with the specified name.

If returnValueExpected is true, the function will be added to the list of scripts awaiting a return value. Use false if no return value is needed.

Parameters
aSimTimesim time to call script at.
aScriptNamename of the script to call.

◆ CheckForFrequencyUnits()

void WsfSA_Processor::CheckForFrequencyUnits ( double & aValue,
UtInput & aInput )
static

Check an input value for frequency units, and if needed, convert it to seconds.

Parameters
aValuevalue of the input.
aInputinput to check units of.

◆ Clone()

WsfSA_Processor * WsfSA_Processor::Clone ( ) const
inlineoverridevirtual

Create a clone of this object.

Returns
A pointer to the new copy.

Implements WsfProcessor.

References WsfSA_Processor().

Referenced by WsfScriptSA_ProcessorClass::Clone().

◆ CreateSA_Processor()

WsfSA_Processor * WsfSA_Processor::CreateSA_Processor ( double aSimTime,
WsfPlatform & aPlatform )
static

Create a new SA Processor for a platform.

Parameters
aSimTimesim time to create the SAP at.
aPlatformplatform to create the SAP for.

References WsfComponentListT< COMPONENT_TYPE >::AddComponent(), WsfObject::GetName(), WsfPlatform::GetScenario(), WsfPlatform::GetSimTime(), Initialize(), WsfProcessor::PreInitialize(), WsfObject::SetName(), and WsfSA_Processor().

◆ CreateScriptClass()

UtScriptClass * WsfSA_Processor::CreateScriptClass ( const std::string & aClassName,
UtScriptTypes * aScriptTypesPtr )

Create the 'class' object for the script system.

This is invoked once by WsfScriptManager to create the 'class' object that defines the interface to instances of this class from the script system.

Parameters
aClassNamename for the new class.
aScriptTypesPtrpointer to the script types to store in the script class.

◆ DAS_TrackProcessor()

const std::string & WsfSA_Processor::DAS_TrackProcessor ( ) const
inline

This function returns the name of the optional DAS track processor.

If no such processor exists, it returns an empty string.

◆ DebugTestOutput()

◆ DispenseChaff()

bool WsfSA_Processor::DispenseChaff ( double aSimTime)

Returns true if there was chaff available and dispenses a deployment of chaff.

◆ DispenseDecoy()

bool WsfSA_Processor::DispenseDecoy ( double aSimTime)

Returns true if there was a decoy available and dispenses a single decoy.

◆ DispenseFlare()

bool WsfSA_Processor::DispenseFlare ( double aSimTime)

Returns true if there was a flare available and dispenses a deployment of flare(s).

◆ EngagedTargetValid()

bool WsfSA_Processor::EngagedTargetValid ( ) const

These functions provide data related to the primary target being engaged.

Returns true if there is an engaged target.

Referenced by UpdateWeaponsData().

◆ EntityIsInAssetGroup() [1/2]

bool WsfSA_Processor::EntityIsInAssetGroup ( const WsfSA_EntityPerception * aEntity) const

Returns true if the specified entity is in the list of assets at the present time.

Parameters
aEntityentity to test.

References EntityIsInAssetGroup().

Referenced by EntityIsInAssetGroup(), and UpdateTrackData().

◆ EntityIsInAssetGroup() [2/2]

bool WsfSA_Processor::EntityIsInAssetGroup ( size_t aEntityIndex) const

Returns true if the specified entity index is in the list of assets at the present time.

Parameters
aEntityIndexentity to test.

◆ ESM_TrackProcessor()

const std::string & WsfSA_Processor::ESM_TrackProcessor ( ) const
inline

This function returns the name of the optional ESM/RWR track processor.

If no such processor exists, it returns an empty string.

◆ EyesTrackProcessor()

const std::string & WsfSA_Processor::EyesTrackProcessor ( ) const
inline

This function returns the name of the optional eyes sensor track processor.

If no such processor exists, it returns an empty string.

◆ FlightId()

std::uint16_t WsfSA_Processor::FlightId ( )
inline

This function returns the flight id.

Zero indicated not a member of any flight.

Referenced by DebugTestOutput(), and WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ FLIR_TrackProcessor()

const std::string & WsfSA_Processor::FLIR_TrackProcessor ( ) const
inline

This function returns the name of the optional FLIR track processor.

If no such processor exists, it returns an empty string.

◆ FuelStateBingoReached()

bool WsfSA_Processor::FuelStateBingoReached ( ) const

This returns true if the bingo fuel state has been reached.

Referenced by DebugTestOutput().

◆ FuelStateJokerReached()

bool WsfSA_Processor::FuelStateJokerReached ( ) const

This returns true if the joker fuel state has been reached.

Referenced by DebugTestOutput().

◆ FuelStateNormalized()

double WsfSA_Processor::FuelStateNormalized ( ) const

This returns the normalized fuel state, in the range from 0 (empty) to 1 (full).

Referenced by DebugTestOutput().

◆ GetAircraftKinematics()

const SA_AircraftKinematics & WsfSA_Processor::GetAircraftKinematics ( ) const
inline

This function returns the aircraft kinematics data.

◆ GetAirMover()

WsfAirMover * WsfSA_Processor::GetAirMover ( )
inline

Get the WsfAirMover for the platform.

This will be null if the platform lacks a WsfAirMover.

◆ GetAirMoverFuel()

WsfFuel * WsfSA_Processor::GetAirMoverFuel ( )
inline

Get the WsfFuel for the platform.

This will be null if the platform lacks a WsfFuel object.

◆ GetAssetDataPurgeLifetime()

double WsfSA_Processor::GetAssetDataPurgeLifetime ( ) const
inline

Get the purge lifetime limit (sec) for asset data.

Referenced by WsfSA_Perceive::PurgeOldAssets().

◆ GetBrawlerFuel()

WsfBrawlerFuel * WsfSA_Processor::GetBrawlerFuel ( )
inline

Get the BrawlerFuel for the platform.

This will be null if the platform lacks a WsfBrawlerFuel object.

◆ GetBrawlerMover()

WsfBrawlerMover * WsfSA_Processor::GetBrawlerMover ( )
inline

Get the Brawler mover for the platform.

This will be null if the platform lacks a WsfBrawlerMover.

◆ GetCognitiveUpdateGroup()

const std::vector< UpdateType > WsfSA_Processor::GetCognitiveUpdateGroup ( )
inlinestatic

Get the UpdateTypes that are associated with the cognitive_update_interval group.

References cASSETS_DATA, cENGAGEMENT_DATA, cPERCEIVED_ITEM_DATA, and cPRIORITIZED_ITEM_DATA.

Referenced by WsfScriptSA_ProcessorClass::GetGroupedTypes(), and ProcessInput().

◆ GetData()

const WsfSA_Processor::PerceiveData * WsfSA_Processor::GetData ( ) const
inline

Return a const reference to the perceive data.

Referenced by WsfSA_Assess::Initialize(), WsfSA_Assess::PerceivedGroups(), and WsfSA_Assess::PerceivedThreatItems().

◆ GetDisplayPerceptionDelay()

double WsfSA_Processor::GetDisplayPerceptionDelay ( )
inline

Returns the current value for display_perception_delay (sec).

◆ GetEngagedTarget()

WsfSA_Processor::SA_EngagedTarget WsfSA_Processor::GetEngagedTarget ( ) const

Returns an EngagedTarget struct for the primary engaged target.

Referenced by UpdateWeaponsData().

◆ GetFilteredPlatformIdList()

const std::vector< size_t > WsfSA_Processor::GetFilteredPlatformIdList ( ) const
inline

This function returns a list of filtered platform ids for platforms that will be evaluated.

Referenced by WsfSA_Assess::UpdateEngagementsData().

◆ GetFlightControlsDataSummary()

const SA_FlightControlsDataSummary & WsfSA_Processor::GetFlightControlsDataSummary ( ) const
inline

This function returns the aircraft flight controls data.

◆ GetFuelSystemData()

const SA_FuelSystemData & WsfSA_Processor::GetFuelSystemData ( ) const
inline

This function returns the aircraft fuel data.

◆ GetInitialWeaponsQuantity()

int WsfSA_Processor::GetInitialWeaponsQuantity ( )
inline

Returns the initial number of weapons.

◆ GetLastUpdateTime()

double WsfSA_Processor::GetLastUpdateTime ( UpdateType aUpdateType) const
inline

Get the last update time (sec) for the requested data type.

Parameters
aUpdateTypeone of WsfSA_Processor::UpdateType enumeration

Referenced by UpdateFlightControls(), UpdateFlightKinematics(), UpdateFuel(), UpdateNav(), UpdateTracks(), and UpdateWeapons().

◆ GetMasterArm()

bool WsfSA_Processor::GetMasterArm ( ) const

Returns true if the master arm is active (armed), else false.

Referenced by UpdateWeaponsData().

◆ GetMWS_Processor()

const WsfTrackProcessor * WsfSA_Processor::GetMWS_Processor ( ) const

Get the pointer to the Missile Warning System (MWS) track processor.

If no such track processor exists, return null.

Referenced by PlatformInTrackListMWS().

◆ GetNavigationDataSummary()

const SA_NavigationDataSummary & WsfSA_Processor::GetNavigationDataSummary ( ) const
inline

This function returns the aircraft nav data.

◆ GetNextUpdateTime()

double WsfSA_Processor::GetNextUpdateTime ( UpdateType aUpdateType)
inline

Set the next update time (sec) for the requested data type.

Parameters
aUpdateTypeone of the WsfSA_Processor::UpdateType enumeration

Referenced by HandleSA_ProcessorUpdates().

◆ GetP6DofMover()

WsfP6DOF_Mover * WsfSA_Processor::GetP6DofMover ( )
inline

Get the P6DOF mover for the platform.

This will be null if no WsfP6DOF_Mover is on the platform.

◆ GetPerceptionMasterTrackProcessor()

WsfTrackProcessor * WsfSA_Processor::GetPerceptionMasterTrackProcessor ( ) const
inline

Get the pointer to the optional perception master track processor (PMTP).

If there is no PMTP, it returns null.

Referenced by GetPerceptionMasterTrackProcessorTrackList().

◆ GetPerceptionMasterTrackProcessorTrackList()

WsfLocalTrackList * WsfSA_Processor::GetPerceptionMasterTrackProcessorTrackList ( ) const

This function returns the local track list for the optional perception master track processor (PMTP).

If there is no PMTP, it returns null.

References GetPerceptionMasterTrackProcessor(), and PerceptionMasterTrackProcessor().

Referenced by WsfSA_Assess::GetPerceivedTrackedPlatformWithTarget(), and WsfSA_Perceive::UpdatePerceivedItemsCalculation().

◆ GetPlatformPerceivedAssets()

const std::vector< WsfSA_EntityPerception * > & WsfSA_Processor::GetPlatformPerceivedAssets ( const WsfPlatform & aPlatform,
double aSimTime )
static

Get the perceived assets for a platform.

This will be empty if no SA Processor is on the platform.

Parameters
aPlatformplatform to get perceived assets for.
aSimTimesim time to get assets at.

References GetSA_Processor().

◆ GetPlatformPerceivedBandits()

const std::vector< WsfSA_EntityPerception * > & WsfSA_Processor::GetPlatformPerceivedBandits ( const WsfPlatform & aPlatform,
double aSimTime )
static

Get the perceived bandits for a platform.

This will be empty if no SA Processor is on the platform.

Parameters
aPlatformplatform to get perceived bandits for.
aSimTimesim time to get bandits at.

References GetSA_Processor().

◆ GetPlatformPerceivedBogies()

const std::vector< WsfSA_EntityPerception * > & WsfSA_Processor::GetPlatformPerceivedBogies ( const WsfPlatform & aPlatform,
double aSimTime )
static

Get the perceived bogies for a platform.

This will be empty if no SA Processor is on the platform.

Parameters
aPlatformplatform to get perceived bogies for.
aSimTimesim time to get threats at.

References GetSA_Processor().

◆ GetPlatformSA_Processor()

const WsfSA_Processor * WsfSA_Processor::GetPlatformSA_Processor ( const WsfPlatform * aPlatform)
static

This function will return a pointer to the first SA Processor on the specified platform.

References WsfComponentList::RoleIterator< T >::AtEnd(), and WsfSA_Processor().

◆ GetPlatformUpdateGroup()

const std::vector< UpdateType > WsfSA_Processor::GetPlatformUpdateGroup ( )
inlinestatic

Get the UpdateTypes that are associated with the platform_update_interval group.

References cCONTROLS_DATA, cFLIGHT_DATA, cFUEL_DATA, cNAV_DATA, cSTATUS, cTRACK_DATA, and cWEAPONS_DATA.

Referenced by WsfScriptSA_ProcessorClass::GetGroupedTypes(), and ProcessInput().

◆ GetSA_Processor()

WsfSA_Processor * WsfSA_Processor::GetSA_Processor ( const WsfPlatform & aPlatform)
static

◆ GetScriptClassName()

const char * WsfSA_Processor::GetScriptClassName ( ) const
inlineoverride

Return the name of this script class.

◆ GetSelectedWeapon()

std::string WsfSA_Processor::GetSelectedWeapon ( ) const

These functions provide data related to the selected weapon.

Returns the name of the selected weapon.

◆ GetSixDOF_Mover()

wsf::six_dof::Mover * WsfSA_Processor::GetSixDOF_Mover ( )
inline

Get the SixDOF mover for the platform.

This will be null if the platform lacks a WsfSixDOF_Mover.

◆ GetStartupInterval()

double WsfSA_Processor::GetStartupInterval ( UpdateType aUpdateType) const
inline

Get the startup interval (sec) parsed at startup for the requested data type.

Parameters
aUpdateTypeone of WsfSA_Processor::Updatetype enuermation

◆ GetTrackManagerList()

const std::vector< SA_TrackManagerData > & WsfSA_Processor::GetTrackManagerList ( ) const
inline

This function returns the track data for all of the track processors/managers.

Referenced by WsfSA_Assess::CalculateTrackedPlatforms(), and DebugTestOutput().

◆ GetTrackProcessor()

WsfTrackProcessor * WsfSA_Processor::GetTrackProcessor ( const std::string & aProcessorName)

Returns the a pointer to the track processor of the provided name.

A nullptr will be returned if a processor cannot be found with the provided name.

Parameters
aProcessorNamename of the processor to be sent

Referenced by WsfSA_Perceive::UpdatePerceivedItemsCalculation().

◆ GetTrackProcessors()

std::vector< WsfTrackProcessor * > WsfSA_Processor::GetTrackProcessors ( )
inline

Returns mTrackProcessorList that contains the pointers to the different track processors.

◆ GetUniversalUpdateGroup()

const std::vector< UpdateType > WsfSA_Processor::GetUniversalUpdateGroup ( )
inlinestatic

Get the UpdateTypes that are associated with the universal_update_interval group.

References cASSETS_DATA, cCONTROLS_DATA, cENGAGEMENT_DATA, cFLIGHT_DATA, cFUEL_DATA, cNAV_DATA, cPERCEIVED_ITEM_DATA, cPRIORITIZED_ITEM_DATA, cSTATUS, cTRACK_DATA, and cWEAPONS_DATA.

Referenced by WsfScriptSA_ProcessorClass::GetGroupedTypes(), and ProcessInput().

◆ GetUpdateInterval()

double WsfSA_Processor::GetUpdateInterval ( UpdateType aUpdateType) const
inline

Get the update interval (sec) for the requested data type.

Parameters
aUpdateTypeone of WsfSA_Processor::UpdateType enumeration

Referenced by WsfSA_Perceive::UpdateStatus().

◆ GetUpdateTypeString()

std::string WsfSA_Processor::GetUpdateTypeString ( const UpdateType aUpdateType)

◆ GetVisualPerceptionDelay()

double WsfSA_Processor::GetVisualPerceptionDelay ( )
inline

Returns the current value for visual_perception_delay (sec).

◆ GetWeaponList()

const std::vector< WsfExplicitWeapon * > WsfSA_Processor::GetWeaponList ( ) const

Returns the current list of weapons.

◆ GetWeaponsDataSummary()

const SA_WeaponsDataSummary WsfSA_Processor::GetWeaponsDataSummary ( ) const
inline

This function returns the weapons data.

◆ HandleSA_ProcessorUpdates()

void WsfSA_Processor::HandleSA_ProcessorUpdates ( double aSimTime)

This method is called by Update() at the base update rate to implement the twelve SA Processor update types.

Parameters
aSimTimeSimulation time at update.

There is a particular order in which these updates are checked/performed (data pipeline) The update intervals are checked at the base interval rate and each update type repeats at a multiple of the base interval. In order for a given type of update to be performed, there are two conditions:

  1. Its update interval must be set to a positive number (otherwise, that update type is disabled)
  2. Its next scheduled time is less than aSimTime

References cASSETS_DATA, cBEHAVIOR_CALCULATION, cCONTROLS_DATA, cENGAGEMENT_DATA, cFLIGHT_DATA, cFUEL_DATA, cNAV_DATA, cPERCEIVED_ITEM_CALCULATION, cPERCEIVED_ITEM_DATA, cPRIORITIZED_ITEM_CALCULATION, cPRIORITIZED_ITEM_DATA, cSTATUS, cTRACK_DATA, cWEAPONS_DATA, GetNextUpdateTime(), WsfProcessor::GetUpdateInterval(), HasExternalLinks(), SetLastUpdateTime(), SetNextUpdateTime(), TryUpdateBehaviorCalculation(), TryUpdateFlightControls(), TryUpdateFlightKinematics(), TryUpdateFuel(), TryUpdateNav(), TryUpdateTracks(), and TryUpdateWeapons().

Referenced by Update().

◆ HasExternalLinks()

bool WsfSA_Processor::HasExternalLinks ( ) const
inline

True if the processor has external links (comms), false otherwise.

References WsfScriptProcessor::mExternalLinks.

Referenced by HandleSA_ProcessorUpdates().

◆ IdFlag()

std::string WsfSA_Processor::IdFlag ( )
inline

This function returns the id flag string.

Referenced by WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ Initialize()

bool WsfSA_Processor::Initialize ( double aSimTime)
overridevirtual

◆ Initialize2()

bool WsfSA_Processor::Initialize2 ( double aSimTime)
overridevirtual

Initialize2 this processor.

Parameters
aSimTimesim time when the processor is initialized (second pass).

Reimplemented from WsfProcessor.

References cCONTROLS_DATA, cFLIGHT_DATA, cFUEL_DATA, cNAV_DATA, WsfScriptProcessor::Initialize2(), UpdateFlightControlsData(), UpdateFlightKinematicsData(), UpdateFuelData(), and UpdateNavData().

◆ IRST_TrackProcessor()

const std::string & WsfSA_Processor::IRST_TrackProcessor ( ) const
inline

This function returns the name of the optional IRST track processor.

If no such processor exists, it returns an empty string.

◆ IsContrailing()

bool WsfSA_Processor::IsContrailing ( ) const
inline

Returns true if producing contrails.

◆ IsEnemySide()

bool WsfSA_Processor::IsEnemySide ( const std::string & aSide) const

This function returns true if the specified side is in the enemy sides list.

Referenced by UpdateTrackData(), and WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ IsEnemyType()

bool WsfSA_Processor::IsEnemyType ( const std::string & aType) const

This function returns true if the specified type is in the enemy types list.

Referenced by UpdateTrackData(), and WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ IsFriendlySide()

bool WsfSA_Processor::IsFriendlySide ( const std::string & aSide) const

This function returns true if the specified side is in the friendly sides list.

Referenced by UpdateTrackData(), and WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ IsFriendlyType()

bool WsfSA_Processor::IsFriendlyType ( const std::string & aType) const

This function returns true if the specified type is in the friendly types list.

Referenced by UpdateTrackData(), and WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ IsMissileType()

bool WsfSA_Processor::IsMissileType ( const std::string & aType) const

This function returns true if the specified type is in the missile types list.

Referenced by UpdateTrackData(), WsfSA_EntityPerception::WsfSA_EntityPerception(), and WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ IsNeutralSide()

bool WsfSA_Processor::IsNeutralSide ( const std::string & aSide) const

This function returns true if the specified side is in the neutral sides list.

Referenced by UpdateTrackData(), and WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ IsNeutralType()

bool WsfSA_Processor::IsNeutralType ( const std::string & aType) const

This function returns true if the specified type is in the neutral types list.

Referenced by UpdateTrackData(), and WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ JammerEmitting()

bool WsfSA_Processor::JammerEmitting ( ) const
inline

This returns true if any jammer is emitting.

◆ JammingDetected()

bool WsfSA_Processor::JammingDetected ( ) const

Returns true if radar jamming is detected by local radar sensors, else false.

Referenced by UpdateWeaponsData().

◆ LocalTrackDropped()

void WsfSA_Processor::LocalTrackDropped ( double aSimTime,
const WsfLocalTrack * aLocalTrackPtr )

Handle a track dropping.

Parameters
aSimTimesim time when track dropped.
aLocalTrackPtrpointer to the dropped track.

Referenced by Initialize().

◆ MasterCautionActive()

bool WsfSA_Processor::MasterCautionActive ( ) const

Returns true if the master warning is active, else false.

Referenced by UpdateWeaponsData().

◆ MasterWarningActive()

bool WsfSA_Processor::MasterWarningActive ( ) const

Returns true if the master warning is active, else false.

Referenced by UpdateWeaponsData().

◆ MaxRangeForEngagementData()

double WsfSA_Processor::MaxRangeForEngagementData ( ) const
inline

This function returns the max range (meters) for engagement data.

◆ MaxRangeForPerceivedAssets()

double WsfSA_Processor::MaxRangeForPerceivedAssets ( ) const
inline

This function returns the max range (meters) for perceived assets.

◆ MaxRangeForPerceivedBogiesAndBandits()

double WsfSA_Processor::MaxRangeForPerceivedBogiesAndBandits ( ) const
inline

This function returns the max range (meters) for perceived bogies and bandits.

◆ MWS_TrackProcessor()

const std::string & WsfSA_Processor::MWS_TrackProcessor ( ) const
inline

This function returns the name of the optional missile warning system (MWS) track processor.

If no such processor exists, it returns an empty string.

◆ operator=()

WsfSA_Processor & WsfSA_Processor::operator= ( const WsfSA_Processor & )
delete

References WsfSA_Processor().

◆ OtherSystemsEmitting()

bool WsfSA_Processor::OtherSystemsEmitting ( ) const
inline

This returns true if any other systems are emitting.

◆ Perceive()

WsfSA_Perceive * WsfSA_Processor::Perceive ( ) const
inline

Return a pointer to the WsfSA_Perceive module.

Referenced by WsfSA_Assess::Initialize().

◆ PerceptionMasterTrackProcessor()

std::string WsfSA_Processor::PerceptionMasterTrackProcessor ( ) const
inline

This function returns the name of the optional perception master track processor.

If no such processor exists, it returns an empty string.

Referenced by WsfSA_Assess::CalculateTrackedPlatforms(), and GetPerceptionMasterTrackProcessorTrackList().

◆ PlatformAdded()

void WsfSA_Processor::PlatformAdded ( double aSimTime,
WsfPlatform * aPlatform )
overridevirtual

These functions handle the addition or deletion of platforms in the simulation.

This will (possibly) add a newly created platform to a local list of platforms, using various filters

Parameters
aSimTimesim time when platform added
aPlatformpointer to the added platform

Reimplemented from WsfPlatformPart.

References WsfPlatform::GetIndex(), WsfPlatform::GetSide(), WsfPlatform::GetSpatialDomain(), PlatformContainsSA_Processor(), WSF_SPATIAL_DOMAIN_AIR, WSF_SPATIAL_DOMAIN_LAND, WSF_SPATIAL_DOMAIN_SPACE, WSF_SPATIAL_DOMAIN_SUBSURFACE, and WSF_SPATIAL_DOMAIN_SURFACE.

◆ PlatformContainsSA_Processor()

bool WsfSA_Processor::PlatformContainsSA_Processor ( WsfPlatform * aPlatform)
static

Other miscellaneous functions.

This function will return true if an SA Processor exists on the specified platform

References WsfComponentList::RoleIterator< T >::AtEnd().

Referenced by PlatformAdded().

◆ PlatformDeleted()

void WsfSA_Processor::PlatformDeleted ( WsfPlatform * aPlatform)
overridevirtual

This will remove a newly deleted platform from a local list of platforms, if present.

Parameters
aPlatformpointer to the added platform

Reimplemented from WsfPlatformPart.

References WsfPlatform::GetIndex().

◆ PlatformInTrackListMWS()

bool WsfSA_Processor::PlatformInTrackListMWS ( const WsfPlatform * aPlatform) const

This function will return true if the specified (truth) platform is in the track list of the Missile Warning System (MWS) track processor.

Otherwise, it will return false. If there is no MWS track processor, it will return false.

References WsfPlatform::GetIndex(), WsfTrackManager::GetLocalTrackList(), GetMWS_Processor(), WsfTrack::GetTargetIndex(), WsfTrackListT< T >::GetTrackCount(), WsfTrackListT< T >::GetTrackEntry(), and WsfTrackProcessor::GetTrackManager().

Referenced by UpdateTrackData(), and WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ Predict()

WsfSA_Predict * WsfSA_Processor::Predict ( ) const
inline

Return a pointer to the WsfSA_Predict module.

◆ ProcessInput()

◆ ProcessMessage()

bool WsfSA_Processor::ProcessMessage ( double aSimTime,
const WsfMessage & aMessage )
overridevirtual

Process a WsfMessage.

Parameters
aSimTimesim time when processing.
aMessagemessage to handle.

Reimplemented from WsfPlatformPart.

◆ QuantityOfChaff()

int WsfSA_Processor::QuantityOfChaff ( ) const

These functions provide data related to expendables.

Returns the available quantity of the chaff cartridges.

Referenced by UpdateWeaponsData().

◆ QuantityOfDecoys()

int WsfSA_Processor::QuantityOfDecoys ( ) const

Returns the available quantity of the expendable decoys.

Referenced by UpdateWeaponsData().

◆ QuantityOfFlares()

int WsfSA_Processor::QuantityOfFlares ( ) const

Returns the available quantity of the flare cartridges.

Referenced by UpdateWeaponsData().

◆ QuantityOfSelectedWeapon()

int WsfSA_Processor::QuantityOfSelectedWeapon ( ) const

Returns the available quantity of the selected weapon.

◆ RadarEmitting()

bool WsfSA_Processor::RadarEmitting ( ) const
inline

This returns true if any radar is emitting.

◆ RadarTrackProcessor()

const std::string & WsfSA_Processor::RadarTrackProcessor ( ) const
inline

This function returns the name of the optional radar track processor.

If no such processor exists, it returns an empty string.

◆ ResetAssetDataPurgeLifetime()

void WsfSA_Processor::ResetAssetDataPurgeLifetime ( )
inline

Reset the purge lifetime limit (sec) for asset data.

◆ ResetUpdateInterval()

void WsfSA_Processor::ResetUpdateInterval ( UpdateType aUpdateType)

Reset the update interval (sec) for the requested data type to the startup interval.

Parameters
aUpdateTypeone of WsfSA_Processor::UpdateType enumeration

◆ RoundToBaseRateMultiple()

double WsfSA_Processor::RoundToBaseRateMultiple ( double aNumToRound,
double aMultiple )
static

This will return a double that is a multiple of the parameter provided.

Parameters
aNumToRounddouble to be round up
aMultipledouble to be used as the multiple

Referenced by Initialize(), and SetUpdateInterval().

◆ ScriptExists()

bool WsfSA_Processor::ScriptExists ( const std::string & aScriptName)
protected

This will return true if an AFSIM script function with the specified name exists.

Parameters
aScriptNamename of the script to check for.

◆ SelectedWeapon()

const WsfExplicitWeapon * WsfSA_Processor::SelectedWeapon ( ) const

Returns a pointer to the selected weapon.

◆ SendMessage()

void WsfSA_Processor::SendMessage ( double aSimTime,
const WsfSA_EntityMessage & aStatusMessage )

Send a message to external links.

Parameters
aSimTimesim time to send message.
aStatusMessagemessage to send.

References WsfScriptProcessor::mExternalLinks.

Referenced by WsfSA_Perceive::UpdateStatus().

◆ SetAircraftKinematics()

void WsfSA_Processor::SetAircraftKinematics ( const SA_AircraftKinematics & aFlightData)
inline

This function sets the aircraft kinematics data.

◆ SetAssetDataPurgeLifetime()

bool WsfSA_Processor::SetAssetDataPurgeLifetime ( double aPurgeLifetime)

Set the purge lifetime limit (sec) for asset data.

Parameters
aPurgeLifetimenew purge lifetime setting

◆ SetDisplayPerceptionDelay()

bool WsfSA_Processor::SetDisplayPerceptionDelay ( double aDelayTime)

Set the display perception delay (sec).

Parameters
aDelayTimedelay before a new display track becomes perceived entity for processing/clasfficiation

◆ SetEngagedTarget()

void WsfSA_Processor::SetEngagedTarget ( SA_EngagedTarget aTarget)

Set the engaged target using the specified data.

Referenced by UpdateWeaponsData().

◆ SetFlightControlsDataSummary()

void WsfSA_Processor::SetFlightControlsDataSummary ( const SA_FlightControlsDataSummary & aData)
inline

This function sets the aircraft flight controls data.

◆ SetFlightId()

void WsfSA_Processor::SetFlightId ( std::uint16_t aFlightId)
inline

This function sets the flight id.

Zero indicates not a member of any flight.

◆ SetFuelSystemData()

void WsfSA_Processor::SetFuelSystemData ( const SA_FuelSystemData & aData)
inline

This function sets the aircraft fuel data.

◆ SetIdFlag()

void WsfSA_Processor::SetIdFlag ( const std::string & aIdFlag)
inline

This function sets the id flag string.

◆ SetLastUpdateTime()

◆ SetMasterArm()

void WsfSA_Processor::SetMasterArm ( bool aArmed)

Returns true if the weapon selection was successful, else false.

Parameters
aArmedset to true to arm, false to safe

◆ SetNavigationDataSummary()

void WsfSA_Processor::SetNavigationDataSummary ( const SA_NavigationDataSummary & aData)
inline

This function sets the aircraft nav data.

◆ SetNextUpdateTime()

bool WsfSA_Processor::SetNextUpdateTime ( UpdateType aUpdateType,
double aSimTime )

Set the next update time (sec) for the requested data type.

Parameters
aUpdateTypeone of the WsfSA_Processor::UpdateType enumeration
aSimTimetime at update

Referenced by HandleSA_ProcessorUpdates().

◆ SetSelectedWeapon()

bool WsfSA_Processor::SetSelectedWeapon ( std::string aWeaponName)

Returns true if the weapon selection was successful, else false.

Parameters
aWeaponNamename of the desired weapon.

◆ SetTrackManagerList()

void WsfSA_Processor::SetTrackManagerList ( const std::vector< SA_TrackManagerData > & aData)
inline

This function sets the track data.

◆ SetUpdateInterval()

bool WsfSA_Processor::SetUpdateInterval ( UpdateType aUpdateType,
double aUpdateInterval )

Set the update interval (sec) for the requested data type.

Parameters
aUpdateTypeone of WsfSA_Processor::UpdateType enumeration
aUpdateIntervalnew update interval

References WsfProcessor::GetUpdateInterval(), GetUpdateTypeString(), and RoundToBaseRateMultiple().

◆ SetVisualPerceptionDelay()

bool WsfSA_Processor::SetVisualPerceptionDelay ( double aDelayTime)

Set the visual perception delay (sec).

Parameters
aDelayTimedelay before a new visual track becomes perceived entity for processing/classification

◆ SetWeaponsDataSummary()

void WsfSA_Processor::SetWeaponsDataSummary ( const SA_WeaponsDataSummary & aData)
inline

This function sets the weapons data.

◆ ShootCueActive()

bool WsfSA_Processor::ShootCueActive ( ) const

Returns true if the shoot cue is active, else false.

Referenced by UpdateWeaponsData().

◆ ShootCueBlinking()

bool WsfSA_Processor::ShootCueBlinking ( ) const

Returns true if the shoot cue is blinking, else false.

Referenced by UpdateWeaponsData().

◆ SupportingWeapon()

bool WsfSA_Processor::SupportingWeapon ( ) const

Returns true if a weapon is flight is being supported, else false.

Referenced by UpdateWeaponsData().

◆ TimeToBingo()

double WsfSA_Processor::TimeToBingo ( ) const

This returns the time (sec) until reaching bingo state at the current burn rate.

◆ TimeToEmpty()

double WsfSA_Processor::TimeToEmpty ( ) const

This returns the time (sec) until fuel tank(s) are empty at the current burn rate.

◆ TimeToJoker()

double WsfSA_Processor::TimeToJoker ( ) const

This returns the time (sec) until reaching joker state at the current burn rate.

Referenced by DebugTestOutput().

◆ TrackManagerChanged()

void WsfSA_Processor::TrackManagerChanged ( double aSimTime,
WsfTrackManager * aNewManagerPtr )

Change the track manager.

Parameters
aSimTimesim time when track manager changed.
aNewManagerPtrpointer to the new manager.

Referenced by Initialize().

◆ TryUpdateBehaviorCalculation()

double WsfSA_Processor::TryUpdateBehaviorCalculation ( double aSimTime)

Attempt to update advanced behavior trees and finite state machines, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References cBEHAVIOR_CALCULATION, WsfProcessor::GetUpdateInterval(), and UpdateBehaviorCalculation().

Referenced by HandleSA_ProcessorUpdates().

◆ TryUpdateFlightControls()

double WsfSA_Processor::TryUpdateFlightControls ( double aSimTime)

Attempt to update flight controls data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References cCONTROLS_DATA, WsfProcessor::GetUpdateInterval(), and UpdateFlightControls().

Referenced by HandleSA_ProcessorUpdates().

◆ TryUpdateFlightKinematics()

double WsfSA_Processor::TryUpdateFlightKinematics ( double aSimTime)

Attempt to update flight data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References cFLIGHT_DATA, WsfProcessor::GetUpdateInterval(), and UpdateFlightKinematics().

Referenced by HandleSA_ProcessorUpdates().

◆ TryUpdateFuel()

double WsfSA_Processor::TryUpdateFuel ( double aSimTime)

Attempt to update fuel data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References cFUEL_DATA, WsfProcessor::GetUpdateInterval(), and UpdateFuel().

Referenced by HandleSA_ProcessorUpdates().

◆ TryUpdateNav()

double WsfSA_Processor::TryUpdateNav ( double aSimTime)

Attempt to update nav data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References cNAV_DATA, WsfProcessor::GetUpdateInterval(), and UpdateNav().

Referenced by HandleSA_ProcessorUpdates().

◆ TryUpdateTracks()

double WsfSA_Processor::TryUpdateTracks ( double aSimTime)

Attempt to update track data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References cTRACK_DATA, WsfProcessor::GetUpdateInterval(), and UpdateTracks().

Referenced by HandleSA_ProcessorUpdates().

◆ TryUpdateWeapons()

double WsfSA_Processor::TryUpdateWeapons ( double aSimTime)

Attempt to update weapons data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References cWEAPONS_DATA, WsfProcessor::GetUpdateInterval(), and UpdateWeapons().

Referenced by HandleSA_ProcessorUpdates().

◆ Update()

void WsfSA_Processor::Update ( double aSimTime)
overridevirtual

Update this processor.

Parameters
aSimTimesim time of the update.

Reimplemented from WsfProcessor.

References DebugTestOutput(), HandleSA_ProcessorUpdates(), and WsfScriptProcessor::mContextPtr.

◆ UpdateBehaviorCalculation()

void WsfSA_Processor::UpdateBehaviorCalculation ( double aSimTime)

◆ UpdateFlightControls()

void WsfSA_Processor::UpdateFlightControls ( double aSimTime)

Update flight controls data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References WsfObserver::AirCombatSendFlightControlsData(), cCONTROLS_DATA, GetLastUpdateTime(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), SetLastUpdateTime(), and UpdateFlightControlsData().

Referenced by TryUpdateFlightControls().

◆ UpdateFlightControlsData()

void WsfSA_Processor::UpdateFlightControlsData ( double aSimTime)

Update flight controls data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References P6DofVehicle::AileronLeftValid(), P6DofVehicle::FlapLeftValid(), P6DofVehicle::GetNormalizedTotalThrust(), P6DofVehicle::RudderLeftValid(), P6DofVehicle::RudderValid(), and P6DofVehicle::ThrottleValid().

Referenced by Initialize2(), and UpdateFlightControls().

◆ UpdateFlightKinematics()

void WsfSA_Processor::UpdateFlightKinematics ( double aSimTime)

◆ UpdateFlightKinematicsData()

◆ UpdateFuel()

void WsfSA_Processor::UpdateFuel ( double aSimTime)

Update fuel data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References WsfObserver::AirCombatSendFuelData(), cFUEL_DATA, GetLastUpdateTime(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), SetLastUpdateTime(), and UpdateFuelData().

Referenced by TryUpdateFuel().

◆ UpdateFuelData()

◆ UpdateNav()

void WsfSA_Processor::UpdateNav ( double aSimTime)

Update nav data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References WsfObserver::AirCombatSendNavData(), cNAV_DATA, GetLastUpdateTime(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), SetLastUpdateTime(), and UpdateNavData().

Referenced by TryUpdateNav().

◆ UpdateNavData()

void WsfSA_Processor::UpdateNavData ( double aSimTime)

Update nav data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References WsfPlatform::GetMover(), WsfPlatformPart::GetPlatform(), WsfMover::GetRoute(), WsfRoute::GetSize(), WsfRoute::GetWaypoints(), WsfSA_Processor::SA_NavigationLatLon::lat_deg, WsfSA_Processor::SA_NavigationLatLon::lon_deg, and WsfMover::RoutePointIndex().

Referenced by Initialize2(), and UpdateNav().

◆ UpdateTrackData()

void WsfSA_Processor::UpdateTrackData ( double aSimTime)

Update track data for the platform.

Parameters
aSimTimesim time at which to update

References WsfSA_Processor::SA_TrackEntryData::altitude_ft, WsfSA_Processor::SA_TrackEntryData::altitudeValid, WsfSA_Assess::AspectAngleForTarget2D(), WsfSA_Processor::SA_TrackEntryData::bearing_deg, WsfSA_Processor::SA_TrackEntryData::bearingValid, WsfTrack::cIFF_FOE, WsfTrack::cIFF_FRIEND, WsfTrack::cIFF_NEUTRAL, WsfSA_Processor::SA_TrackEntryData::elevation_deg, WsfSA_Processor::SA_TrackEntryData::elevationValid, EntityIsInAssetGroup(), WsfAuxDataEnabled::GetAuxData(), WsfTrack::GetIFF_Status(), WsfTrackManager::GetLocalTrackList(), WsfPlatformPart::GetPlatform(), WsfSimulation::GetPlatformByIndex(), WsfPlatform::GetSide(), WsfPlatformPart::GetSimulation(), WsfTrack::GetTargetIndex(), WsfTrack::GetTargetName(), WsfTrack::GetTargetType(), WsfTrackListT< T >::GetTrackCount(), WsfTrackListT< T >::GetTrackEntry(), WsfAuxDataEnabled::HasAuxData(), ID_BANDIT, ID_BOGIE, ID_FRIENDLY, ID_NEUTRAL, WsfSA_Processor::SA_TrackEntryData::idAuxValid, WsfSA_Processor::SA_TrackEntryData::identification, WsfSA_Processor::SA_TrackEntryData::idIffValid, WsfSA_Processor::SA_TrackEntryData::idSideValid, WsfSA_Processor::SA_TrackEntryData::idString, WsfSA_Processor::SA_TrackEntryData::idTypeValid, WsfTrack::IFF_StatusValid(), WsfIntercept::Intercept(), IsEnemySide(), IsEnemyType(), WsfTrack::IsFalseTarget(), IsFriendlySide(), IsFriendlyType(), WsfSA_Processor::SA_TrackManagerData::isMasterProcessor, WsfSA_Processor::SA_TrackEntryData::isMissile, IsMissileType(), IsNeutralSide(), IsNeutralType(), WsfSA_Processor::SA_TrackEntryData::lat_deg, WsfSA_Processor::SA_TrackEntryData::latLonValid, WsfSA_Processor::SA_TrackEntryData::lon_deg, WsfSA_Processor::SA_TrackManagerData::name, PlatformInTrackListMWS(), WsfSA_Processor::SA_TrackEntryData::range_nm, WsfSA_Processor::SA_TrackEntryData::rangeRate_kts, WsfSA_Processor::SA_TrackEntryData::rangeRateValid, WsfSA_Processor::SA_TrackEntryData::rangeValid, WsfSA_Processor::SA_TrackEntryData::targetAspect_deg, WsfSA_Processor::SA_TrackEntryData::targetAspectValid, WsfSA_Processor::SA_TrackEntryData::targetHdg_deg, WsfSA_Processor::SA_TrackEntryData::targetHdgValid, targetIndex(), WsfSA_Processor::SA_TrackEntryData::targetPlatformIndex, WsfSA_Processor::SA_TrackEntryData::targetSpeed_kts, WsfSA_Processor::SA_TrackEntryData::targetSpeedValid, WsfSA_Processor::SA_TrackEntryData::tgtPlatformName, WsfSA_Processor::SA_TrackEntryData::tgtTypeName, WsfSA_Processor::SA_TrackManagerData::trackList, UseIFF(), and UseSimpleIdByType().

Referenced by UpdateTracks().

◆ UpdateTracks()

void WsfSA_Processor::UpdateTracks ( double aSimTime)

Update track data for the platform.

Parameters
aSimTimesim time at which to update

References WsfObserver::AirCombatSendTrackData(), cTRACK_DATA, GetLastUpdateTime(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), SetLastUpdateTime(), and UpdateTrackData().

Referenced by TryUpdateTracks().

◆ UpdateWeapons()

void WsfSA_Processor::UpdateWeapons ( double aSimTime)

Update weapons data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References WsfObserver::AirCombatSendWeaponsData(), cWEAPONS_DATA, GetLastUpdateTime(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), SetLastUpdateTime(), and UpdateWeaponsData().

Referenced by TryUpdateWeapons().

◆ UpdateWeaponsData()

void WsfSA_Processor::UpdateWeaponsData ( double aSimTime)

Update weapons data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References EngagedTargetValid(), GetEngagedTarget(), GetMasterArm(), WsfObject::GetName(), WsfExplicitWeapon::GetQuantityRemaining(), WsfSA_Processor::SA_EngagedTarget::isValid, JammingDetected(), MasterCautionActive(), MasterWarningActive(), WsfSA_Processor::SA_EngagedTarget::platformIndex, WsfSA_Processor::SA_WeaponNameQtyPair::quantity, QuantityOfChaff(), QuantityOfDecoys(), QuantityOfFlares(), WsfSA_Processor::SA_EngagedTarget::rangeClosureRate, WsfSA_Processor::SA_WeaponEngagedTarget::rangeClosureRate_kts, WsfSA_Processor::SA_EngagedTarget::rangeCurrent, WsfSA_Processor::SA_WeaponEngagedTarget::rangeCurrent_nm, WsfSA_Processor::SA_EngagedTarget::rangeMax, WsfSA_Processor::SA_WeaponEngagedTarget::rangeMax_nm, WsfSA_Processor::SA_EngagedTarget::rangeMin, WsfSA_Processor::SA_WeaponEngagedTarget::rangeMin_nm, WsfSA_Processor::SA_EngagedTarget::rangeNe, WsfSA_Processor::SA_WeaponEngagedTarget::rangeNe_nm, SetEngagedTarget(), ShootCueActive(), ShootCueBlinking(), SupportingWeapon(), WsfSA_Processor::SA_EngagedTarget::targetAspect, WsfSA_Processor::SA_WeaponEngagedTarget::targetAspect_deg, WsfSA_Processor::SA_EngagedTarget::targetAz, WsfSA_Processor::SA_WeaponEngagedTarget::targetAz_deg, WsfSA_Processor::SA_EngagedTarget::targetEl, WsfSA_Processor::SA_WeaponEngagedTarget::targetEl_deg, WsfSA_Processor::SA_WeaponEngagedTarget::targetIndex, WsfSA_Processor::SA_EngagedTarget::targetKTAS, WsfSA_Processor::SA_WeaponEngagedTarget::targetKTAS, WsfSA_Processor::SA_EngagedTarget::timeToActive, WsfSA_Processor::SA_WeaponEngagedTarget::timeToActive_sec, WsfSA_Processor::SA_EngagedTarget::timeToIntercept, WsfSA_Processor::SA_WeaponEngagedTarget::timeToIntercept_sec, WeaponBayDoorsAreOpen(), and WsfSA_Processor::SA_WeaponNameQtyPair::weaponName.

Referenced by UpdateWeapons().

◆ UseIFF()

bool WsfSA_Processor::UseIFF ( ) const
inline

This function returns true if IFF should be used for identification.

Referenced by UpdateTrackData(), and WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ UseMaxRangeFilterForPerceivedAssets()

bool WsfSA_Processor::UseMaxRangeFilterForPerceivedAssets ( ) const
inline

This function returns true if the max range filter should be applied for assets.

◆ UseMaxRangeFilterForPerceivedBogiesAndBandits()

bool WsfSA_Processor::UseMaxRangeFilterForPerceivedBogiesAndBandits ( ) const
inline

This function returns true if the max range filter should be applied for bogies and bandits.

◆ UseMaxRangeForEngagementData()

bool WsfSA_Processor::UseMaxRangeForEngagementData ( ) const
inline

This function returns true if the max range filter should be applied for engagements.

◆ UseSimpleIdByType()

bool WsfSA_Processor::UseSimpleIdByType ( ) const
inline

This function returns true if the simple identification-by-type approach should be used.

Referenced by UpdateTrackData(), and WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ UsingPerceptionMasterTrackProcessor()

bool WsfSA_Processor::UsingPerceptionMasterTrackProcessor ( ) const
inline

This function returns true if the optional perception master track processor is being used.

◆ WeaponBayDoorsAreOpen()

bool WsfSA_Processor::WeaponBayDoorsAreOpen ( ) const

Returns true if the weapon bay doors are open, else false.

Referenced by UpdateWeaponsData().

Member Data Documentation

◆ cUPDATE_TYPE_COUNT

const size_t WsfSA_Processor::cUPDATE_TYPE_COUNT {14}
static

Referenced by WsfSA_Processor().


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved