12#ifndef WSFPERCEPTIONPROCESSOR_HPP
13#define WSFPERCEPTIONPROCESSOR_HPP
20#include "UtCallbackHolder.hpp"
26#include "wsf_mil_export.h"
61 static std::vector<WsfAssetPerception*>& GetPlatformPerceivedAssets(
WsfPlatform& aPlatform,
64 static std::vector<WsfLocalTrack*>& GetPlatformPerceivedThreats(
WsfPlatform& aPlatform,
78 void Update(
double aSimTime)
override;
81 UtScriptClass* CreateScriptClass(
const std::string& aClassName, UtScriptTypes* aScriptTypesPtr);
93 void LocalTrackDropped(
double aSimTime,
const WsfLocalTrack* aLocalTrackPtr);
97 void TrackManagerChanged(
double aSimTime,
WsfTrackManager* aNewManagerPtr);
102 std::vector<WsfAssetPerception*>& PerceivedAssets(
double aSimTime);
103 std::vector<WsfLocalTrack*>& PerceivedThreats(
double aSimTime);
117 void MarkAssetAsImportant(
size_t aIndex);
119 void MarkAssetAsUnimportant(
size_t aIndex);
125 void MarkAssetTypeAsUnimportant(
WsfStringId aType);
127 void MarkThreatTypeAsUnimportant(
WsfStringId aType);
129 bool SetScriptAssetScoringFunction(UtScriptContext* aContextPtr,
WsfStringId aFunctionName);
130 bool SetScriptThreatScoringFunction(UtScriptContext* aContextPtr,
WsfStringId aFunctionName);
137 void AddExtraCognitiveLoading(
double timeDelay);
140 void SetAssetUpdateInterval(
double aInterval);
143 void SetThreatUpdateInterval(
double aInterval);
158 std::set<WsfPlatform*> TruthAssets();
163 double TryUpdateThreats(
double aSimTime);
164 void UpdateThreats(
double aSimTime);
166 double TryUpdateAssets(
double aSimTime);
167 void UpdateAssets(
double aSimTime);
169 double SendStatus(
double aSimTime);
237 size_t aPlatformIndex,
239 CognitiveUpdateType aType);
241 EventDisposition Execute()
override;
244 size_t mPlatformIndex;
246 CognitiveUpdateType mType;
255 void*
Create(
const UtScriptContext& aContext)
override;
256 void*
Clone(
void* aObjectPtr)
override;
257 void Destroy(
void* aObjectPtr)
override;
258 UtScriptContext*
GetContext(
void* aObjectPtr)
override;
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfAssetMessage.hpp:29
Definition WsfAssetPerception.hpp:32
Definition WsfHeatMap.hpp:34
Definition WsfLocalTrack.hpp:32
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
Definition WsfPerceptionProcessor.hpp:227
CognitiveUpdateType
Definition WsfPerceptionProcessor.hpp:230
@ STATUS
Definition WsfPerceptionProcessor.hpp:233
@ ASSETS
Definition WsfPerceptionProcessor.hpp:232
@ THREATS
Definition WsfPerceptionProcessor.hpp:231
WsfPerceptionProcessorUpdateEvent(double aSimTime, size_t aPlatformIndex, WsfPerceptionProcessor *aModelPtr, CognitiveUpdateType aType)
Definition WsfPerceptionProcessor.cpp:1284
Definition WsfPerceptionProcessor.hpp:38
unsigned int mTruthPerceptionMask
Definition WsfPerceptionProcessor.hpp:186
double StatusMessageReportInterval()
asset status reporting interval
Definition WsfPerceptionProcessor.hpp:153
std::map< WsfStringId, int > mImportantAssetTypes
Definition WsfPerceptionProcessor.hpp:209
int mMaxAssetLoad
Definition WsfPerceptionProcessor.hpp:184
double mThreatUpdateInterval
Definition WsfPerceptionProcessor.hpp:181
std::map< size_t, int > mImportantAssets
Definition WsfPerceptionProcessor.hpp:204
int mMaxThreatLoad
Definition WsfPerceptionProcessor.hpp:183
void SetMaxAssetLoad(int aLoad)
Definition WsfPerceptionProcessor.hpp:146
AssetPerceptionType
Definition WsfPerceptionProcessor.hpp:43
@ STATUS_MESSAGES
Definition WsfPerceptionProcessor.hpp:45
@ TRUTH
Definition WsfPerceptionProcessor.hpp:44
void SetMaxThreatLoad(int aLoad)
Definition WsfPerceptionProcessor.hpp:149
WsfPerceptionProcessor & operator=(const WsfPerceptionProcessor &)=delete
bool mReportingSelfStatus
Definition WsfPerceptionProcessor.hpp:178
std::vector< double > mExtraCognitiveDelaysThreats
Definition WsfPerceptionProcessor.hpp:213
std::map< size_t, int > mUnimportantThreats
Definition WsfPerceptionProcessor.hpp:205
std::map< WsfStringId, int > mImportantThreatTypes
Definition WsfPerceptionProcessor.hpp:208
std::map< WsfStringId, int > mUnimportantAssetTypes
Definition WsfPerceptionProcessor.hpp:211
WsfPerceptionProcessor(const WsfScenario &aScenario)
Definition WsfPerceptionProcessor.cpp:36
WsfHeatMap * HeatMap()
Definition WsfPerceptionProcessor.hpp:112
UtScript * mAssetFunctionScriptPtr
Definition WsfPerceptionProcessor.hpp:218
std::vector< WsfLocalTrack * > mPerceivedThreats
Definition WsfPerceptionProcessor.hpp:191
std::map< size_t, int > mUnimportantAssets
Definition WsfPerceptionProcessor.hpp:206
double MaxThreatLoad()
Definition WsfPerceptionProcessor.hpp:148
UtScriptContext * mThreatFunctionScriptContext
Definition WsfPerceptionProcessor.hpp:219
double mAssetUpdateInterval
Definition WsfPerceptionProcessor.hpp:182
UtCallbackHolder mCallbacks
Definition WsfPerceptionProcessor.hpp:171
bool HasExternalLinks()
standard query
Definition WsfPerceptionProcessor.hpp:155
std::vector< WsfAssetPerception * > mPerceivedAssets
Definition WsfPerceptionProcessor.hpp:192
double MaxAssetLoad()
Definition WsfPerceptionProcessor.hpp:145
bool Important(WsfLocalTrack *aThreatPtr)
Definition WsfPerceptionProcessor.cpp:857
WsfPerceptionProcessor * Clone() const override
Definition WsfPerceptionProcessor.hpp:73
WsfStringId mThreatFunctionScriptName
Definition WsfPerceptionProcessor.hpp:220
friend class WsfPerceptionProcessorUpdateEvent
Definition WsfPerceptionProcessor.hpp:40
UtScript * mThreatFunctionScriptPtr
Definition WsfPerceptionProcessor.hpp:221
RecipientType
Definition WsfPerceptionProcessor.hpp:49
@ cALLSUBORDINATES
Definition WsfPerceptionProcessor.hpp:54
@ cPEERS
Definition WsfPerceptionProcessor.hpp:51
@ cALLCOMMANDERS
Definition WsfPerceptionProcessor.hpp:53
@ cCOMMANDER
Definition WsfPerceptionProcessor.hpp:50
@ cSUBORDINATES
Definition WsfPerceptionProcessor.hpp:52
UtScriptContext * mAssetFunctionScriptContextPtr
Definition WsfPerceptionProcessor.hpp:216
double mStatusMessageReportInterval
Definition WsfPerceptionProcessor.hpp:177
std::map< size_t, WsfAssetPerception * > mReceivedAssetStatus
Definition WsfPerceptionProcessor.hpp:194
std::vector< double > mExtraCognitiveDelaysAssets
Definition WsfPerceptionProcessor.hpp:214
std::map< WsfStringId, int > mUnimportantThreatTypes
Definition WsfPerceptionProcessor.hpp:210
bool mPerceiveSelfStatus
Definition WsfPerceptionProcessor.hpp:180
AssetPerceptionType mAssetPerception
Definition WsfPerceptionProcessor.hpp:185
const char * GetScriptClassName() const override
Definition WsfPerceptionProcessor.hpp:85
double mLastAssetUpdateTime
Definition WsfPerceptionProcessor.hpp:188
bool Unimportant(WsfLocalTrack *aThreatPtr)
Definition WsfPerceptionProcessor.cpp:903
bool mReportingOthersStatus
Definition WsfPerceptionProcessor.hpp:179
std::map< size_t, int > mImportantThreats
Definition WsfPerceptionProcessor.hpp:203
WsfHeatMap * mHeatMapPtr
Definition WsfPerceptionProcessor.hpp:175
WsfStringId mAssetFunctionScriptName
Definition WsfPerceptionProcessor.hpp:217
double ThreatUpdateInterval()
Definition WsfPerceptionProcessor.hpp:142
double mLastThreatUpdateTime
Definition WsfPerceptionProcessor.hpp:189
WsfTrackManager * mTrackManagerPtr
Definition WsfPerceptionProcessor.hpp:173
double AssetUpdateInterval()
Definition WsfPerceptionProcessor.hpp:139
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
void Destroy(void *aObjectPtr) override
Definition WsfPerceptionProcessor.cpp:1378
UT_DECLARE_SCRIPT_METHOD(SetAssetUnimportant)
UT_DECLARE_SCRIPT_METHOD(PerceivedAssets)
UT_DECLARE_SCRIPT_METHOD(SetAssetTypeImportant)
UT_DECLARE_SCRIPT_METHOD(SetThreatTypeUnimportant)
UT_DECLARE_SCRIPT_METHOD(SetAssetTypeUnimportant)
UT_DECLARE_SCRIPT_METHOD(SetAssetImportant)
UT_DECLARE_SCRIPT_METHOD(AddExtraCognitiveLoading)
UT_DECLARE_SCRIPT_METHOD(GetNearestMaxHeat)
UT_DECLARE_SCRIPT_METHOD(GetHeatSourcesCount)
void * Create(const UtScriptContext &aContext) override
Definition WsfPerceptionProcessor.cpp:1364
UT_DECLARE_SCRIPT_METHOD(GetNearestHeat)
UT_DECLARE_SCRIPT_METHOD(NearestThreat)
UtScriptContext * GetContext(void *aObjectPtr) override
Definition WsfPerceptionProcessor.cpp:1384
UT_DECLARE_SCRIPT_METHOD(GetHeat)
UT_DECLARE_SCRIPT_METHOD(SetAssetImportant_2)
UT_DECLARE_SCRIPT_METHOD(SetThreatImportant)
UT_DECLARE_SCRIPT_METHOD(PerceivedThreats)
UT_DECLARE_SCRIPT_METHOD(SetThreatUnimportant)
WsfScriptPerceptionProcessor(const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)
Definition WsfPerceptionProcessor.cpp:1332
UT_DECLARE_SCRIPT_METHOD(SetThreatTypeImportant)
UT_DECLARE_SCRIPT_METHOD(SetAssetUnimportant_2)
UT_DECLARE_SCRIPT_METHOD(NearestAsset)
WsfScriptProcessorClass(const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)
Definition WsfScriptProcessorClass.cpp:31
void Update(double aSimTime) override
Definition WsfScriptProcessor.cpp:281
WsfProcessor * Clone() const override
Definition WsfScriptProcessor.cpp:97
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
bool ProcessMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfScriptProcessor.cpp:300
Definition WsfTrackId.hpp:33
Definition WsfTrackManager.hpp:62