12#ifndef WSFSA_PROCESSOR_HPP
13#define WSFSA_PROCESSOR_HPP
48#include "wsf_air_combat_export.h"
50#include "UtCallbackHolder.hpp"
209 return std::vector<UpdateType>{
cSTATUS,
256 void Update(
double aSimTime)
override;
262 void HandleSA_ProcessorUpdates(
double aSimTime);
315 void ResetUpdateInterval(UpdateType aUpdateType);
326 bool SetLastUpdateTime(UpdateType aUpdateType,
double aSimTime);
337 bool SetNextUpdateTime(UpdateType aUpdateType,
double aSimTime);
342 std::string GetUpdateTypeString(
const UpdateType aUpdateType);
350 bool SetAssetDataPurgeLifetime(
double aPurgeLifetime);
359 static double RoundToBaseRateMultiple(
double aNumToRound,
double aMultiple);
370 bool SetVisualPerceptionDelay(
double aDelayTime);
375 bool SetDisplayPerceptionDelay(
double aDelayTime);
393 bool EntityIsInAssetGroup(
size_t aEntityIndex)
const;
400 static const std::vector<WsfSA_EntityPerception*>& GetPlatformPerceivedAssets(
const WsfPlatform& aPlatform,
408 static const std::vector<WsfSA_EntityPerception*>& GetPlatformPerceivedBogies(
const WsfPlatform& aPlatform,
416 static const std::vector<WsfSA_EntityPerception*>& GetPlatformPerceivedBandits(
const WsfPlatform& aPlatform,
428 UtScriptClass* CreateScriptClass(
const std::string& aClassName, UtScriptTypes* aScriptTypesPtr);
434 void TrackManagerChanged(
double aSimTime,
WsfTrackManager* aNewManagerPtr);
452 void LocalTrackDropped(
double aSimTime,
const WsfLocalTrack* aLocalTrackPtr);
462 static void CheckForFrequencyUnits(
double& aValue, UtInput& aInput);
480 std::string GetSelectedWeapon()
const;
486 int QuantityOfSelectedWeapon()
const;
491 bool SetSelectedWeapon(std::string aWeaponName);
494 const std::vector<WsfExplicitWeapon*> GetWeaponList()
const;
502 void SetMasterArm(
bool aArmed);
505 bool GetMasterArm()
const;
508 bool MasterWarningActive()
const;
511 bool MasterCautionActive()
const;
514 bool WeaponBayDoorsAreOpen()
const;
517 bool SupportingWeapon()
const;
520 bool ShootCueActive()
const;
523 bool ShootCueBlinking()
const;
526 bool JammingDetected()
const;
531 bool EngagedTargetValid()
const;
534 SA_EngagedTarget GetEngagedTarget()
const;
537 void SetEngagedTarget(SA_EngagedTarget aTarget);
542 int QuantityOfChaff()
const;
545 int QuantityOfFlares()
const;
548 int QuantityOfDecoys()
const;
551 bool DispenseChaff(
double aSimTime);
554 bool DispenseFlare(
double aSimTime);
557 bool DispenseDecoy(
double aSimTime);
562 static bool PlatformContainsSA_Processor(
WsfPlatform* aPlatform);
571 bool IsEnemySide(
const std::string& aSide)
const;
574 bool IsFriendlySide(
const std::string& aSide)
const;
577 bool IsNeutralSide(
const std::string& aSide)
const;
580 bool IsEnemyType(
const std::string& aType)
const;
583 bool IsFriendlyType(
const std::string& aType)
const;
586 bool IsNeutralType(
const std::string& aType)
const;
589 bool IsMissileType(
const std::string& aType)
const;
598 bool PlatformInTrackListMWS(
const WsfPlatform* aPlatform)
const;
634 void SetFlightId(std::uint16_t aFlightId) { mFlightId = aFlightId; }
637 void SetIdFlag(
const std::string& aIdFlag) { mIdFlag = aIdFlag; }
906 void SetTrackManagerList(
const std::vector<SA_TrackManagerData>& aData) { mTrackManagerDataList = aData; }
911 double TryUpdateFlightKinematics(
double aSimTime);
916 double TryUpdateFuel(
double aSimTime);
921 double TryUpdateNav(
double aSimTime);
926 double TryUpdateFlightControls(
double aSimTime);
931 double TryUpdateWeapons(
double aSimTime);
936 double TryUpdateTracks(
double aSimTime);
942 double TryUpdateBehaviorCalculation(
double aSimTime);
947 void UpdateFlightKinematics(
double aSimTime);
952 void UpdateFuel(
double aSimTime);
957 void UpdateNav(
double aSimTime);
962 void UpdateFlightControls(
double aSimTime);
967 void UpdateWeapons(
double aSimTime);
972 void UpdateTracks(
double aSimTime);
977 void UpdateFlightKinematicsData(
double aSimTime);
982 void UpdateFuelData(
double aSimTime);
987 void UpdateNavData(
double aSimTime);
992 void UpdateFlightControlsData(
double aSimTime);
997 void UpdateWeaponsData(
double aSimTime);
1002 void UpdateTrackData(
double aSimTime);
1007 void UpdateBehaviorCalculation(
double aSimTime);
1016 void CalculateObservables();
1019 void CalculateEmissions();
1033 bool FuelStateBingoReached()
const;
1036 bool FuelStateJokerReached()
const;
1039 double FuelStateNormalized()
const;
1042 double TimeToJoker()
const;
1045 double TimeToBingo()
const;
1048 double TimeToEmpty()
const;
1059 void CallScript(
double aSimTime,
const std::string& aScriptName);
1067 double CallScriptReturnDouble(
double aSimTime,
const std::string& aScriptName);
1072 bool ScriptExists(
const std::string& aScriptName);
1075 void DebugTestOutput(
double aSimTime);
1078 UtCallbackHolder mCallbacks;
1084 bool mMoverPresent{
false};
1085 WsfP6DOF_Mover* mP6DofMover{
nullptr};
1086 wsf::six_dof::Mover* mSixDOF_Mover{
nullptr};
1087 WsfBrawlerMover* mBrawlerMover{
nullptr};
1088 WsfBrawlerFuel* mBrawlerFuel{
nullptr};
1089 WsfAirMover* mAirMover{
nullptr};
1090 WsfFuel* mAirMoverFuel{
nullptr};
1093 WsfTrackManager* mMasterTrackProcessor{
nullptr};
1094 std::vector<WsfTrackProcessor*> mTrackProcessorList;
1097 std::vector<SA_TrackManagerData> mTrackManagerDataList;
1098 bool mFilterAssetsFromTracks{
true};
1101 SA_WeaponsDataSummary mWeaponsDataSummary;
1102 int mInitialWeaponsQuantity{0};
1105 std::unique_ptr<WsfSA_Perceive> mPerceivePtr;
1106 std::unique_ptr<WsfSA_Assess> mAssessPtr;
1107 std::unique_ptr<WsfSA_Predict> mPredictPtr;
1110 std::vector<std::string> mEnemySidesList;
1111 std::vector<std::string> mFriendlySidesList;
1112 std::vector<std::string> mNeutralSidesList;
1113 std::vector<std::string> mEnemyTypesList;
1114 std::vector<std::string> mFriendlyTypesList;
1115 std::vector<std::string> mNeutralTypesList;
1116 std::vector<std::string> mMissileTypesList;
1119 bool mUseIFF{
false};
1120 bool mUseSimpleIdByType{
false};
1123 double mMaxRangeForPerceivedAssets{0.0};
1124 double mMaxRangeForPerceivedBogiesAndBandits{
1126 bool mUseMaxRangeFilterForPerceivedAssets{
false};
1127 bool mUseMaxRangeFilterForPerceivedBogiesAndBandits{
1129 double mMaxRangeForEngagementData{0.0};
1130 bool mUseMaxRangeForEngagementData{
false};
1131 double mAssumedRangeForAngleOnlyTargets{0.0};
1135 std::vector<size_t> mFilteredPlatformIdList;
1138 bool mFilterRequiresSameSide{
false};
1139 bool mFilterRequiresNotSameSide{
false};
1140 bool mFilterRequiresAirDomain{
false};
1141 bool mFilterRequiresNotAirDomain{
false};
1142 bool mFilterRequiresLandOrSurfaceDomain{
false};
1143 bool mFilterRequiresNotSubsurfaceDomain{
false};
1144 bool mFilterRequiresNotSpaceDomain{
false};
1145 bool mFilterRequiresSA_Processor{
false};
1148 bool mMissileSpeedAnyAlt{
false};
1149 bool mMissileAltAnySpeed{
false};
1150 bool mMissileSpeedWithAlt{
false};
1151 bool mMissileAltWithSpeed{
false};
1152 bool mMissileNoseAngle{
false};
1153 bool mMissileTimeToIntercept{
false};
1154 bool mMissileDistance{
false};
1156 double mMissileSpeedAnyAltValue{0.0};
1157 double mMissileAltAnySpeedValue{0.0};
1158 double mMissileSpeedWithAltValue{0.0};
1159 double mMissileAltWithSpeedValue{0.0};
1160 double mMissileNoseAngleValue{0.0};
1161 double mMissileTimeToInterceptValue{0.0};
1162 double mMissileDistanceValue{0.0};
1166 std::uint16_t mFlightId{0};
1167 std::string mIdFlag{
""};
1170 double mBingoFuel_lbs{0.0};
1171 double mJokerFuel_lbs{0.0};
1172 SA_AircraftKinematics mAircraftKinematicsData;
1173 SA_FuelSystemData mFuelSystemData;
1174 SA_NavigationDataSummary mNavigationDataSummary;
1175 SA_FlightControlsDataSummary mFlightControlsDataSummary;
1178 std::string mESM_TrackProcessor{
""};
1179 std::string mMWS_TrackProcessor{
""};
1180 std::string mRadarTrackProcessor{
""};
1181 std::string mIRST_TrackProcessor{
""};
1182 std::string mDAS_TrackProcessor{
""};
1183 std::string mFLIR_TrackProcessor{
""};
1184 std::string mEyesTrackProcessor{
""};
1185 std::string mPerceptionMasterTrackProcessorStr{
""};
1186 WsfTrackProcessor* mPerceptionMasterTrackProcessorPtr{
nullptr};
1187 bool mUsingPerceptionMasterTrackProcessor{
1191 bool mRadarEmitting{
false};
1192 bool mJammerEmitting{
false};
1193 bool mOtherSystemsEmitting{
false};
1195 double mAssetDataPurgeLifetime{0};
1196 double mStartupAssetDataPurgeLifetime{0};
1197 double mDisplayPerceptionDelay{0.0};
1198 double mVisualPerceptionDelay{0.0};
1202 struct UpdateMgmtRecord
1204 double startupInterval{0.0};
1205 double activeInterval{0.0};
1206 double lastUpdateTime{0.0};
1207 double nextUpdateTime{0.0};
1208 bool manualModeLock{
false};
1211 std::vector<UpdateMgmtRecord> mUpdateMgmtData;
1212 size_t mEventCount{0};
1214 bool mUpdatedScriptContext{
false};
1215 bool mUseDebugOutput{
false};
1216 std::string mDebugPlatformName{
"Talon_1_1"};
WsfTrackListT< WsfLocalTrack > WsfLocalTrackList
Definition WsfTrackList.hpp:89
Definition WsfAirMover.hpp:32
Definition WsfBrawlerFuel.hpp:20
Definition WsfBrawlerMover.hpp:31
Contains the 'categories' to which an object belongs.
Definition WsfCategoryList.hpp:34
A specialization of WsfWeapon for weapons modeled as separate platforms.
Definition WsfExplicitWeapon.hpp:30
Definition WsfFuel.hpp:30
Definition WsfLocalTrack.hpp:32
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
Definition WsfP6DOF_Mover.hpp:51
void SetUpdateInterval(double aUpdateInterval) override
Definition WsfProcessor.cpp:224
This is the assess module of the SA Processor.
Definition WsfSA_Assess.hpp:30
Definition WsfSA_EntityMessage.hpp:28
Definition WsfSA_EntityPerception.hpp:37
This is the perceive module of the SA Processor.
Definition WsfSA_Perceive.hpp:31
This is the predict module of the SA Processor.
Definition WsfSA_Predict.hpp:28
Definition WsfSA_Processor.hpp:60
const WsfSA_Processor::PerceiveData * GetData() const
Return a const reference to the perceive data.
Definition WsfSA_Processor.hpp:274
bool JammerEmitting() const
This returns true if any jammer is emitting.
Definition WsfSA_Processor.hpp:1027
EntityPerceptionType
Definition WsfSA_Processor.hpp:63
@ STATUS_MESSAGES
Definition WsfSA_Processor.hpp:65
@ TRUTH
Definition WsfSA_Processor.hpp:64
double GetNextUpdateTime(UpdateType aUpdateType)
Set the next update time (sec) for the requested data type.
Definition WsfSA_Processor.hpp:331
const std::string & MWS_TrackProcessor() const
This function returns the name of the optional missile warning system (MWS) track processor.
Definition WsfSA_Processor.hpp:645
WsfSA_Processor & operator=(const WsfSA_Processor &)=delete
WsfBrawlerFuel * GetBrawlerFuel()
Get the BrawlerFuel for the platform.
Definition WsfSA_Processor.hpp:288
const std::vector< size_t > GetFilteredPlatformIdList() const
This function returns a list of filtered platform ids for platforms that will be evaluated.
Definition WsfSA_Processor.hpp:568
bool RadarEmitting() const
This returns true if any radar is emitting.
Definition WsfSA_Processor.hpp:1024
std::string IdFlag()
This function returns the id flag string.
Definition WsfSA_Processor.hpp:631
const char * GetScriptClassName() const override
Return the name of this script class.
Definition WsfSA_Processor.hpp:420
const SA_FlightControlsDataSummary & GetFlightControlsDataSummary() const
This function returns the aircraft flight controls data.
Definition WsfSA_Processor.hpp:796
void SetTrackManagerList(const std::vector< SA_TrackManagerData > &aData)
This function sets the track data.
Definition WsfSA_Processor.hpp:906
const SA_NavigationDataSummary & GetNavigationDataSummary() const
This function returns the aircraft nav data.
Definition WsfSA_Processor.hpp:763
const std::string & ESM_TrackProcessor() const
This function returns the name of the optional ESM/RWR track processor.
Definition WsfSA_Processor.hpp:641
WsfBrawlerMover * GetBrawlerMover()
Get the Brawler mover for the platform.
Definition WsfSA_Processor.hpp:285
bool UseMaxRangeFilterForPerceivedBogiesAndBandits() const
This function returns true if the max range filter should be applied for bogies and bandits.
Definition WsfSA_Processor.hpp:616
void SetFlightId(std::uint16_t aFlightId)
This function sets the flight id.
Definition WsfSA_Processor.hpp:634
double AssumedRangeForAngleOnlyTargets() const
This function returns the assumed range of angle-only tracks.
Definition WsfSA_Processor.hpp:625
void ResetAssetDataPurgeLifetime()
Reset the purge lifetime limit (sec) for asset data.
Definition WsfSA_Processor.hpp:353
UpdateType
Definition WsfSA_Processor.hpp:176
@ cSTATUS
Definition WsfSA_Processor.hpp:177
@ cFLIGHT_DATA
Definition WsfSA_Processor.hpp:179
@ cPERCEIVED_ITEM_DATA
Definition WsfSA_Processor.hpp:186
@ cPRIORITIZED_ITEM_CALCULATION
Definition WsfSA_Processor.hpp:189
@ cTRACK_DATA
Definition WsfSA_Processor.hpp:184
@ cASSETS_DATA
Definition WsfSA_Processor.hpp:185
@ cENGAGEMENT_DATA
Definition WsfSA_Processor.hpp:178
@ cPERCEIVED_ITEM_CALCULATION
Definition WsfSA_Processor.hpp:188
@ cCONTROLS_DATA
Definition WsfSA_Processor.hpp:182
@ cWEAPONS_DATA
Definition WsfSA_Processor.hpp:183
@ cPRIORITIZED_ITEM_DATA
Definition WsfSA_Processor.hpp:187
@ cNAV_DATA
Definition WsfSA_Processor.hpp:181
@ cFUEL_DATA
Definition WsfSA_Processor.hpp:180
@ cBEHAVIOR_CALCULATION
Definition WsfSA_Processor.hpp:190
std::uint16_t FlightId()
This function returns the flight id.
Definition WsfSA_Processor.hpp:628
double GetStartupInterval(UpdateType aUpdateType) const
Get the startup interval (sec) parsed at startup for the requested data type.
Definition WsfSA_Processor.hpp:304
static const std::vector< UpdateType > GetCognitiveUpdateGroup()
Get the UpdateTypes that are associated with the cognitive_update_interval group.
Definition WsfSA_Processor.hpp:195
int GetInitialWeaponsQuantity()
Returns the initial number of weapons.
Definition WsfSA_Processor.hpp:497
WsfSA_Assess * Assess() const
Return a pointer to the WsfSA_Assess module.
Definition WsfSA_Processor.hpp:268
WsfSA_Predict * Predict() const
Return a pointer to the WsfSA_Predict module.
Definition WsfSA_Processor.hpp:271
const SA_FuelSystemData & GetFuelSystemData() const
This function returns the aircraft fuel data.
Definition WsfSA_Processor.hpp:739
const std::string & RadarTrackProcessor() const
This function returns the name of the optional radar track processor.
Definition WsfSA_Processor.hpp:649
bool AfterburnerOn() const
Returns true if afterburner is operating.
Definition WsfSA_Processor.hpp:1010
bool IsContrailing() const
Returns true if producing contrails.
Definition WsfSA_Processor.hpp:1013
double MaxRangeForPerceivedBogiesAndBandits() const
This function returns the max range (meters) for perceived bogies and bandits.
Definition WsfSA_Processor.hpp:610
double GetLastUpdateTime(UpdateType aUpdateType) const
Get the last update time (sec) for the requested data type.
Definition WsfSA_Processor.hpp:320
const SA_AircraftKinematics & GetAircraftKinematics() const
This function returns the aircraft kinematics data.
Definition WsfSA_Processor.hpp:716
const std::string & FLIR_TrackProcessor() const
This function returns the name of the optional FLIR track processor.
Definition WsfSA_Processor.hpp:661
WsfFuel * GetAirMoverFuel()
Get the WsfFuel for the platform.
Definition WsfSA_Processor.hpp:294
WsfP6DOF_Mover * GetP6DofMover()
Get the P6DOF mover for the platform.
Definition WsfSA_Processor.hpp:279
const SA_WeaponsDataSummary GetWeaponsDataSummary() const
This function returns the weapons data.
Definition WsfSA_Processor.hpp:846
static const std::vector< UpdateType > GetUniversalUpdateGroup()
Get the UpdateTypes that are associated with the universal_update_interval group.
Definition WsfSA_Processor.hpp:207
std::string PerceptionMasterTrackProcessor() const
This function returns the name of the optional perception master track processor.
Definition WsfSA_Processor.hpp:669
const std::string & DAS_TrackProcessor() const
This function returns the name of the optional DAS track processor.
Definition WsfSA_Processor.hpp:657
WsfTrackProcessor * GetPerceptionMasterTrackProcessor() const
Get the pointer to the optional perception master track processor (PMTP).
Definition WsfSA_Processor.hpp:676
const std::string & EyesTrackProcessor() const
This function returns the name of the optional eyes sensor track processor.
Definition WsfSA_Processor.hpp:665
double GetDisplayPerceptionDelay()
Returns the current value for display_perception_delay (sec).
Definition WsfSA_Processor.hpp:365
void SetIdFlag(const std::string &aIdFlag)
This function sets the id flag string.
Definition WsfSA_Processor.hpp:637
double GetAssetDataPurgeLifetime() const
Get the purge lifetime limit (sec) for asset data.
Definition WsfSA_Processor.hpp:345
bool UseMaxRangeForEngagementData() const
This function returns true if the max range filter should be applied for engagements.
Definition WsfSA_Processor.hpp:622
WsfSA_Processor * Clone() const override
Definition WsfSA_Processor.hpp:225
SA_Identification
Definition WsfSA_Processor.hpp:852
@ ID_UNKNOWN
Definition WsfSA_Processor.hpp:853
@ ID_FRIENDLY
Definition WsfSA_Processor.hpp:854
@ ID_NEUTRAL
Definition WsfSA_Processor.hpp:855
@ ID_BANDIT
Definition WsfSA_Processor.hpp:857
@ ID_BOGIE
Definition WsfSA_Processor.hpp:856
bool UseIFF() const
This function returns true if IFF should be used for identification.
Definition WsfSA_Processor.hpp:601
wsf::six_dof::Mover * GetSixDOF_Mover()
Get the SixDOF mover for the platform.
Definition WsfSA_Processor.hpp:282
void SetFlightControlsDataSummary(const SA_FlightControlsDataSummary &aData)
This function sets the aircraft flight controls data.
Definition WsfSA_Processor.hpp:799
bool OtherSystemsEmitting() const
This returns true if any other systems are emitting.
Definition WsfSA_Processor.hpp:1030
WsfAirMover * GetAirMover()
Get the WsfAirMover for the platform.
Definition WsfSA_Processor.hpp:291
void SetAircraftKinematics(const SA_AircraftKinematics &aFlightData)
This function sets the aircraft kinematics data.
Definition WsfSA_Processor.hpp:719
bool HasExternalLinks() const
True if the processor has external links (comms), false otherwise.
Definition WsfSA_Processor.hpp:455
const std::string & IRST_TrackProcessor() const
This function returns the name of the optional IRST track processor.
Definition WsfSA_Processor.hpp:653
static const size_t cUPDATE_TYPE_COUNT
Definition WsfSA_Processor.hpp:192
void SetNavigationDataSummary(const SA_NavigationDataSummary &aData)
This function sets the aircraft nav data.
Definition WsfSA_Processor.hpp:766
bool UsingPerceptionMasterTrackProcessor() const
This function returns true if the optional perception master track processor is being used.
Definition WsfSA_Processor.hpp:672
bool UseMaxRangeFilterForPerceivedAssets() const
This function returns true if the max range filter should be applied for assets.
Definition WsfSA_Processor.hpp:613
double GetUpdateInterval(UpdateType aUpdateType) const
Get the update interval (sec) for the requested data type.
Definition WsfSA_Processor.hpp:299
WsfSA_Processor(const WsfScenario &aScenario)
Definition WsfSA_Processor.cpp:62
const std::vector< SA_TrackManagerData > & GetTrackManagerList() const
This function returns the track data for all of the track processors/managers.
Definition WsfSA_Processor.hpp:903
std::vector< WsfTrackProcessor * > GetTrackProcessors()
Returns mTrackProcessorList that contains the pointers to the different track processors.
Definition WsfSA_Processor.hpp:383
WsfSA_Perceive * Perceive() const
Return a pointer to the WsfSA_Perceive module.
Definition WsfSA_Processor.hpp:265
void SetWeaponsDataSummary(const SA_WeaponsDataSummary &aData)
This function sets the weapons data.
Definition WsfSA_Processor.hpp:849
bool UseSimpleIdByType() const
This function returns true if the simple identification-by-type approach should be used.
Definition WsfSA_Processor.hpp:604
double GetVisualPerceptionDelay()
Returns the current value for visual_perception_delay (sec).
Definition WsfSA_Processor.hpp:362
void SetFuelSystemData(const SA_FuelSystemData &aData)
This function sets the aircraft fuel data.
Definition WsfSA_Processor.hpp:742
static const std::vector< UpdateType > GetPlatformUpdateGroup()
Get the UpdateTypes that are associated with the platform_update_interval group.
Definition WsfSA_Processor.hpp:201
double MaxRangeForPerceivedAssets() const
This function returns the max range (meters) for perceived assets.
Definition WsfSA_Processor.hpp:607
double MaxRangeForEngagementData() const
This function returns the max range (meters) for engagement data.
Definition WsfSA_Processor.hpp:619
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
bool Initialize2(double aSimTime) override
Definition WsfScriptProcessor.cpp:142
void Update(double aSimTime) override
Definition WsfScriptProcessor.cpp:281
wsf::ExternalLinks mExternalLinks
The external recipients.
Definition WsfScriptProcessor.hpp:112
WsfScriptProcessor(const WsfScenario &aScenario)
Definition WsfScriptProcessor.cpp:30
bool Initialize(double aSimTime) override
Definition WsfScriptProcessor.cpp:104
bool ProcessInput(UtInput &aInput) override
Definition WsfScriptProcessor.cpp:186
void SendMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfScriptProcessor.cpp:344
bool ProcessMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfScriptProcessor.cpp:300
Definition WsfTrackManager.hpp:62
Definition WsfTrackProcessor.hpp:47
This is a base class for detailed air movers. This umbrella can cover RB6 or PM6 models.
Definition WsfSixDOF_Mover.hpp:58
Definition WsfSA_Processor.hpp:35
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Definition WsfSA_Processor.hpp:86
bool mFilterAssetsFromBogies
True if assets should be filtered from bogie list.
Definition WsfSA_Processor.hpp:117
std::map< WsfStringId, int > mImportantAssetTypes
Map of important asset types.
Definition WsfSA_Processor.hpp:94
std::map< size_t, int > mUnimportantThreats
Should NOT be included in perception (track's target platform index = 1).
Definition WsfSA_Processor.hpp:115
std::map< WsfStringId, int > mUnimportantThreatTypes
Map of unimportant threat types.
Definition WsfSA_Processor.hpp:116
int mMaxThreatLoadInitial
Max number of threats that can be perceived as initialized by user.
Definition WsfSA_Processor.hpp:143
std::vector< double > mExtraCognitiveDelaysThreats
List of delays to add to the next update time when updating threat perceptions.
Definition WsfSA_Processor.hpp:138
std::map< size_t, int > mUnimportantAssets
Should NOT be included in perception (asset's platform index = 1).
Definition WsfSA_Processor.hpp:95
bool mUseSimpleCM
Flag indicating if simple CM is used.
Definition WsfSA_Processor.hpp:165
WsfSA_Processor::SA_EngagedTarget mEngagedTarget
Current engaged target.
Definition WsfSA_Processor.hpp:149
bool mJammingDetected
Flag indicating if jamming is detected (true=jamming present, false=no jamming detected).
Definition WsfSA_Processor.hpp:160
size_t mNumSimpleFlare
Quantity of simple flares remaining.
Definition WsfSA_Processor.hpp:167
std::vector< WsfSA_EntityPerception * > mPerceivedAircraftBogies
List of currently perceived aircraft bogies.
Definition WsfSA_Processor.hpp:107
double mAssetCoastTime
The amount of time (in seconds) that an asset is allowed to coast before removal.
Definition WsfSA_Processor.hpp:144
WsfExplicitWeapon * mChaffDispenser
Pointer to the current chaff dispenser.
Definition WsfSA_Processor.hpp:164
unsigned int mAssetTruthPerceptionMask
Asset truth perception mask (WsfComm:: cCOMMANDER | cPEERS | cSUBORDINATES).
Definition WsfSA_Processor.hpp:101
std::vector< WsfSA_EntityPerception * > mPerceivedAircraftAssets
List of currently perceived aircraft assets.
Definition WsfSA_Processor.hpp:89
bool mReportingOthersStatus
True if reporting asset knowledge, false otherwise.
Definition WsfSA_Processor.hpp:99
int mMaxThreatLoad
Max number of threats that can be perceived (negative value means no limit).
Definition WsfSA_Processor.hpp:142
bool mShootCueActive
Flag indicating if shoot cue is active (true=active, false=off).
Definition WsfSA_Processor.hpp:152
std::vector< WsfSA_EntityPerception * > mPerceivedMissileBandits
List of currently perceived missile bandits.
Definition WsfSA_Processor.hpp:111
std::map< WsfStringId, int > mUnimportantAssetTypes
Map of unimportant asset types.
Definition WsfSA_Processor.hpp:96
std::vector< WsfSA_EntityPerception * > mPerceivedAircraftBandits
List of currently perceived aircraft bandits.
Definition WsfSA_Processor.hpp:110
std::vector< WsfSA_EntityPerception * > mPerceivedMissileAssets
List of currently perceived missile assets.
Definition WsfSA_Processor.hpp:90
WsfCategoryList mIgnoredAssetCategories
Asset categories which we should ignore creating perceptions for.
Definition WsfSA_Processor.hpp:103
bool mReportingSelfStatus
True if reporting self status, false otherwise.
Definition WsfSA_Processor.hpp:100
std::map< size_t, int > mImportantAssets
Should be included in perception (asset's platform index = 1).
Definition WsfSA_Processor.hpp:93
int mMaxAssetLoadInitial
Max number of assets that can be perceived as initialized by user.
Definition WsfSA_Processor.hpp:141
bool mMasterArm
Flag indicating master arm state (true=armed, false=safe).
Definition WsfSA_Processor.hpp:155
bool mWeaponBayDoorsAreOpen
Flag indicating if weapon bay doors are open (true=open, false=closed).
Definition WsfSA_Processor.hpp:154
std::vector< WsfSA_EntityPerception * > mPerceivedMissileBogies
List of currently perceived missile bogies.
Definition WsfSA_Processor.hpp:108
UtScript * mPruningScriptPtr
Pointer to the script being used to prune excess PIs.
Definition WsfSA_Processor.hpp:128
EntityPerceptionType mAssetPerception
Type of asset perception being used (TRUTH or STATUS_MESSAGES).
Definition WsfSA_Processor.hpp:92
std::map< size_t, int > mImportantThreats
Should be included in perception (track's target platform index = 1).
Definition WsfSA_Processor.hpp:113
UtScriptClass * mSA_GroupClassPtr
Script class for WsfSA_Group.
Definition WsfSA_Processor.hpp:131
std::vector< WsfSA_EntityPerception * > mPerceivedAssets
List of currently perceived assets.
Definition WsfSA_Processor.hpp:88
size_t mNumSimpleChaff
Quantity of simple chaff remaining.
Definition WsfSA_Processor.hpp:166
UtScriptClass * mSA_EntityPerceptionClassPtr
Script class for WsfSA_EntityPerception.
Definition WsfSA_Processor.hpp:130
bool mPerceiveSelfStatus
True if perceiving self, false otherwise.
Definition WsfSA_Processor.hpp:97
bool mShootCueBlinking
Flag indicating if shoot cue is blinking (true=blinking, false=not blinking).
Definition WsfSA_Processor.hpp:153
std::map< WsfStringId, int > mImportantThreatTypes
Map of important threat types.
Definition WsfSA_Processor.hpp:114
UtScript * mUnfocusedGroupConsiderationScoringScriptPtr
Pointer to the script being used to score unfocused groups.
Definition WsfSA_Processor.hpp:126
int mMaxAssetLoad
Max number of assets that can be perceived (negative value means no limit).
Definition WsfSA_Processor.hpp:140
std::map< size_t, WsfSA_EntityPerception * > mReceivedAssetStatus
Map of asset status messages (platform index = message).
Definition WsfSA_Processor.hpp:98
bool mMasterWarningActive
Flag indicating master warning state (true=active, false=off).
Definition WsfSA_Processor.hpp:158
UtScript * mMissileConsiderationScoringScriptPtr
Pointer to the script being used to score missiles.
Definition WsfSA_Processor.hpp:125
UtScriptClass * mTrackClassPtr
Script class for WsfTrack.
Definition WsfSA_Processor.hpp:133
std::vector< WsfSA_EntityPerception * > mPerceivedBandits
List of currently perceived bandits.
Definition WsfSA_Processor.hpp:109
UtScriptClass * mSA_PerceivedItemClassPtr
Script class for WsfSA_PerceivedItem.
Definition WsfSA_Processor.hpp:132
UtScript * mAssetConsiderationScoringScriptPtr
Pointer to the script being used to score assets.
Definition WsfSA_Processor.hpp:122
std::vector< WsfExplicitWeapon * > mWeaponList
List of weapons.
Definition WsfSA_Processor.hpp:151
std::list< WsfSA_Group * > mCurrentlyPerceivedGroups
Perceived groups (these persist).
Definition WsfSA_Processor.hpp:119
bool mMasterCautionActive
Flag indicating master caution state (true=active, false=off).
Definition WsfSA_Processor.hpp:159
double mBanditCoastTime
The amount of time (in seconds) that a bandit is allowed to coast before removal.
Definition WsfSA_Processor.hpp:145
size_t mNumSimpleDecoy
Quantity of simple decoys remaining.
Definition WsfSA_Processor.hpp:168
UtScript * mBogieBanditConsiderationScoringScriptPtr
Pointer to the script being used to score bogies and bandits.
Definition WsfSA_Processor.hpp:123
std::vector< double > mExtraCognitiveDelaysAssets
List of delays to add to the next update time when updating asset perceptions.
Definition WsfSA_Processor.hpp:136
double mBogeyCoastTime
The amount of time (in seconds) that a bogey is allowed to coast before removal.
Definition WsfSA_Processor.hpp:146
std::vector< WsfSA_EntityPerception * > mPerceivedBogies
List of currently perceived bogies.
Definition WsfSA_Processor.hpp:106
WsfExplicitWeapon * mSelectedWeapon
Pointer to the current selected weapon.
Definition WsfSA_Processor.hpp:150
Definition WsfSA_Processor.hpp:684
bool nzValid
Definition WsfSA_Processor.hpp:711
float gLoad
Definition WsfSA_Processor.hpp:695
float altBaro_ft
Definition WsfSA_Processor.hpp:690
float gAvail
Definition WsfSA_Processor.hpp:696
float vertSpd_fpm
Definition WsfSA_Processor.hpp:692
bool stallWarning
Definition WsfSA_Processor.hpp:705
float pitch_deg
Definition WsfSA_Processor.hpp:698
bool nxValid
Definition WsfSA_Processor.hpp:709
bool afterburnerOn
Definition WsfSA_Processor.hpp:703
bool gAvailValid
Definition WsfSA_Processor.hpp:712
float roll_deg
Definition WsfSA_Processor.hpp:699
float gX
Definition WsfSA_Processor.hpp:700
bool alphaValid
Definition WsfSA_Processor.hpp:706
bool kcasValid
Definition WsfSA_Processor.hpp:708
float beta_deg
Definition WsfSA_Processor.hpp:694
float altRadar_ft
Definition WsfSA_Processor.hpp:691
float ktas
Definition WsfSA_Processor.hpp:688
bool betaValid
Definition WsfSA_Processor.hpp:707
float gY
Definition WsfSA_Processor.hpp:701
bool nyValid
Definition WsfSA_Processor.hpp:710
float kcas
Definition WsfSA_Processor.hpp:687
double lon_deg
Definition WsfSA_Processor.hpp:686
bool contrailing
Definition WsfSA_Processor.hpp:704
double lat_deg
Definition WsfSA_Processor.hpp:685
float heading_deg
Definition WsfSA_Processor.hpp:697
float mach
Definition WsfSA_Processor.hpp:689
std::string pilotType
Definition WsfSA_Processor.hpp:702
float alpha_deg
Definition WsfSA_Processor.hpp:693
Definition WsfSA_Processor.hpp:69
size_t platformIndex
Definition WsfSA_Processor.hpp:71
float timeToIntercept
Definition WsfSA_Processor.hpp:77
float targetKTAS
Definition WsfSA_Processor.hpp:79
bool isValid
Definition WsfSA_Processor.hpp:70
float targetAz
Definition WsfSA_Processor.hpp:81
float rangeMax
Definition WsfSA_Processor.hpp:72
float targetEl
Definition WsfSA_Processor.hpp:82
float timeToActive
Definition WsfSA_Processor.hpp:78
float targetAspect
Definition WsfSA_Processor.hpp:80
float rangeNe
Definition WsfSA_Processor.hpp:73
float rangeMin
Definition WsfSA_Processor.hpp:74
float rangeClosureRate
Definition WsfSA_Processor.hpp:76
float rangeCurrent
Definition WsfSA_Processor.hpp:75
Definition WsfSA_Processor.hpp:770
float speedBrakeNormalized
Definition WsfSA_Processor.hpp:785
float thrustNormalized
Definition WsfSA_Processor.hpp:786
float aileronLftNormalized
Definition WsfSA_Processor.hpp:777
float aileronRgtNormalized
Definition WsfSA_Processor.hpp:776
bool aileronsValid
Definition WsfSA_Processor.hpp:789
bool flapsValid
Definition WsfSA_Processor.hpp:790
float rudderRgtNormalized
Definition WsfSA_Processor.hpp:782
bool twinRuddersValid
Definition WsfSA_Processor.hpp:791
bool throttleValid
Definition WsfSA_Processor.hpp:788
float throttleInput
Definition WsfSA_Processor.hpp:775
float flapRgtNormalized
Definition WsfSA_Processor.hpp:778
float rudderRgtInput
Definition WsfSA_Processor.hpp:773
float speedBrakeInput
Definition WsfSA_Processor.hpp:774
float stickBackInput
Definition WsfSA_Processor.hpp:772
float rudderNormalized
Definition WsfSA_Processor.hpp:784
float stickRgtInput
Definition WsfSA_Processor.hpp:771
bool singleRudderValid
Definition WsfSA_Processor.hpp:792
float flapLftNormalized
Definition WsfSA_Processor.hpp:779
float rudderLftNormalized
Definition WsfSA_Processor.hpp:783
float stabilizerLftNormalized
Definition WsfSA_Processor.hpp:781
float stabilizerRgtNormalized
Definition WsfSA_Processor.hpp:780
float landingGear
Definition WsfSA_Processor.hpp:787
Definition WsfSA_Processor.hpp:723
float fuelInternal_lbs
Definition WsfSA_Processor.hpp:724
float bingo_lbs
Definition WsfSA_Processor.hpp:730
float fuelCapExt_lbs
Definition WsfSA_Processor.hpp:727
bool fuelValid
Definition WsfSA_Processor.hpp:735
float normalizedFuelQty
Definition WsfSA_Processor.hpp:732
float grossWgt_lbs
Definition WsfSA_Processor.hpp:728
float fuelExternal_lbs
Definition WsfSA_Processor.hpp:725
float joker_lbs
Definition WsfSA_Processor.hpp:729
float fuelCapInt_lbs
Definition WsfSA_Processor.hpp:726
uint8_t numExtTanks
Definition WsfSA_Processor.hpp:733
float fuelFlow_pph
Definition WsfSA_Processor.hpp:731
bool dropTanksPresent
Definition WsfSA_Processor.hpp:734
Definition WsfSA_Processor.hpp:752
bool dataValid
Definition WsfSA_Processor.hpp:753
float distanceToWaypoint_nm
Definition WsfSA_Processor.hpp:757
uint8_t numWaypoints
Definition WsfSA_Processor.hpp:754
uint8_t currentWaypoint
Definition WsfSA_Processor.hpp:755
float timeToWaypoint_sec
Definition WsfSA_Processor.hpp:758
std::vector< SA_NavigationLatLon > waypoints
Definition WsfSA_Processor.hpp:759
float headingBug_deg
Definition WsfSA_Processor.hpp:756
Definition WsfSA_Processor.hpp:746
float lat_deg
Definition WsfSA_Processor.hpp:747
float lon_deg
Definition WsfSA_Processor.hpp:748
Definition WsfSA_Processor.hpp:862
bool latLonValid
Definition WsfSA_Processor.hpp:878
bool bearingValid
Definition WsfSA_Processor.hpp:880
std::string tgtTypeName
Definition WsfSA_Processor.hpp:876
float elevation_deg
Definition WsfSA_Processor.hpp:868
float bearing_deg
Definition WsfSA_Processor.hpp:867
double lon_deg
Definition WsfSA_Processor.hpp:865
float targetAspect_deg
Definition WsfSA_Processor.hpp:873
bool idAuxValid
Definition WsfSA_Processor.hpp:888
bool isMissile
Definition WsfSA_Processor.hpp:891
float range_nm
Definition WsfSA_Processor.hpp:869
bool targetSpeedValid
Definition WsfSA_Processor.hpp:884
bool elevationValid
Definition WsfSA_Processor.hpp:881
bool idIffValid
Definition WsfSA_Processor.hpp:887
float targetHdg_deg
Definition WsfSA_Processor.hpp:872
bool idSideValid
Definition WsfSA_Processor.hpp:889
bool targetAspectValid
Definition WsfSA_Processor.hpp:886
bool rangeValid
Definition WsfSA_Processor.hpp:882
std::string idString
Definition WsfSA_Processor.hpp:874
bool idTypeValid
Definition WsfSA_Processor.hpp:890
double lat_deg
Definition WsfSA_Processor.hpp:864
unsigned int targetPlatformIndex
Definition WsfSA_Processor.hpp:863
float altitude_ft
Definition WsfSA_Processor.hpp:866
bool rangeRateValid
Definition WsfSA_Processor.hpp:883
bool altitudeValid
Definition WsfSA_Processor.hpp:879
float targetSpeed_kts
Definition WsfSA_Processor.hpp:871
std::string tgtPlatformName
Definition WsfSA_Processor.hpp:875
bool targetHdgValid
Definition WsfSA_Processor.hpp:885
SA_Identification identification
Definition WsfSA_Processor.hpp:877
float rangeRate_kts
Definition WsfSA_Processor.hpp:870
Definition WsfSA_Processor.hpp:896
bool isMasterProcessor
Definition WsfSA_Processor.hpp:898
std::string name
Definition WsfSA_Processor.hpp:897
std::vector< SA_TrackEntryData > trackList
Definition WsfSA_Processor.hpp:899
Definition WsfSA_Processor.hpp:808
float targetKTAS
Definition WsfSA_Processor.hpp:817
float rangeMin_nm
Definition WsfSA_Processor.hpp:812
float rangeCurrent_nm
Definition WsfSA_Processor.hpp:813
float timeToActive_sec
Definition WsfSA_Processor.hpp:816
float rangeClosureRate_kts
Definition WsfSA_Processor.hpp:814
float rangeNe_nm
Definition WsfSA_Processor.hpp:811
float rangeMax_nm
Definition WsfSA_Processor.hpp:810
unsigned int targetIndex
Definition WsfSA_Processor.hpp:809
float targetAspect_deg
Definition WsfSA_Processor.hpp:818
float timeToIntercept_sec
Definition WsfSA_Processor.hpp:815
float targetAz_deg
Definition WsfSA_Processor.hpp:819
float targetEl_deg
Definition WsfSA_Processor.hpp:820
Definition WsfSA_Processor.hpp:802
uint16_t quantity
Definition WsfSA_Processor.hpp:804
std::string weaponName
Definition WsfSA_Processor.hpp:803
Definition WsfSA_Processor.hpp:824
bool supportingWeapon
Definition WsfSA_Processor.hpp:836
bool masterCaution
Definition WsfSA_Processor.hpp:838
uint8_t numChaff
Definition WsfSA_Processor.hpp:831
uint8_t numFlares
Definition WsfSA_Processor.hpp:832
bool shootCueBlink
Definition WsfSA_Processor.hpp:840
uint16_t initialNumWeapons
Definition WsfSA_Processor.hpp:829
unsigned int platformIndex
Definition WsfSA_Processor.hpp:825
std::vector< SA_WeaponEngagedTarget > engagedTargetList
Definition WsfSA_Processor.hpp:830
bool masterArmActive
Definition WsfSA_Processor.hpp:841
bool masterWarning
Definition WsfSA_Processor.hpp:837
std::string selectedWeapon
Definition WsfSA_Processor.hpp:827
std::vector< SA_WeaponNameQtyPair > weaponList
Definition WsfSA_Processor.hpp:826
uint8_t numDecoys
Definition WsfSA_Processor.hpp:833
bool jammingDetected
Definition WsfSA_Processor.hpp:842
bool shootCueActive
Definition WsfSA_Processor.hpp:839
uint16_t numSelectedWeapon
Definition WsfSA_Processor.hpp:828
bool weaponBayDoorsOpen
Definition WsfSA_Processor.hpp:835